/home/lnzliplg/www/google.zip
PK��\�k�[�u�u&protobuf/unittest_proto3_arena_pb2.pycnu�[����
���hc`@s�8ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZy
ejZWn ek
r�ejjjZnXejd
dddddded�dejg�Zejd
ddddddedejd
dddddddd d�ejd
d!dd"dd#ddd d�ejd
d$dd%dd&ddd d�ejd
d'dddd(ddd d�gd)dddd*d+d,d-�	Zeje�eje�Z dZ!d#Z"d&Z#d(Z$ejd
d.dd/dddedejd
d0ddddddd d�ejd
d1dd"dd"ddd d�ejd
d2dd%dd%ddd d�ejd
d3ddddddd d�ejd
d4dd#ddddd d�gd)dddd*d5d,d6�	Z%eje%�ej&d
d7dd8ddded)dd9ej'd
d:dd;dddd"d d&d<d"d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�gdDgdEgdFgdddGe(dddHgdIgd*dJd,dK�Z)ej&d
dLddMddded)dd9ej'd
dNddOdddd"d d&d<d"d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dPddQdd"dd%d dd<d%d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dRddSdd%ddd dTd<dd=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dUddVdddd#d d#d<d#d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dWddXdd#dd&d dYd<d"d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dZdd[dd&dd(d d\d<d%d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d]dd^dd(dd_d d_d<dd=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d`ddadd_ddbd d(d<d#d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dcdddddbdded dfd<d"d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dgddhddeddid djd<d%d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dkddlddiddmd d%d<d(d=d"d>e(d?e*d�d@ddAdd)ddBe(dCdddde�ej'd
dnddoddmddpd d"d<d&d=d"d>e(d?e*d�d@ddAdd)ddBe(dCdddde�ej'd
dqddrddpddTd dbd<d_d=d"d>e(d?e(d@ddAdd)ddBe(dCdddde�ej'd
dsddtddTddud ded<ded=d"d>e(d?edv�j+dw�d@ddAdd)ddBe(dCdddde�ej'd
dxddydduddfd dpd<ded=d"d>e(d?edv�d@ddAdd)ddBe(dCdddde�ej'd
dzdd{ddfdd\d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d|dd}ddjdd~d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
ddd�ddYdd�d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd\dd�d dud<dbd=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd~dd�d dud<dbd=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d ded<ded=d"d>e(d?edv�j+dw�d@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d ded<ded=d"d>e(d?edv�j+dw�d@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d d&d<d"d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dd<d%d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dTd<dd=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d#d<d#d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dYd<d"d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d\d<d%d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d_d<dd=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d(d<d#d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dfd<d"d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d djd<d%d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d%d<d(d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d"d<d&d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dbd<d_d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d ded<ded=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dpd<ded=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dmd<did=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dmd<did=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dmd<did=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dud<dbd=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dud<dbd=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d ded<ded=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d ded<ded=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d dmd<did=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d dTd<dd=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d ded<ded=d"d>e(d?edv�j+dw�d@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dpd<ded=d"d>e(d?edv�d@ddAdd)ddBe(dCdddde�g4dDgdEe)gdFe%gdddGe(dddHgdIej.d
d�dd�ddd)dd9g�gd*d�d,d��Z/ej&d
d�dd�ddded)dd9ej'd
d�dd�dddd�d d&d<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd"dd�d dd<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd%ddd dTd<dd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddddd d#d<d#d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
ddddd#ddd dYd<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
ddddd&dd	d d\d<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d
dddd(ddd d_d<dd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d
dddd_ddd d(d<d#d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddbddd dfd<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddeddd djd<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddiddd d%d<d(d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddmddd d"d<d&d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddpddd dbd<d_d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
ddd ddTdd!d dud<dbd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�gdDgdEgdFgdddGe(dddHgdIgd*d"d,d#�Z0ej&d
d$dd%ddded)dd9ej'd
d�dd&dddd"d d&d<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd(dd"dd%d dd<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd)dd%ddd dTd<dd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd*dddd#d d#d<d#d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd+dd#dd&d dYd<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd,dd&dd(d d\d<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd-dd(dd_d d_d<dd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd.dd_ddbd d(d<d#d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd/ddbdded dfd<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd0ddeddid djd<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd1ddiddmd d%d<d(d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd2ddmddpd d"d<d&d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd3ddpddTd dbd<d_d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd4ddTddud dud<dbd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�gdDgdEgdFgdddGe(dddHgdIgd*d5d,d6�Z1ej&d
d7dd8ddded)dd9ej'd
d9dd:dddd"d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d;dd<dd"dd%d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d=dd>dd%ddd dmd<did=dd>e(d?gd@ddAdd)ddBe(dCdddde�gdDgdEgdFgdddGe(dddHgdIgd*d?d,d@�Z2ej&d
dAddBddded)dd9ej'd
dCddDdddd"d d&d<d"d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�gdDgdEgdFgdddGe(dddHgdIgd*dEd,dF�Z3ej&d
dGddHddded)dd9gdDgdEgdFgdddGe(dddHgdIgd*dId,dJ�Z4e/e)_5e)e/j6dz_7e3e/j6d|_7ej8e/j6d_7e%e/j6d�_9ee/j6d�_9ej:e/j6d�_7e)e/j6d�_7ej8e/j6d�_7e)e/j6d�_7e3e/j6d�_7ej8e/j6d�_7e%e/j6d�_9ee/j6d�_9e)e/j6d�_7e)e/j6d�_7e/e%_5e/j;d�j<j=e/j6d��e/j;d�e/j6d�_>e/j;d�j<j=e/j6d��e/j;d�e/j6d�_>e/j;d�j<j=e/j6d��e/j;d�e/j6d�_>e/j;d�j<j=e/j6d��e/j;d�e/j6d�_>ee0j6d_9e%e1j6d�_9e2e2j6d9_7e/e2j6d;_7e2e2j6d=_7e/ej?dL<e0ej?d�<e1ej?d$<e2ej?d7<e3ej?dA<e4ej?dG<eej@d<ejAe�ejBdLe	jCfeDd7ejBd7e	jCfeDdKe)dLdM��dKe/dLdM��ZEejFeE�ejFeEjG�ejBd�e	jCfeDdKe0dLdM��ZHejFeH�ejBd$e	jCfeDdKe1dLdM��ZIejFeI�ejBd7e	jCfeDdKe2dLdM��ZJejFeJ�ejBdAe	jCfeDdKe3dLdM��ZKejFeK�ejBdGe	jCfeDdKe4dLdM��ZLejFeL�eMe_Nej,ejO�edN��e_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe0j6d�_Nej,ej-�ed���e0j6d�_PeMe0j6d�_Nej,ej-�ed���e0j6d�_PeMe0j6d�_Nej,ej-�ed���e0j6d�_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d
_Nej,ej-�ed���e0j6d
_PeMe0j6d
_Nej,ej-�ed���e0j6d
_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PdS(Oi����NiicCs|S(N((tx((sM/usr/lib/python2.7/site-packages/google/protobuf/unittest_proto3_arena_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sM/usr/lib/python2.7/site-packages/google/protobuf/unittest_proto3_arena_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_import_pb2tnames+google/protobuf/unittest_proto3_arena.prototpackagetproto3_arena_unittesttsyntaxtproto3t
serialized_pbs&
+google/protobuf/unittest_proto3_arena.protoproto3_arena_unittest%google/protobuf/unittest_import.proto"�
TestAllTypes
optional_int32 (
optional_int64 (
optional_uint32 (

optional_uint64 (
optional_sint32 (
optional_sint64 (
optional_fixed32 (
optional_fixed64 (
optional_sfixed32	 (
optional_sfixed64
 (
optional_float (
optional_double (

optional_bool
 (
optional_string (	
optional_bytes (R
optional_nested_message (21.proto3_arena_unittest.TestAllTypes.NestedMessageG
optional_foreign_message (2%.proto3_arena_unittest.ForeignMessageH
optional_import_message (2'.protobuf_unittest_import.ImportMessageL
optional_nested_enum (2..proto3_arena_unittest.TestAllTypes.NestedEnumA
optional_foreign_enum (2".proto3_arena_unittest.ForeignEnum!
optional_string_piece (	B

optional_cord (	BU
optional_public_import_message (2-.protobuf_unittest_import.PublicImportMessageT
optional_lazy_message (21.proto3_arena_unittest.TestAllTypes.NestedMessageB(Q
optional_lazy_import_messages (2'.protobuf_unittest_import.ImportMessageB(
repeated_int32 (
repeated_int64  (
repeated_uint32! (

repeated_uint64" (
repeated_sint32# (
repeated_sint64$ (
repeated_fixed32% (
repeated_fixed64& (
repeated_sfixed32' (
repeated_sfixed64( (
repeated_float) (
repeated_double* (

repeated_bool+ (
repeated_string, (	
repeated_bytes- (R
repeated_nested_message0 (21.proto3_arena_unittest.TestAllTypes.NestedMessageG
repeated_foreign_message1 (2%.proto3_arena_unittest.ForeignMessageH
repeated_import_message2 (2'.protobuf_unittest_import.ImportMessageL
repeated_nested_enum3 (2..proto3_arena_unittest.TestAllTypes.NestedEnumA
repeated_foreign_enum4 (2".proto3_arena_unittest.ForeignEnum!
repeated_string_piece6 (	B

repeated_cord7 (	BT
repeated_lazy_message9 (21.proto3_arena_unittest.TestAllTypes.NestedMessageB(
oneof_uint32o (
HQ
oneof_nested_messagep (21.proto3_arena_unittest.TestAllTypes.NestedMessageH
oneof_stringq (	H
oneof_bytesr (H

NestedMessage

bb ("C

NestedEnum
ZERO
FOO
BAR
BAZ
NEG���������B
oneof_field"�
TestPackedTypes
packed_int32Z (B
packed_int64[ (B

packed_uint32\ (
B

packed_uint64] (B

packed_sint32^ (B

packed_sint64_ (B
packed_fixed32` (B
packed_fixed64a (B
packed_sfixed32b (B
packed_sfixed64c (B
packed_floatd (B

packed_doublee (B
packed_boolf (B;
packed_enumg (2".proto3_arena_unittest.ForeignEnumB"�
TestUnpackedTypes
repeated_int32 (B
repeated_int64 (B
repeated_uint32 (
B
repeated_uint64 (B
repeated_sint32 (B
repeated_sint64 (B
repeated_fixed32 (B
repeated_fixed64 (B
repeated_sfixed32	 (B
repeated_sfixed64
 (B
repeated_float (B
repeated_double (B

repeated_bool
 (BP
repeated_nested_enum (2..proto3_arena_unittest.TestAllTypes.NestedEnumB"�
NestedTestAllTypes8
child (2).proto3_arena_unittest.NestedTestAllTypes4
payload (2#.proto3_arena_unittest.TestAllTypesA
repeated_child (2).proto3_arena_unittest.NestedTestAllTypes"
ForeignMessage	
c ("
TestEmptyMessage*R
ForeignEnum
FOREIGN_ZERO
FOREIGN_FOO
FOREIGN_BAR
FOREIGN_BAZB�bproto3tdependenciestForeignEnumt	full_names!proto3_arena_unittest.ForeignEnumtfilenametfiletvaluestFOREIGN_ZEROtindextnumbertoptionsttypetFOREIGN_FOOiitFOREIGN_BARiitFOREIGN_BAZitcontaining_typetserialized_starti�
tserialized_endit
NestedEnums-proto3_arena_unittest.TestAllTypes.NestedEnumtZEROtFOOtBARtBAZtNEGi�i(	t
NestedMessages0proto3_arena_unittest.TestAllTypes.NestedMessagetfieldstbbs3proto3_arena_unittest.TestAllTypes.NestedMessage.bbtcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi�i�tTestAllTypess"proto3_arena_unittest.TestAllTypestoptional_int32s1proto3_arena_unittest.TestAllTypes.optional_int32toptional_int64s1proto3_arena_unittest.TestAllTypes.optional_int64toptional_uint32s2proto3_arena_unittest.TestAllTypes.optional_uint32i
toptional_uint64s2proto3_arena_unittest.TestAllTypes.optional_uint64toptional_sint32s2proto3_arena_unittest.TestAllTypes.optional_sint32itoptional_sint64s2proto3_arena_unittest.TestAllTypes.optional_sint64itoptional_fixed32s3proto3_arena_unittest.TestAllTypes.optional_fixed32itoptional_fixed64s3proto3_arena_unittest.TestAllTypes.optional_fixed64itoptional_sfixed32s4proto3_arena_unittest.TestAllTypes.optional_sfixed32i	itoptional_sfixed64s4proto3_arena_unittest.TestAllTypes.optional_sfixed64i
itoptional_floats1proto3_arena_unittest.TestAllTypes.optional_floatitoptional_doubles2proto3_arena_unittest.TestAllTypes.optional_doubleit
optional_bools0proto3_arena_unittest.TestAllTypes.optional_booltoptional_strings2proto3_arena_unittest.TestAllTypes.optional_stringiRsutf-8toptional_bytess1proto3_arena_unittest.TestAllTypes.optional_bytestoptional_nested_messages:proto3_arena_unittest.TestAllTypes.optional_nested_messagetoptional_foreign_messages;proto3_arena_unittest.TestAllTypes.optional_foreign_messageitoptional_import_messages:proto3_arena_unittest.TestAllTypes.optional_import_messageitoptional_nested_enums7proto3_arena_unittest.TestAllTypes.optional_nested_enumitoptional_foreign_enums8proto3_arena_unittest.TestAllTypes.optional_foreign_enumitoptional_string_pieces8proto3_arena_unittest.TestAllTypes.optional_string_pieceist
optional_cords0proto3_arena_unittest.TestAllTypes.optional_cordistoptional_public_import_messagesAproto3_arena_unittest.TestAllTypes.optional_public_import_messageitoptional_lazy_messages8proto3_arena_unittest.TestAllTypes.optional_lazy_messageiis(toptional_lazy_import_messages?proto3_arena_unittest.TestAllTypes.optional_lazy_import_messageistrepeated_int32s1proto3_arena_unittest.TestAllTypes.repeated_int32itrepeated_int64s1proto3_arena_unittest.TestAllTypes.repeated_int64i trepeated_uint32s2proto3_arena_unittest.TestAllTypes.repeated_uint32i!trepeated_uint64s2proto3_arena_unittest.TestAllTypes.repeated_uint64ii"trepeated_sint32s2proto3_arena_unittest.TestAllTypes.repeated_sint32ii#trepeated_sint64s2proto3_arena_unittest.TestAllTypes.repeated_sint64ii$trepeated_fixed32s3proto3_arena_unittest.TestAllTypes.repeated_fixed32i%trepeated_fixed64s3proto3_arena_unittest.TestAllTypes.repeated_fixed64i&trepeated_sfixed32s4proto3_arena_unittest.TestAllTypes.repeated_sfixed32i'trepeated_sfixed64s4proto3_arena_unittest.TestAllTypes.repeated_sfixed64i(trepeated_floats1proto3_arena_unittest.TestAllTypes.repeated_floati)trepeated_doubles2proto3_arena_unittest.TestAllTypes.repeated_doublei*t
repeated_bools0proto3_arena_unittest.TestAllTypes.repeated_booli+trepeated_strings2proto3_arena_unittest.TestAllTypes.repeated_stringi,trepeated_bytess1proto3_arena_unittest.TestAllTypes.repeated_bytesi-trepeated_nested_messages:proto3_arena_unittest.TestAllTypes.repeated_nested_messagei0trepeated_foreign_messages;proto3_arena_unittest.TestAllTypes.repeated_foreign_messagei1trepeated_import_messages:proto3_arena_unittest.TestAllTypes.repeated_import_messagei2trepeated_nested_enums7proto3_arena_unittest.TestAllTypes.repeated_nested_enumi3trepeated_foreign_enums8proto3_arena_unittest.TestAllTypes.repeated_foreign_enumi4trepeated_string_pieces8proto3_arena_unittest.TestAllTypes.repeated_string_piecei6t
repeated_cords0proto3_arena_unittest.TestAllTypes.repeated_cordi.i7trepeated_lazy_messages8proto3_arena_unittest.TestAllTypes.repeated_lazy_messagei/i9toneof_uint32s/proto3_arena_unittest.TestAllTypes.oneof_uint32iotoneof_nested_messages7proto3_arena_unittest.TestAllTypes.oneof_nested_messageiptoneof_strings/proto3_arena_unittest.TestAllTypes.oneof_stringiqtoneof_bytess.proto3_arena_unittest.TestAllTypes.oneof_bytesirtoneof_fields.proto3_arena_unittest.TestAllTypes.oneof_fieldini7	tTestPackedTypess%proto3_arena_unittest.TestPackedTypestpacked_int32s2proto3_arena_unittest.TestPackedTypes.packed_int32iZstpacked_int64s2proto3_arena_unittest.TestPackedTypes.packed_int64i[t
packed_uint32s3proto3_arena_unittest.TestPackedTypes.packed_uint32i\t
packed_uint64s3proto3_arena_unittest.TestPackedTypes.packed_uint64i]t
packed_sint32s3proto3_arena_unittest.TestPackedTypes.packed_sint32i^t
packed_sint64s3proto3_arena_unittest.TestPackedTypes.packed_sint64i_tpacked_fixed32s4proto3_arena_unittest.TestPackedTypes.packed_fixed32i`tpacked_fixed64s4proto3_arena_unittest.TestPackedTypes.packed_fixed64iatpacked_sfixed32s5proto3_arena_unittest.TestPackedTypes.packed_sfixed32ibtpacked_sfixed64s5proto3_arena_unittest.TestPackedTypes.packed_sfixed64ictpacked_floats2proto3_arena_unittest.TestPackedTypes.packed_floatidt
packed_doubles3proto3_arena_unittest.TestPackedTypes.packed_doubleietpacked_bools1proto3_arena_unittest.TestPackedTypes.packed_booliftpacked_enums1proto3_arena_unittest.TestPackedTypes.packed_enumigi:	i�
tTestUnpackedTypess'proto3_arena_unittest.TestUnpackedTypess6proto3_arena_unittest.TestUnpackedTypes.repeated_int32ss6proto3_arena_unittest.TestUnpackedTypes.repeated_int64s7proto3_arena_unittest.TestUnpackedTypes.repeated_uint32s7proto3_arena_unittest.TestUnpackedTypes.repeated_uint64s7proto3_arena_unittest.TestUnpackedTypes.repeated_sint32s7proto3_arena_unittest.TestUnpackedTypes.repeated_sint64s8proto3_arena_unittest.TestUnpackedTypes.repeated_fixed32s8proto3_arena_unittest.TestUnpackedTypes.repeated_fixed64s9proto3_arena_unittest.TestUnpackedTypes.repeated_sfixed32s9proto3_arena_unittest.TestUnpackedTypes.repeated_sfixed64s6proto3_arena_unittest.TestUnpackedTypes.repeated_floats7proto3_arena_unittest.TestUnpackedTypes.repeated_doubles5proto3_arena_unittest.TestUnpackedTypes.repeated_bools<proto3_arena_unittest.TestUnpackedTypes.repeated_nested_enumi�
i�tNestedTestAllTypess(proto3_arena_unittest.NestedTestAllTypestchilds.proto3_arena_unittest.NestedTestAllTypes.childtpayloads0proto3_arena_unittest.NestedTestAllTypes.payloadtrepeated_childs7proto3_arena_unittest.NestedTestAllTypes.repeated_childi�i�
tForeignMessages$proto3_arena_unittest.ForeignMessagetcs&proto3_arena_unittest.ForeignMessage.ci�
i�
tTestEmptyMessages&proto3_arena_unittest.TestEmptyMessagei�
i�
t
DESCRIPTORt
__module__s)google.protobuf.unittest_proto3_arena_pb2s�(Qtsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt-google_dot_protobuf_dot_unittest__import__pb2t5google_dot_protobuf_dot_unittest__import__public__pb2tAttributeErrortgoogletprotobuftunittest_import_public_pb2tFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_FOREIGNENUMtRegisterEnumDescriptortEnumTypeWrapperRRRRRt_TESTALLTYPES_NESTEDENUMt
DescriptortFieldDescriptortFalset_TESTALLTYPES_NESTEDMESSAGEtfloattdecodet
_ParseOptionstFieldOptionstOneofDescriptort
_TESTALLTYPESt_TESTPACKEDTYPESt_TESTUNPACKEDTYPESt_NESTEDTESTALLTYPESt_FOREIGNMESSAGEt_TESTEMPTYMESSAGER tfields_by_nameR0t_IMPORTMESSAGER1t_PUBLICIMPORTMESSAGEtoneofs_by_nameR*tappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR:tRegisterMessageR)RpRR�R�R�tTruethas_optionstFileOptionst_options(((sM/usr/lib/python2.7/site-packages/google/protobuf/unittest_proto3_arena_pb2.pyt<module>sH%

							
							
																									$	$		$	$																					$	$	$										$	$	$	$	$	$	$	$	$	$	$	$	$	*			$	$	$	$	$	$	$	$	$	$	$	$	$	*													













	!((((((((((((((((((((((((((((((((((PK��\����protobuf/wrappers_pb2.pyonu�[����
���hc-@s�
ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejddddddddddd d!d"dd#ed$ed�d%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d1d2d3�Zejdd4dd5dddedddejdddd6dddddd7d d8d"dd#ed$ed�d%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d9d2d:�Zejdd;dd<dddedddejdddd=ddddddd d7d"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d>d2d?�Zejdd@ddAdddedddejddddBddddddCd dCd"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0dDd2dE�ZejddFddGdddedddejddddHdddddd!d dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0dId2dJ�ZejddKddLdddedddejddddMddddddNd dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0dOd2dP�ZejddQddRdddedddejddddSddddddTd dUd"dd#ed$ed%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0dVd2dW�ZejddXddYdddedddejddddZdddddd[d d[d"dd#ed$ed\�jd]�d%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d^d2d_�Zejdd`ddadddedddejddddbddddddcd d[d"dd#ed$ed\�d%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0ddd2de�Zeej d<eej d4<eej d;<eej d@<eej dF<eej dK<eej dQ<eej dX<eej d`<ej!e�e	j"dej#fe$dfedgdh��Z%ej&e%�e	j"d4ej#fe$dfedgdh��Z'ej&e'�e	j"d;ej#fe$dfedgdh��Z(ej&e(�e	j"d@ej#fe$dfedgdh��Z)ej&e)�e	j"dFej#fe$dfedgdh��Z*ej&e*�e	j"dKej#fe$dfedgdh��Z+ej&e+�e	j"dQej#fe$dfedgdh��Z,ej&e,�e	j"dXej#fe$dfedgdh��Z-ej&e-�e	j"d`ej#fe$dfedgdh��Z.ej&e.�e/e_0ej1ej2�edi��e_3dS(ji����NiicCs|S(N((tx((s@/usr/lib/python2.7/site-packages/google/protobuf/wrappers_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s@/usr/lib/python2.7/site-packages/google/protobuf/wrappers_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/wrappers.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/wrappers.protogoogle.protobuf"
DoubleValue
value ("

FloatValue
value ("

Int64Value
value ("
UInt64Value
value ("

Int32Value
value ("
UInt32Value
value (
"
	BoolValue
value ("
StringValue
value (	"

BytesValue
value (B|
com.google.protobufB
WrappersProtoPZ*github.com/golang/protobuf/ptypes/wrappers��GPB�Google.Protobuf.WellKnownTypesbproto3tDoubleValuet	full_namesgoogle.protobuf.DoubleValuetfilenametfiletcontaining_typetfieldstvalues!google.protobuf.DoubleValue.valuetindextnumberittypetcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti3tserialized_endiOt
FloatValuesgoogle.protobuf.FloatValues google.protobuf.FloatValue.valueiiiQilt
Int64Valuesgoogle.protobuf.Int64Values google.protobuf.Int64Value.valueini�tUInt64Valuesgoogle.protobuf.UInt64Values!google.protobuf.UInt64Value.valueii�i�t
Int32Valuesgoogle.protobuf.Int32Values google.protobuf.Int32Value.valuei�i�tUInt32Valuesgoogle.protobuf.UInt32Values!google.protobuf.UInt32Value.valuei
i�i�t	BoolValuesgoogle.protobuf.BoolValuesgoogle.protobuf.BoolValue.valueiii�i�tStringValuesgoogle.protobuf.StringValues!google.protobuf.StringValue.valuei	Rsutf-8iit
BytesValuesgoogle.protobuf.BytesValues google.protobuf.BytesValue.valueiii9t
DESCRIPTORt
__module__sgoogle.protobuf.wrappers_pb2s|
com.google.protobufB
WrappersProtoPZ*github.com/golang/protobuf/ptypes/wrappers��GPB�Google.Protobuf.WellKnownTypes(4tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR2t
DescriptortNonetFieldDescriptortFalsetfloatt_DOUBLEVALUEt_FLOATVALUEt_INT64VALUEt_UINT64VALUEt_INT32VALUEt_UINT32VALUEt
_BOOLVALUEtdecodet_STRINGVALUEt_BYTESVALUEtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR*R+R,R-R.R/R0R1tTruethas_optionst
_ParseOptionstFileOptionst_options(((s@/usr/lib/python2.7/site-packages/google/protobuf/wrappers_pb2.pyt<module>s%																												


















	PK��\P=��++protobuf/service_reflection.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Contains metaclasses used to create protocol service and service stub
classes from ServiceDescriptor objects at runtime.

The GeneratedServiceType and GeneratedServiceStubType metaclasses are used to
inject all useful functionality into the classes output by the protocol
compiler at compile-time.
"""

__author__ = 'petar@google.com (Petar Petrov)'


class GeneratedServiceType(type):

  """Metaclass for service classes created at runtime from ServiceDescriptors.

  Implementations for all methods described in the Service class are added here
  by this class. We also create properties to allow getting/setting all fields
  in the protocol message.

  The protocol compiler currently uses this metaclass to create protocol service
  classes at runtime. Clients can also manually create their own classes at
  runtime, as in this example:

  mydescriptor = ServiceDescriptor(.....)
  class MyProtoService(service.Service):
    __metaclass__ = GeneratedServiceType
    DESCRIPTOR = mydescriptor
  myservice_instance = MyProtoService()
  ...
  """

  _DESCRIPTOR_KEY = 'DESCRIPTOR'

  def __init__(cls, name, bases, dictionary):
    """Creates a message service class.

    Args:
      name: Name of the class (ignored, but required by the metaclass
        protocol).
      bases: Base classes of the class being constructed.
      dictionary: The class dictionary of the class being constructed.
        dictionary[_DESCRIPTOR_KEY] must contain a ServiceDescriptor object
        describing this protocol service type.
    """
    # Don't do anything if this class doesn't have a descriptor. This happens
    # when a service class is subclassed.
    if GeneratedServiceType._DESCRIPTOR_KEY not in dictionary:
      return
    descriptor = dictionary[GeneratedServiceType._DESCRIPTOR_KEY]
    service_builder = _ServiceBuilder(descriptor)
    service_builder.BuildService(cls)


class GeneratedServiceStubType(GeneratedServiceType):

  """Metaclass for service stubs created at runtime from ServiceDescriptors.

  This class has similar responsibilities as GeneratedServiceType, except that
  it creates the service stub classes.
  """

  _DESCRIPTOR_KEY = 'DESCRIPTOR'

  def __init__(cls, name, bases, dictionary):
    """Creates a message service stub class.

    Args:
      name: Name of the class (ignored, here).
      bases: Base classes of the class being constructed.
      dictionary: The class dictionary of the class being constructed.
        dictionary[_DESCRIPTOR_KEY] must contain a ServiceDescriptor object
        describing this protocol service type.
    """
    super(GeneratedServiceStubType, cls).__init__(name, bases, dictionary)
    # Don't do anything if this class doesn't have a descriptor. This happens
    # when a service stub is subclassed.
    if GeneratedServiceStubType._DESCRIPTOR_KEY not in dictionary:
      return
    descriptor = dictionary[GeneratedServiceStubType._DESCRIPTOR_KEY]
    service_stub_builder = _ServiceStubBuilder(descriptor)
    service_stub_builder.BuildServiceStub(cls)


class _ServiceBuilder(object):

  """This class constructs a protocol service class using a service descriptor.

  Given a service descriptor, this class constructs a class that represents
  the specified service descriptor. One service builder instance constructs
  exactly one service class. That means all instances of that class share the
  same builder.
  """

  def __init__(self, service_descriptor):
    """Initializes an instance of the service class builder.

    Args:
      service_descriptor: ServiceDescriptor to use when constructing the
        service class.
    """
    self.descriptor = service_descriptor

  def BuildService(self, cls):
    """Constructs the service class.

    Args:
      cls: The class that will be constructed.
    """

    # CallMethod needs to operate with an instance of the Service class. This
    # internal wrapper function exists only to be able to pass the service
    # instance to the method that does the real CallMethod work.
    def _WrapCallMethod(srvc, method_descriptor,
                        rpc_controller, request, callback):
      return self._CallMethod(srvc, method_descriptor,
                       rpc_controller, request, callback)
    self.cls = cls
    cls.CallMethod = _WrapCallMethod
    cls.GetDescriptor = staticmethod(lambda: self.descriptor)
    cls.GetDescriptor.__doc__ = "Returns the service descriptor."
    cls.GetRequestClass = self._GetRequestClass
    cls.GetResponseClass = self._GetResponseClass
    for method in self.descriptor.methods:
      setattr(cls, method.name, self._GenerateNonImplementedMethod(method))

  def _CallMethod(self, srvc, method_descriptor,
                  rpc_controller, request, callback):
    """Calls the method described by a given method descriptor.

    Args:
      srvc: Instance of the service for which this method is called.
      method_descriptor: Descriptor that represent the method to call.
      rpc_controller: RPC controller to use for this method's execution.
      request: Request protocol message.
      callback: A callback to invoke after the method has completed.
    """
    if method_descriptor.containing_service != self.descriptor:
      raise RuntimeError(
          'CallMethod() given method descriptor for wrong service type.')
    method = getattr(srvc, method_descriptor.name)
    return method(rpc_controller, request, callback)

  def _GetRequestClass(self, method_descriptor):
    """Returns the class of the request protocol message.

    Args:
      method_descriptor: Descriptor of the method for which to return the
        request protocol message class.

    Returns:
      A class that represents the input protocol message of the specified
      method.
    """
    if method_descriptor.containing_service != self.descriptor:
      raise RuntimeError(
          'GetRequestClass() given method descriptor for wrong service type.')
    return method_descriptor.input_type._concrete_class

  def _GetResponseClass(self, method_descriptor):
    """Returns the class of the response protocol message.

    Args:
      method_descriptor: Descriptor of the method for which to return the
        response protocol message class.

    Returns:
      A class that represents the output protocol message of the specified
      method.
    """
    if method_descriptor.containing_service != self.descriptor:
      raise RuntimeError(
          'GetResponseClass() given method descriptor for wrong service type.')
    return method_descriptor.output_type._concrete_class

  def _GenerateNonImplementedMethod(self, method):
    """Generates and returns a method that can be set for a service methods.

    Args:
      method: Descriptor of the service method for which a method is to be
        generated.

    Returns:
      A method that can be added to the service class.
    """
    return lambda inst, rpc_controller, request, callback: (
        self._NonImplementedMethod(method.name, rpc_controller, callback))

  def _NonImplementedMethod(self, method_name, rpc_controller, callback):
    """The body of all methods in the generated service class.

    Args:
      method_name: Name of the method being executed.
      rpc_controller: RPC controller used to execute this method.
      callback: A callback which will be invoked when the method finishes.
    """
    rpc_controller.SetFailed('Method %s not implemented.' % method_name)
    callback(None)


class _ServiceStubBuilder(object):

  """Constructs a protocol service stub class using a service descriptor.

  Given a service descriptor, this class constructs a suitable stub class.
  A stub is just a type-safe wrapper around an RpcChannel which emulates a
  local implementation of the service.

  One service stub builder instance constructs exactly one class. It means all
  instances of that class share the same service stub builder.
  """

  def __init__(self, service_descriptor):
    """Initializes an instance of the service stub class builder.

    Args:
      service_descriptor: ServiceDescriptor to use when constructing the
        stub class.
    """
    self.descriptor = service_descriptor

  def BuildServiceStub(self, cls):
    """Constructs the stub class.

    Args:
      cls: The class that will be constructed.
    """

    def _ServiceStubInit(stub, rpc_channel):
      stub.rpc_channel = rpc_channel
    self.cls = cls
    cls.__init__ = _ServiceStubInit
    for method in self.descriptor.methods:
      setattr(cls, method.name, self._GenerateStubMethod(method))

  def _GenerateStubMethod(self, method):
    return (lambda inst, rpc_controller, request, callback=None:
        self._StubMethod(inst, method, rpc_controller, request, callback))

  def _StubMethod(self, stub, method_descriptor,
                  rpc_controller, request, callback):
    """The body of all service methods in the generated stub class.

    Args:
      stub: Stub instance.
      method_descriptor: Descriptor of the invoked method.
      rpc_controller: Rpc controller to execute the method.
      request: Request protocol message.
      callback: A callback to execute when the method finishes.
    Returns:
      Response message (in case of blocking call).
    """
    return stub.rpc_channel.CallMethod(
        method_descriptor, rpc_controller, request,
        method_descriptor.output_type._concrete_class, callback)
PK��\2�V����(protobuf/unittest_custom_options_pb2.pycnu�[����
���hc1@s�FddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZddlmZdd
lmZe
j�Zdd
lmZejddddddded�dejg�Zejdddddddedejdddddd d!dd"d�ejdd#dd dd$d!dd"d�gd%dd!dd&d'd(d)�	Zeje�eje�Zejdd*dd+dddedejdd,dddd d!ejej�ed-��d"d�gd%dd!ejej �ed.��d&d/d(d0�	Z!eje!�eje!�Z"d Z#d$Z$d Z%d1Z&ej'dd2dd3dddd1d"d4d5d4d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z*d=Z+ej'dd>dd?dd dd=d"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z,dAZ-ej'ddBddCdd$ddAd"dDd5d4d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z.dEZ/ej'ddFddGddddEd"d@d5d d6d d7e)d8dHd9dd:dd%dd;e)d<dd!dde�Z0dIZ1ej'ddJddKdd4ddId"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z2dLZ3ej'ddMddNdd@ddLd"dOd5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z4dPZ5ej'ddQddRddDddPd"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z6dSZ7ej'ddTddUddVddSd"dWd5d$d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z8dXZ9ej'ddYddZdd[ddXd"d\d5d[d6d d7e(d8d d9dd:dd%dd;e)d<dd!dde�Z:d]Z;ej'dd^dd_dd`dd]d"d[d5dVd6d d7e(d8e(d9dd:dd%dd;e)d<dd!dde�Z<daZ=ej'ddbddcdddddad"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z>deZ?ej'ddfddgddhdded"dd5d$d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z@diZAej'ddjddkddlddid"dmd5dd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZBdnZCej'ddoddpddmddnd"d4d5d4d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZDdqZEej'ddrddsdd\ddqd"dtd5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZFduZGej'ddvddwddOddud"dWd5d$d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZHdxZIej'ddyddzdd{ddxd"dVd5dd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZJd|ZKej'dd}dd~ddtdd|d"dDd5d4d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZLdZMej'dd�dd�ddWddd"dOd5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZNd�ZOej'dd�dd�dd�dd�d"d{d5d$d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZPd�ZQej'dd�dd�dd�dd�d"d$d5dDd6d d7e(d8eRd�d9dd:dd%dd;e)d<dd!dde�ZSd�ZTej'dd�dd�dd�dd�d"d d5d@d6d d7e(d8eRd�d9dd:dd%dd;e)d<dd!dde�ZUd�ZVej'dd�dd�dd�dd�d"d`d5d`d6d d7e(d8ed��jWd��d9dd:dd%dd;e)d<dd!dde�ZXd�ZYej'dd�dd�dd�dd�d"dld5d`d6d d7e(d8ed��d9dd:dd%dd;e)d<dd!dde�ZZd�Z[ej'dd�dd�dd�dd�d"d\d5d[d6d d7e(d8d�d9dd:dd%dd;e)d<dd!dde�Z\d�Z]ej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z^d�Z_ej'dd�dd�dd�dd�d"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z`d�Zaej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zbd�Zcej'dd�dd�dd�dd�d"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zdd�Zeej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zfd�Zgej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zhd�Ziej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zjd�Zkej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zld�Zmej'dd�dd�dd�dd�d"ddd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Znd�Zoej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zpd�Zqej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zrd�Zsej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Ztd�Zuej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zvd�Zwej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zxd�Zyej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zzd�Z{ej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z|d�Z}ej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z~ejdd�dd�dddedejdd�dddd d!dd"d�ejdd�dd dd$d!ejej�ed���d"d�gd%dd!ejej �ed���d&d�d(d��	Zeje�ejdd�dd�dddedejdd�dddd�d!dd"d�ejdd�dd dd�d!dd"d�gd%dd!dd&d�d(d��	Z�eje��ejdd�dd�dddedejdd�dddd d!ejej�ed���d"d�gd%dd!ejej �ed���d&d�d(d��	Z�eje��ejdd�dd�dddedejdd�ddddd!dd"d�gd%dd!dd&d�d(d��	Z�eje��ejdd�dd�dddedejdd�ddddd!dd"d�ejdd�dd dd d!dd"d�gd%dd!dd&d�d(d��	Z�eje��ej�dd�ddddded%ddej'dddddddd d"d`d5d`d6d d7e(d8ed��jWd��d9dd:dd%dd;e(d<dd!ejej��ed��de�ej'dddddd dd$d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgdgd	egd!ejej��ed
��de(dddgd
ej�ddddddd%ddgd!ejej��ed���gd&dd(d�Z�ej�ddddddded%ddgdgdgd	gd!dde(dddgd
gd&dd(d�Z�ej�ddddddded%ddgdgdgd	gd!dde(dddgd
gd&dd(d�Z�ej�ddddddded%ddgdgdgd	gd!dde(dddgd
gd&dd(d�Z�ej�dddd ddded%ddgdgdgd	gd!dde(dddgd
gd&d!d(d"�Z�ej�dd#dd$ddded%ddgdgdgd	e�gd!dde(dddgd
gd&d%d(d��Z�ej�dd&dd'ddded%ddgdgdgd	gd!dde(dddgd
gd&d(d(d)�Z�ej�dd*dd+ddded%ddgdgdgd	gd!ejej��ed,��de(dddgd
gd&d-d(d.�Z�ej�dd/dd0ddded%ddgdgdgd	gd!ejej��ed1��de(dddgd
gd&d2d(d3�Z�ej�dd4dd5ddded%ddgdgdgd	gd!ejej��ed6��de(dddgd
gd&d7d(d8�Z�ej�dd9dd:ddded%ddgdgdgd	gd!ejej��ed;��de(dddgd
gd&d<d(d=�Z�ej�dd>dd?ddded%ddgdgdgd	gd!ejej��ed@��de(dddgd
gd&dAd(dB�Z�ej�ddCddDddded%ddej'ddEddFdddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'ddGddHdd dd$d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'ddIddJdd$ddd"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'ddKddLdddd4d"d@d5d d6dd7e(d8gd9dd:dd%dd;e(d<dd!dde�gdgdgd	gd!dde)dddd�gd
gd&dOd(dP�Z�ej�ddQddRddded%ddej'ddSddTdddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdej'ddUddVddddWd"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�gdgd	gd!dde(dddgd
gd&dXd(dY�Z�ej�ddZdd[ddded%ddej'dd\dd]dddd d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'dd^dd_dd dd$d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'dd`ddadd$ddd"dhd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'ddbddcdddd4d"dhd5ddd6dd7e(d8gd9dd:dd%dd;e(d<dd!dde�gdgde�gd	gd!dde)dddd�gd
gd&ddd(de�Z�ej�ddfddgddded%ddej'ddhddiddddd"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgdgd	gd!dde(dddgd
gd&djd(dk�Z�ej�ddlddmddded%ddej'ddnddodddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'ddpddqdd dd$d"ddd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgde�gd	gd!dde(dddgd
gd&drd(dk�Z�ej�ddsddtddded%ddej'dduddvddddwd"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgdgd	gd!dde(dddgd
gd&dxd(dy�Z�ej�ddzdd{ddded%ddgdgdgd	gd!ejej��ed|��de(dddgd
gd&d}d(d~�Z�ej�dddd�ddded%ddgdgdgd	gd!ejej��ed���de)dddd�gd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d`d5d`d6d d7e(d8ed��jWd��d9dd:dd%dd;e(d<dd!dde�gdej'dd�dd�dddd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�gdgd	gd!dde(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'dd�dd�dd dd$d"d`d5d`d6d d7e(d8ed��jWd��d9dd:dd%dd;e(d<dd!dde�ej'dd�dd�dd$ddd"dhd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'dddd�dddd4d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'dd�dd�dd4dd@d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdej'dd�dd�dddd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�gdgd	gd!dde(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!ejej��ed���de�gdgdgd	gd!ejej��ed���de(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!ejej��ed���de�gdgdgd	gd!ejej��ed���de(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddgdej'dd�dd�dddd�d"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!ejej��ed���de�gde�gd	e�gd!dde(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d\d5d[d6d$d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgdgd	e�gd!dde(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d\d5d[d6d$d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgdgd	e�gd!dde(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddgdgdgd	gd!ejej��ed���de(dddgd
gd&d�d(d��Z�e�e_�e�j�dj�j�e�j�d�e�j�de�j�d_�e�e�_�e�e�_�e�e�j�d\_�e�e�j�d`_�e�e�j�db_�e�e�_�e�e�j�dp_�e�e�j�d�_�ej�e�j�d_�e�e�j�d�_�e�e�_�e�e�_�e�e�j�d�_�e�e�_�e�e�j�d�_�e�e�_�e�ej�d�<e�ej�d<e�ej�d<e�ej�d<e�ej�d<e�ej�d#<e�ej�d&<e�ej�d*<e�ej�d/<e�ej�d4<e�ej�d9<e�ej�d><e�ej�dC<e�ej�dZ<e�ej�dl<e�ej�ds<e�ej�dz<e�ej�d<e�ej�d�<e�ej�d�<e�ej�d�<e�ej�d�<e�ej�d�<e�ej�d�<e�ej�d�<eej�d<e!ej�d*<e*ej�d2<e,ej�d><e.ej�dB<e0ej�dF<e2ej�dJ<e4ej�dM<e6ej�dQ<e8ej�dT<e:ej�dY<e<ej�d^<e>ej�db<e@ej�df<eBej�dj<eDej�do<eFej�dr<eHej�dv<eJej�dy<eLej�d}<eNej�d�<ePej�d�<eSej�d�<eUej�d�<eXej�d�<eZej�d�<e\ej�d�<e^ej�d�<e`ej�d�<ebej�d�<edej�d�<efej�d�<ehej�d�<ejej�d�<elej�d�<enej�d�<epej�d�<erej�d�<etej�d�<evej�d�<exej�d�<ezej�d�<e|ej�d�<e~ej�d�<ej�e�ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�de	j�fe�d�e�d�d���Z�ej�e��ej�de	j�fe�d�e�d�d���Z�ej�e��ej�de	j�fe�d�e�d�d���Z�ej�e��ej�de	j�fe�d�e�d�d���Z�ej�e��ej�d#e	j�fe�d�e�d�d���Z�ej�e��ej�d&e	j�fe�d�e�d�d���Z�ej�e��ej�d*e	j�fe�d�e�d�d���Z�ej�e��ej�d/e	j�fe�d�e�d�d���Z�ej�e��ej�d4e	j�fe�d�e�d�d���Z�ej�e��ej�d9e	j�fe�d�e�d�d���Z�ej�e��ej�d>e	j�fe�d�e�d�d���Z�ej�e��ej�dCe	j�fe�d�e�d�d���Z�ej�e��ej�dZe	j�fe�dQej�dQe	j�fe�d�e�d�d���d�e�d�d���Z�ej�e��ej�e�j��ej�dle	j�fe�dfej�dfe	j�fe�d�e�d�d���d�e�d�d���Z�ej�e��ej�e�j��ej�dse	j�fe�d�e�d�d���Z�ej�e��ej�dze	j�fe�d�e�d�d���Z�ej�e��ej�de	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�ej�d�e	j�fe�d�e�d�d���d�e�d�d���Z�ej�e��ej�e�j��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�j�e*�ej�j�e,�ej�j�e.�ej�j�e0�ej�j�e2�ej j�e4�ejj�e6�ej�j�e8�ee:_�ej�j�e:�ej�j�e<�ej�j�e>�ej�j�e@�ej�j�eB�ej�j�eD�ej�j�eF�ej�j�eH�ej�j�eJ�ej�j�eL�ej�j�eN�ej�j�eP�ej�j�eS�ej�j�eU�ej�j�eX�ej�j�eZ�e�e\_�ej�j�e\�e�e^_�ej�j�e^�e�j�e`�e�eb_�e�j�eb�e�j�ed�e�ef_�e�j�ef�e�eh_�ej�j�eh�e�ej_�ej�j�ej�e�el_�ej�j�el�e�en_�ej�j�en�e�ep_�ej�j�ep�e�er_�ej�j�er�e�et_�ej�j�et�e�ev_�ej j�ev�e�ex_�ejj�ex�e�ez_�ej�j�ez�e�e|_�ej�j�e|�e�e~_�ej�j�e~�e�e�j�dU_�ej�j�e�j�dU�e�e�j�d�_�e�j�e�j�d��e�e�j�d�_�ej�j�e�j�d��ej�j�e�j�d��e)e_�ejej��ed���e_�e)e!_�ejej �ed.��e!_�e)e!j�d,_�ejej�ed-��e!j�d,_�e)e�j�d_�ejej��ed��e�j�d_�e)e_�ejej �ed���e_�e)ej�d�_�ejej�ed���ej�d�_�e)e�j�d_�ejej��ed��e�j�d_�e)e�_�ejej��ed
��e�_�e)e�_�ejej��ed,��e�_�e)e�_�ejej��ed1��e�_�e)e�_�ejej��ed6��e�_�e)e�_�ejej��ed;��e�_�e)e�_�ejej��ed@��e�_�e)e�_�ejej��ed|��e�_�e)e�_�ejej��ed���e�_�e)e�j�d�_�ejej��ed���e�j�d�_�e)e�_�ejej��ed���e�_�e)e�j�d�_�ejej��ed���e�j�d�_�e)e�_�ejej��ed���e�_�e)e�_�ejej �ed���e�_�e)e�j�d�_�ejej�ed���e�j�d�_�e)e�j�d�_�ejej��ed���e�j�d�_�e)e�_�ejej��ed���e�_�ej�dd�dd�deddd!ejej��ed���d&d�d(d�d�ej�dd�dd�ddd�dd�e�d�e�d!ejej��ed����g�Z�ej�e��e�ej�d�<ej�dd�dd�dedd d!ejej��ed���d&d�d(d�d�ej�dd�dd�ddd�dd�e�d�e�d!ejej��ed����g�Z�ej�e��e�ej�d�<ej�d�ej�fe�d�e�d�d���Z�ej�d�e�fe�d�e�d�d���Z�ej�d�ej�fe�d�e�d�d���Z�ej�d�e�fe�d�e�d�d���Z�dS(�i����NiicCs|S(N((tx((sO/usr/lib/python2.7/site-packages/google/protobuf/unittest_custom_options_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sO/usr/lib/python2.7/site-packages/google/protobuf/unittest_custom_options_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tservice(tservice_reflection(tdescriptor_pb2tnames-google/protobuf/unittest_custom_options.prototpackagetprotobuf_unittesttsyntaxtproto2t
serialized_pbs�
-google/protobuf/unittest_custom_options.protoprotobuf_unittest google/protobuf/descriptor.proto"�
TestMessageWithCustomOptions
field1 (	B���-�u

oneof_field (H";
AnEnum
ANENUM_VAL1
ANENUM_VAL2���{����:�����������B
AnOneof������������"
CustomOptionFooRequest"
CustomOptionFooResponse"
CustomOptionFooClientMessage"
CustomOptionFooServerMessage"m
DummyMessageContainingEnum"O
TestEnumType
TEST_OPTION_ENUM_TYPE1#
TEST_OPTION_ENUM_TYPE2�������"!
DummyMessageInvalidAsOptionType"�
CustomOptionMinIntegerValues:j�޲�Ʋ����������������������������İ��������������������������֨�"�
CustomOptionMaxIntegerValues:q�޲�Ʋ�����������������������������������İ����������������������������������������֨�������"n
CustomOptionOtherValues:S�Ʋ����������ߣ�EA�ܢ�Y�B��?�ܢHello, "World"�٢HelloWorld�٢�������"4
SettingRealsFromPositiveInts:�ߣ@A�ܢ@c@"4
SettingRealsFromNegativeInts:�ߣ@��ܢ@c�"U
ComplexOptionType1
foo (
foo2 (
foo3 (
foo4 (*d����"�
ComplexOptionType22
bar (2%.protobuf_unittest.ComplexOptionType1
baz (F
fred (28.protobuf_unittest.ComplexOptionType2.ComplexOptionType4H
barney (28.protobuf_unittest.ComplexOptionType2.ComplexOptionType4�
ComplexOptionType4
waldo (2r
complex_opt4.google.protobuf.MessageOptions��� (28.protobuf_unittest.ComplexOptionType2.ComplexOptionType4*d����"�
ComplexOptionType3
qux (T
complexoptiontype5 (
28.protobuf_unittest.ComplexOptionType3.ComplexOptionType5#
ComplexOptionType5
plugh ("
ComplexOpt6
xyzzy߿� ("�
VariousComplexOptions:���*��؅���������� c�� X�������������
����
؅�����

�������¬�����¬�؅�����
¬�����Ҩ���������"e���"��ސ	�ސ�������"#
AggregateMessageSet*����:"�
AggregateMessageSetElement	
s (	2w
message_set_extension&.protobuf_unittest.AggregateMessageSet�� (2-.protobuf_unittest.AggregateMessageSetElement"�
	Aggregate	
i (	
s (	)
sub (2.protobuf_unittest.Aggregate*
file (2.google.protobuf.FileOptions4
mset (2&.protobuf_unittest.AggregateMessageSet2M
nested.google.protobuf.FileOptions�Ѱ (2.protobuf_unittest.Aggregate"Y
AggregateMessage)
	fieldname (B�;FieldAnnotation:�ц;eMessageAnnotation"�
NestedOptionType;

NestedMessage"
nested_field (B����:����"5

NestedEnum
NESTED_ENUM_VALUE�������2A
nested_extension.google.protobuf.FileOptions��� (Bȋ��"d

OldOptionType8
value (2).protobuf_unittest.OldOptionType.TestEnum"
TestEnum
	OLD_VALUE"s

NewOptionType8
value (2).protobuf_unittest.NewOptionType.TestEnum"(
TestEnum
	OLD_VALUE
	NEW_VALUE"-
!TestMessageWithRequiredEnumOption:��*6

MethodOpt1
METHODOPT1_VAL1
METHODOPT1_VAL2*M

AggregateEnum%
VALUE��;EnumValueAnnotation���;EnumAnnotation2�
TestServiceWithCustomOptionsc
Foo).protobuf_unittest.CustomOptionFooRequest*.protobuf_unittest.CustomOptionFooResponse"�	����ۀ�I2�
AggregateServicek
Method#.protobuf_unittest.AggregateMessage#.protobuf_unittest.AggregateMessage"�Ȗ;MethodAnnotation��;ServiceAnnotation:2
	file_opt1.google.protobuf.FileOptions��� (:8
message_opt1.google.protobuf.MessageOptions��� (:4

field_opt1.google.protobuf.FieldOptions��� (:8

field_opt2.google.protobuf.FieldOptions��� (:42:4

oneof_opt1.google.protobuf.OneofOptionsϵ� (:2
	enum_opt1.google.protobuf.EnumOptions�� (:<
enum_value_opt1!.google.protobuf.EnumValueOptions�_ (:8
service_opt1.google.protobuf.ServiceOptions��� (:U
method_opt1.google.protobuf.MethodOptions��� (2.protobuf_unittest.MethodOpt1:4
bool_opt.google.protobuf.MessageOptions�� (:5
	int32_opt.google.protobuf.MessageOptions�� (:5
	int64_opt.google.protobuf.MessageOptionsƧ� (:6

uint32_opt.google.protobuf.MessageOptions��� (
:6

uint64_opt.google.protobuf.MessageOptionsߎ� (:6

sint32_opt.google.protobuf.MessageOptions��� (:6

sint64_opt.google.protobuf.MessageOptions��� (:7
fixed32_opt.google.protobuf.MessageOptions�� (:7
fixed64_opt.google.protobuf.MessageOptions�� (:8
sfixed32_opt.google.protobuf.MessageOptions��� (:8
sfixed64_opt.google.protobuf.MessageOptions�� (:5
	float_opt.google.protobuf.MessageOptions��� (:6

double_opt.google.protobuf.MessageOptionsͫ� (:6

string_opt.google.protobuf.MessageOptionsū� (	:5
	bytes_opt.google.protobuf.MessageOptions��� (:p
enum_opt.google.protobuf.MessageOptions��� (2:.protobuf_unittest.DummyMessageContainingEnum.TestEnumType:p
message_type_opt.google.protobuf.MessageOptions��� (22.protobuf_unittest.DummyMessageInvalidAsOptionType:6
quux%.protobuf_unittest.ComplexOptionType1��� (:^
corge%.protobuf_unittest.ComplexOptionType1��� (2%.protobuf_unittest.ComplexOptionType3:8
grault%.protobuf_unittest.ComplexOptionType2�� (:_
garply%.protobuf_unittest.ComplexOptionType2�� (2%.protobuf_unittest.ComplexOptionType1:_
complex_opt1.google.protobuf.MessageOptions��� (2%.protobuf_unittest.ComplexOptionType1:_
complex_opt2.google.protobuf.MessageOptionsՏ� (2%.protobuf_unittest.ComplexOptionType2:_
complex_opt3.google.protobuf.MessageOptions�� (2%.protobuf_unittest.ComplexOptionType3:W
complexopt6.google.protobuf.MessageOptions��� (
2.protobuf_unittest.ComplexOpt6:N
fileopt.google.protobuf.FileOptions�ݰ (2.protobuf_unittest.Aggregate:P
msgopt.google.protobuf.MessageOptions�� (2.protobuf_unittest.Aggregate:P
fieldopt.google.protobuf.FieldOptions�� (2.protobuf_unittest.Aggregate:N
enumopt.google.protobuf.EnumOptions҂� (2.protobuf_unittest.Aggregate:V

enumvalopt!.google.protobuf.EnumValueOptionsɟ� (2.protobuf_unittest.Aggregate:T

serviceopt.google.protobuf.ServiceOptions�� (2.protobuf_unittest.Aggregate:R
	methodopt.google.protobuf.MethodOptions�� (2.protobuf_unittest.Aggregate:_
required_enum_opt.google.protobuf.MessageOptions���2 (2 .protobuf_unittest.OldOptionTypeB��������$��;pdFileAnnotationNestedFileAnnotation"��;FileExtensionAnnotation*$��
EmbeddedMessageSetElementtdependenciest
MethodOpt1t	full_namesprotobuf_unittest.MethodOpt1tfilenametfiletvaluestMETHODOPT1_VAL1tindextnumberitoptionsttypetMETHODOPT1_VAL2itcontaining_typetserialized_starti�tserialized_endi�t
AggregateEnumsprotobuf_unittest.AggregateEnumtVALUEs��;EnumValueAnnotations���;EnumAnnotationi�iCi�vt	file_opt1sprotobuf_unittest.file_opt1itcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopei�vtmessage_opt1sprotobuf_unittest.message_opt1iivt
field_opt1sprotobuf_unittest.field_opt1ii�Pvt
field_opt2sprotobuf_unittest.field_opt2i*i�vt
oneof_opt1sprotobuf_unittest.oneof_opt1ihOvt	enum_opt1sprotobuf_unittest.enum_opt1iif�tenum_value_opt1s!protobuf_unittest.enum_value_opt1i"[xtservice_opt1sprotobuf_unittest.service_opt1iii�gxtmethod_opt1sprotobuf_unittest.method_opt1iii�utbool_optsprotobuf_unittest.bool_opti	im�ut	int32_optsprotobuf_unittest.int32_opti
iƓut	int64_optsprotobuf_unittest.int64_optii0�ut
uint32_optsprotobuf_unittest.uint32_optii
i_�ut
uint64_optsprotobuf_unittest.uint64_opti@�ut
sint32_optsprotobuf_unittest.sint32_optii�ut
sint64_optsprotobuf_unittest.sint64_optiSutfixed32_optsprotobuf_unittest.fixed32_optii�~utfixed64_optsprotobuf_unittest.fixed64_opti�xutsfixed32_optsprotobuf_unittest.sfixed32_opticEutsfixed64_optsprotobuf_unittest.sfixed64_optii�ut	float_optsprotobuf_unittest.float_optii�ut
double_optsprotobuf_unittest.double_optii�ut
string_optsprotobuf_unittest.string_optiRsutf-8i�ut	bytes_optsprotobuf_unittest.bytes_optii�utenum_optsprotobuf_unittest.enum_optii/�ttmessage_type_opts"protobuf_unittest.message_type_optii[�ttquuxsprotobuf_unittest.quuxiiR�ttcorgesprotobuf_unittest.corgeiio�ttgraultsprotobuf_unittest.graultiiȺttgarplysprotobuf_unittest.garplyii$�ttcomplex_opt1sprotobuf_unittest.complex_opt1iiՇttcomplex_opt2sprotobuf_unittest.complex_opt2ii�ttcomplex_opt3sprotobuf_unittest.complex_opt3i i��stcomplexopt6sprotobuf_unittest.complexopt6i!i�.�tfileoptsprotobuf_unittest.fileopti"i5�tmsgoptsprotobuf_unittest.msgopti#i:�tfieldoptsprotobuf_unittest.fieldopti$iRA�tenumoptsprotobuf_unittest.enumopti%i�O�t
enumvaloptsprotobuf_unittest.enumvalopti&i�w�t
serviceoptsprotobuf_unittest.serviceopti'i���t	methodoptsprotobuf_unittest.methodopti(i��Strequired_enum_opts#protobuf_unittest.required_enum_opti)tAnEnums5protobuf_unittest.TestMessageWithCustomOptions.AnEnumtANENUM_VAL1tANENUM_VAL2s���{s����i�i�tTestEnumTypes9protobuf_unittest.DummyMessageContainingEnum.TestEnumTypetTEST_OPTION_ENUM_TYPE1tTEST_OPTION_ENUM_TYPE2i��i�i
t
NestedEnums-protobuf_unittest.NestedOptionType.NestedEnumtNESTED_ENUM_VALUEs����s���i:
io
tTestEnums(protobuf_unittest.OldOptionType.TestEnumt	OLD_VALUEi�
is(protobuf_unittest.NewOptionType.TestEnumt	NEW_VALUEiei�tTestMessageWithCustomOptionss.protobuf_unittest.TestMessageWithCustomOptionstfieldstfield1s5protobuf_unittest.TestMessageWithCustomOptions.field1s���-�u
toneof_fields:protobuf_unittest.TestMessageWithCustomOptions.oneof_fieldt
extensionstnested_typest
enum_typess�����������t
is_extendabletextension_rangestoneofstAnOneofs6protobuf_unittest.TestMessageWithCustomOptions.AnOneofs������������igi&tCustomOptionFooRequests(protobuf_unittest.CustomOptionFooRequesti(i@tCustomOptionFooResponses)protobuf_unittest.CustomOptionFooResponseiBi[tCustomOptionFooClientMessages.protobuf_unittest.CustomOptionFooClientMessagei]i{tCustomOptionFooServerMessages.protobuf_unittest.CustomOptionFooServerMessagei}i�tDummyMessageContainingEnums,protobuf_unittest.DummyMessageContainingEnumi�tDummyMessageInvalidAsOptionTypes1protobuf_unittest.DummyMessageInvalidAsOptionTypeii-tCustomOptionMinIntegerValuess.protobuf_unittest.CustomOptionMinIntegerValuessj�޲�Ʋ����������������������������İ��������������������������֨�i0i�tCustomOptionMaxIntegerValuess.protobuf_unittest.CustomOptionMaxIntegerValuessq�޲�Ʋ�����������������������������������İ����������������������������������������֨�������i�iNtCustomOptionOtherValuess)protobuf_unittest.CustomOptionOtherValuessS�Ʋ����������ߣ�EA�ܢ�Y�B��?�ܢHello, "World"�٢HelloWorld�٢�������iPi�tSettingRealsFromPositiveIntss.protobuf_unittest.SettingRealsFromPositiveIntss�ߣ@A�ܢ@c@i�i�tSettingRealsFromNegativeIntss.protobuf_unittest.SettingRealsFromNegativeIntss�ߣ@��ܢ@c�i�i*tComplexOptionType1s$protobuf_unittest.ComplexOptionType1tfoos(protobuf_unittest.ComplexOptionType1.footfoo2s)protobuf_unittest.ComplexOptionType1.foo2tfoo3s)protobuf_unittest.ComplexOptionType1.foo3tfoo4s)protobuf_unittest.ComplexOptionType1.foo4idi i,i�tComplexOptionType4s7protobuf_unittest.ComplexOptionType2.ComplexOptionType4twaldos=protobuf_unittest.ComplexOptionType2.ComplexOptionType4.waldotcomplex_opt4sDprotobuf_unittest.ComplexOptionType2.ComplexOptionType4.complex_opt4i�ztinitComplexOptionType2s$protobuf_unittest.ComplexOptionType2tbars(protobuf_unittest.ComplexOptionType2.bartbazs(protobuf_unittest.ComplexOptionType2.baztfreds)protobuf_unittest.ComplexOptionType2.fredtbarneys+protobuf_unittest.ComplexOptionType2.barneyi�itComplexOptionType5s7protobuf_unittest.ComplexOptionType3.ComplexOptionType5tplughs=protobuf_unittest.ComplexOptionType3.ComplexOptionType5.plughi�i�tComplexOptionType3s$protobuf_unittest.ComplexOptionType3tquxs(protobuf_unittest.ComplexOptionType3.quxtcomplexoptiontype5s7protobuf_unittest.ComplexOptionType3.complexoptiontype5itComplexOpt6sprotobuf_unittest.ComplexOpt6txyzzys#protobuf_unittest.ComplexOpt6.xyzzyi��si�i�tVariousComplexOptionss'protobuf_unittest.VariousComplexOptionss���*��؅���������� c�� X�������������
����
؅�����

�������¬�����¬�؅�����
¬�����Ҩ���������"e���"��ސ	�ސ�������i�i�tAggregateMessageSets%protobuf_unittest.AggregateMessageSetsi���i�i�tAggregateMessageSetElements,protobuf_unittest.AggregateMessageSetElementtss.protobuf_unittest.AggregateMessageSetElement.stmessage_set_extensionsBprotobuf_unittest.AggregateMessageSetElement.message_set_extensioni���i�i�t	Aggregatesprotobuf_unittest.Aggregatetisprotobuf_unittest.Aggregate.isprotobuf_unittest.Aggregate.stsubsprotobuf_unittest.Aggregate.subs protobuf_unittest.Aggregate.filetmsets protobuf_unittest.Aggregate.msettnesteds"protobuf_unittest.Aggregate.nestedi�(�i�i�	tAggregateMessages"protobuf_unittest.AggregateMessaget	fieldnames,protobuf_unittest.AggregateMessage.fieldnames�;FieldAnnotations�ц;eMessageAnnotationi�	i�	t
NestedMessages0protobuf_unittest.NestedOptionType.NestedMessagetnested_fields=protobuf_unittest.NestedOptionType.NestedMessage.nested_fields����s����i�	i8
tNestedOptionTypes"protobuf_unittest.NestedOptionTypetnested_extensions3protobuf_unittest.NestedOptionType.nested_extensioni}�xsȋ��i�	i�
t
OldOptionTypesprotobuf_unittest.OldOptionTypetvalues%protobuf_unittest.OldOptionType.valuei�
t
NewOptionTypesprotobuf_unittest.NewOptionTypes%protobuf_unittest.NewOptionType.valueit!TestMessageWithRequiredEnumOptions3protobuf_unittest.TestMessageWithRequiredEnumOptions��i�i�t
DESCRIPTORt
__module__s+google.protobuf.unittest_custom_options_pb2s��������$��;pdFileAnnotationNestedFileAnnotation"��;FileExtensionAnnotation*$��
EmbeddedMessageSetElementtTestServiceWithCustomOptionss.protobuf_unittest.TestServiceWithCustomOptionss	����ۀ�IiFi�tmethodstFoos2protobuf_unittest.TestServiceWithCustomOptions.Footcontaining_servicet
input_typetoutput_types�tAggregateServices"protobuf_unittest.AggregateServices��;ServiceAnnotationi�ip
tMethods)protobuf_unittest.AggregateService.Methods�Ȗ;MethodAnnotationt!TestServiceWithCustomOptions_StubtAggregateService_Stub(idi (idi (ii���(�tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
t_serviceRRtDefaultt_sym_dbt'google_dot_protobuf_dot_descriptor__pb2tFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_METHODOPT1tRegisterEnumDescriptortEnumTypeWrapperRt
_ParseOptionstEnumValueOptionstEnumOptionst_AGGREGATEENUMR"RRR#tFILE_OPT1_FIELD_NUMBERtFieldDescriptortFalsetTrueR$tMESSAGE_OPT1_FIELD_NUMBERR-tFIELD_OPT1_FIELD_NUMBERR.tFIELD_OPT2_FIELD_NUMBERR/tONEOF_OPT1_FIELD_NUMBERR0tENUM_OPT1_FIELD_NUMBERR1tENUM_VALUE_OPT1_FIELD_NUMBERR2tSERVICE_OPT1_FIELD_NUMBERR3tMETHOD_OPT1_FIELD_NUMBERR4tBOOL_OPT_FIELD_NUMBERR5tINT32_OPT_FIELD_NUMBERR6tINT64_OPT_FIELD_NUMBERR7tUINT32_OPT_FIELD_NUMBERR8tUINT64_OPT_FIELD_NUMBERR9tSINT32_OPT_FIELD_NUMBERR:tSINT64_OPT_FIELD_NUMBERR;tFIXED32_OPT_FIELD_NUMBERR<tFIXED64_OPT_FIELD_NUMBERR=tSFIXED32_OPT_FIELD_NUMBERR>tSFIXED64_OPT_FIELD_NUMBERR?tFLOAT_OPT_FIELD_NUMBERtfloatR@tDOUBLE_OPT_FIELD_NUMBERRAtSTRING_OPT_FIELD_NUMBERtdecodeRBtBYTES_OPT_FIELD_NUMBERRCtENUM_OPT_FIELD_NUMBERRDtMESSAGE_TYPE_OPT_FIELD_NUMBERREtQUUX_FIELD_NUMBERRFtCORGE_FIELD_NUMBERRGtGRAULT_FIELD_NUMBERRHtGARPLY_FIELD_NUMBERRItCOMPLEX_OPT1_FIELD_NUMBERRJtCOMPLEX_OPT2_FIELD_NUMBERRKtCOMPLEX_OPT3_FIELD_NUMBERRLtCOMPLEXOPT6_FIELD_NUMBERRMtFILEOPT_FIELD_NUMBERRNtMSGOPT_FIELD_NUMBERROtFIELDOPT_FIELD_NUMBERRPtENUMOPT_FIELD_NUMBERRQtENUMVALOPT_FIELD_NUMBERRRtSERVICEOPT_FIELD_NUMBERRStMETHODOPT_FIELD_NUMBERRTtREQUIRED_ENUM_OPT_FIELD_NUMBERRUt$_TESTMESSAGEWITHCUSTOMOPTIONS_ANENUMt(_DUMMYMESSAGECONTAININGENUM_TESTENUMTYPEt_NESTEDOPTIONTYPE_NESTEDENUMt_OLDOPTIONTYPE_TESTENUMt_NEWOPTIONTYPE_TESTENUMt
DescriptortFieldOptionstMessageOptionstOneofDescriptortOneofOptionst_TESTMESSAGEWITHCUSTOMOPTIONSt_CUSTOMOPTIONFOOREQUESTt_CUSTOMOPTIONFOORESPONSEt_CUSTOMOPTIONFOOCLIENTMESSAGEt_CUSTOMOPTIONFOOSERVERMESSAGEt_DUMMYMESSAGECONTAININGENUMt _DUMMYMESSAGEINVALIDASOPTIONTYPEt_CUSTOMOPTIONMININTEGERVALUESt_CUSTOMOPTIONMAXINTEGERVALUESt_CUSTOMOPTIONOTHERVALUESt_SETTINGREALSFROMPOSITIVEINTSt_SETTINGREALSFROMNEGATIVEINTSt_COMPLEXOPTIONTYPE1t&_COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4t_COMPLEXOPTIONTYPE2t&_COMPLEXOPTIONTYPE3_COMPLEXOPTIONTYPE5t_COMPLEXOPTIONTYPE3t_COMPLEXOPT6t_VARIOUSCOMPLEXOPTIONSt_AGGREGATEMESSAGESETt_AGGREGATEMESSAGESETELEMENTt
_AGGREGATEt_AGGREGATEMESSAGEt_NESTEDOPTIONTYPE_NESTEDMESSAGEt_NESTEDOPTIONTYPEt_OLDOPTIONTYPEt_NEWOPTIONTYPEt"_TESTMESSAGEWITHREQUIREDENUMOPTIONRtoneofs_by_nameRbtappendtfields_by_nametcontaining_oneofR)t_FILEOPTIONSR*tmessage_types_by_nametenum_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRatRegisterMessageRlRmRnRoRpRqRrRsRtRuRvRwRR|R�R�R�R�R�R�R�R�R�R�R�R�R�tFileOptionstRegisterExtensiontServiceOptionst
MethodOptionsthas_optionst_optionstvalues_by_nametServiceDescriptortMethodDescriptort_TESTSERVICEWITHCUSTOMOPTIONStRegisterServiceDescriptortservices_by_namet_AGGREGATESERVICEtGeneratedServiceTypetServiceR�tGeneratedServiceStubTypeR�R�R�(((sO/usr/lib/python2.7/site-packages/google/protobuf/unittest_custom_options_pb2.pyt<module>s�%					
			
																																														
				
			
			
				
		$			6																																																																									*			*			*																					






























































































			
	

	
													!	!((	!((	!	!	!	!	!	!	!	!(	!(	!	!((	!		'

		'

PK��\�*��`�`'protobuf/unittest_custom_options_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest_custom_options.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import service as _service
from google.protobuf import service_reflection
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest_custom_options.proto',
  package='protobuf_unittest',
  syntax='proto2',
  serialized_pb=_b('\n-google/protobuf/unittest_custom_options.proto\x12\x11protobuf_unittest\x1a google/protobuf/descriptor.proto\"\xbf\x01\n\x1cTestMessageWithCustomOptions\x12\x1e\n\x06\x66ield1\x18\x01 \x01(\tB\x0e\x08\x01\xc1\xe0\xc3\x1d-\xe1u\n\x02\x00\x00\x00\x12\x15\n\x0boneof_field\x18\x02 \x01(\x05H\x00\";\n\x06\x41nEnum\x12\x0f\n\x0b\x41NENUM_VAL1\x10\x01\x12\x16\n\x0b\x41NENUM_VAL2\x10\x02\x1a\x05\xb0\x86\xfa\x05{\x1a\x08\xc5\xf6\xc9\x1d\xeb\xfc\xff\xff:\x10\x08\x00\xe0\xe9\xc2\x1d\xc8\xff\xff\xff\xff\xff\xff\xff\xff\x01\x42\x19\n\x07\x41nOneof\x12\x0e\xf8\xac\xc3\x1d\x9d\xff\xff\xff\xff\xff\xff\xff\xff\x01\"\x18\n\x16\x43ustomOptionFooRequest\"\x19\n\x17\x43ustomOptionFooResponse\"\x1e\n\x1c\x43ustomOptionFooClientMessage\"\x1e\n\x1c\x43ustomOptionFooServerMessage\"m\n\x1a\x44ummyMessageContainingEnum\"O\n\x0cTestEnumType\x12\x1a\n\x16TEST_OPTION_ENUM_TYPE1\x10\x16\x12#\n\x16TEST_OPTION_ENUM_TYPE2\x10\xe9\xff\xff\xff\xff\xff\xff\xff\xff\x01\"!\n\x1f\x44ummyMessageInvalidAsOptionType\"\x8a\x01\n\x1c\x43ustomOptionMinIntegerValues:j\xd0\xde\xb2\x1d\x00\xe8\xc6\xb2\x1d\x80\x80\x80\x80\xf8\xff\xff\xff\xff\x01\xb0\xbc\xb2\x1d\x80\x80\x80\x80\x80\x80\x80\x80\x80\x01\x80\x93\xb2\x1d\x00\xf8\xf5\xb0\x1d\x00\x80\xc4\xb0\x1d\xff\xff\xff\xff\x0f\xf8\x97\xb0\x1d\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x9d\xf5\xaf\x1d\x00\x00\x00\x00\x91\xee\xaf\x1d\x00\x00\x00\x00\x00\x00\x00\x00\xad\x8d\xaf\x1d\x00\x00\x00\x80\x99\xd6\xa8\x1d\x00\x00\x00\x00\x00\x00\x00\x80\"\x91\x01\n\x1c\x43ustomOptionMaxIntegerValues:q\xd0\xde\xb2\x1d\x01\xe8\xc6\xb2\x1d\xff\xff\xff\xff\x07\xb0\xbc\xb2\x1d\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x80\x93\xb2\x1d\xff\xff\xff\xff\x0f\xf8\xf5\xb0\x1d\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x80\xc4\xb0\x1d\xfe\xff\xff\xff\x0f\xf8\x97\xb0\x1d\xfe\xff\xff\xff\xff\xff\xff\xff\xff\x01\x9d\xf5\xaf\x1d\xff\xff\xff\xff\x91\xee\xaf\x1d\xff\xff\xff\xff\xff\xff\xff\xff\xad\x8d\xaf\x1d\xff\xff\xff\x7f\x99\xd6\xa8\x1d\xff\xff\xff\xff\xff\xff\xff\x7f\"n\n\x17\x43ustomOptionOtherValues:S\xe8\xc6\xb2\x1d\x9c\xff\xff\xff\xff\xff\xff\xff\xff\x01\xf5\xdf\xa3\x1d\xe7\x87\x45\x41\xe9\xdc\xa2\x1d\xfbY\x8c\x42\xca\xc0\xf3?\xaa\xdc\xa2\x1d\x0eHello, \"World\"\xb2\xd9\xa2\x1d\x0bHello\x00World\x88\xd9\xa2\x1d\xe9\xff\xff\xff\xff\xff\xff\xff\xff\x01\"4\n\x1cSettingRealsFromPositiveInts:\x14\xf5\xdf\xa3\x1d\x00\x00@A\xe9\xdc\xa2\x1d\x00\x00\x00\x00\x00@c@\"4\n\x1cSettingRealsFromNegativeInts:\x14\xf5\xdf\xa3\x1d\x00\x00@\xc1\xe9\xdc\xa2\x1d\x00\x00\x00\x00\x00@c\xc0\"U\n\x12\x43omplexOptionType1\x12\x0b\n\x03\x66oo\x18\x01 \x01(\x05\x12\x0c\n\x04\x66oo2\x18\x02 \x01(\x05\x12\x0c\n\x04\x66oo3\x18\x03 \x01(\x05\x12\x0c\n\x04\x66oo4\x18\x04 \x03(\x05*\x08\x08\x64\x10\x80\x80\x80\x80\x02\"\x8b\x03\n\x12\x43omplexOptionType2\x12\x32\n\x03\x62\x61r\x18\x01 \x01(\x0b\x32%.protobuf_unittest.ComplexOptionType1\x12\x0b\n\x03\x62\x61z\x18\x02 \x01(\x05\x12\x46\n\x04\x66red\x18\x03 \x01(\x0b\x32\x38.protobuf_unittest.ComplexOptionType2.ComplexOptionType4\x12H\n\x06\x62\x61rney\x18\x04 \x03(\x0b\x32\x38.protobuf_unittest.ComplexOptionType2.ComplexOptionType4\x1a\x97\x01\n\x12\x43omplexOptionType4\x12\r\n\x05waldo\x18\x01 \x01(\x05\x32r\n\x0c\x63omplex_opt4\x12\x1f.google.protobuf.MessageOptions\x18\x8a\xf5\xd1\x03 \x01(\x0b\x32\x38.protobuf_unittest.ComplexOptionType2.ComplexOptionType4*\x08\x08\x64\x10\x80\x80\x80\x80\x02\"\x9c\x01\n\x12\x43omplexOptionType3\x12\x0b\n\x03qux\x18\x01 \x01(\x05\x12T\n\x12\x63omplexoptiontype5\x18\x02 \x01(\n28.protobuf_unittest.ComplexOptionType3.ComplexOptionType5\x1a#\n\x12\x43omplexOptionType5\x12\r\n\x05plugh\x18\x03 \x01(\x05\"\x1f\n\x0b\x43omplexOpt6\x12\x10\n\x05xyzzy\x18\xdf\xbf\xcf\x03 \x01(\x05\"\xf1\x01\n\x15VariousComplexOptions:\xd7\x01\xa2\xe2\x95\x1d\x02\x08*\xa2\xe2\x95\x1d\x06\xd8\x85\x9e\x1d\xc4\x02\xa2\xe2\x95\x1d\x08\x92\xf5\x9d\x1d\x03\x08\xec\x06\xa2\xe2\x95\x1d\x02 c\xa2\xe2\x95\x1d\x02 X\xaa\xfd\x90\x1d\x03\x10\xdb\x07\xaa\xfd\x90\x1d\x06\xf8\xe6\x97\x1d\x8e\x05\xaa\xfd\x90\x1d\x05\n\x03\x08\xe7\x05\xaa\xfd\x90\x1d\x08\n\x06\xd8\x85\x9e\x1d\xcf\x0f\xaa\xfd\x90\x1d\n\n\x08\x92\xf5\x9d\x1d\x03\x08\xd8\x0f\xaa\xfd\x90\x1d\x08\xc2\xac\x97\x1d\x03\x08\xe5\x05\xaa\xfd\x90\x1d\x0b\xc2\xac\x97\x1d\x06\xd8\x85\x9e\x1d\xce\x0f\xaa\xfd\x90\x1d\r\xc2\xac\x97\x1d\x08\x92\xf5\x9d\x1d\x03\x08\xc9\x10\xd2\xa8\x8f\x1d\x03\x08\xb3\x0f\xaa\xfd\x90\x1d\x05\x1a\x03\x08\xc1\x02\xaa\xfd\x90\x1d\x04\"\x02\x08\x65\xaa\xfd\x90\x1d\x05\"\x03\x08\xd4\x01\xfa\xde\x90\x1d\x02\x08\t\xfa\xde\x90\x1d\x04\x13\x18\x16\x14\xe3\xdc\xfc\x1c\xf8\xfd\xfb\x1c\x18\xe4\xdc\xfc\x1c\"#\n\x13\x41ggregateMessageSet*\x08\x08\x04\x10\xff\xff\xff\xff\x07:\x02\x08\x01\"\xa0\x01\n\x1a\x41ggregateMessageSetElement\x12\t\n\x01s\x18\x01 \x01(\t2w\n\x15message_set_extension\x12&.protobuf_unittest.AggregateMessageSet\x18\xf6\xeb\xae\x07 \x01(\x0b\x32-.protobuf_unittest.AggregateMessageSetElement\"\xfd\x01\n\tAggregate\x12\t\n\x01i\x18\x01 \x01(\x05\x12\t\n\x01s\x18\x02 \x01(\t\x12)\n\x03sub\x18\x03 \x01(\x0b\x32\x1c.protobuf_unittest.Aggregate\x12*\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.FileOptions\x12\x34\n\x04mset\x18\x05 \x01(\x0b\x32&.protobuf_unittest.AggregateMessageSet2M\n\x06nested\x12\x1c.google.protobuf.FileOptions\x18\xa7\xd1\xb0\x07 \x01(\x0b\x32\x1c.protobuf_unittest.Aggregate\"Y\n\x10\x41ggregateMessage\x12)\n\tfieldname\x18\x01 \x01(\x05\x42\x16\xf2\xa1\x87;\x11\x12\x0f\x46ieldAnnotation:\x1a\xc2\xd1\x86;\x15\x08\x65\x12\x11MessageAnnotation\"\xc9\x01\n\x10NestedOptionType\x1a;\n\rNestedMessage\x12\"\n\x0cnested_field\x18\x01 \x01(\x05\x42\x0c\xc1\xe0\xc3\x1d\xea\x03\x00\x00\x00\x00\x00\x00:\x06\xe0\xe9\xc2\x1d\xe9\x07\"5\n\nNestedEnum\x12\x1d\n\x11NESTED_ENUM_VALUE\x10\x01\x1a\x06\xb0\x86\xfa\x05\xec\x07\x1a\x08\xc5\xf6\xc9\x1d\xeb\x03\x00\x00\x32\x41\n\x10nested_extension\x12\x1c.google.protobuf.FileOptions\x18\xfd\xf8\xe2\x03 \x01(\x05\x42\x06\xc8\x8b\xca\x1d\xed\x07\"d\n\rOldOptionType\x12\x38\n\x05value\x18\x01 \x02(\x0e\x32).protobuf_unittest.OldOptionType.TestEnum\"\x19\n\x08TestEnum\x12\r\n\tOLD_VALUE\x10\x00\"s\n\rNewOptionType\x12\x38\n\x05value\x18\x01 \x02(\x0e\x32).protobuf_unittest.NewOptionType.TestEnum\"(\n\x08TestEnum\x12\r\n\tOLD_VALUE\x10\x00\x12\r\n\tNEW_VALUE\x10\x01\"-\n!TestMessageWithRequiredEnumOption:\x08\xfa\xe8\xfc\x94\x03\x02\x08\x00*6\n\nMethodOpt1\x12\x13\n\x0fMETHODOPT1_VAL1\x10\x01\x12\x13\n\x0fMETHODOPT1_VAL2\x10\x02*M\n\rAggregateEnum\x12%\n\x05VALUE\x10\x01\x1a\x1a\xca\xfc\x89;\x15\x12\x13\x45numValueAnnotation\x1a\x15\x92\x95\x88;\x10\x12\x0e\x45numAnnotation2\x8e\x01\n\x1cTestServiceWithCustomOptions\x12\x63\n\x03\x46oo\x12).protobuf_unittest.CustomOptionFooRequest\x1a*.protobuf_unittest.CustomOptionFooResponse\"\x05\xe0\xfa\x8c\x1e\x02\x1a\t\x90\xb2\x8b\x1e\xd3\xdb\x80\xcbI2\x99\x01\n\x10\x41ggregateService\x12k\n\x06Method\x12#.protobuf_unittest.AggregateMessage\x1a#.protobuf_unittest.AggregateMessage\"\x17\xca\xc8\x96;\x12\x12\x10MethodAnnotation\x1a\x18\xca\xfb\x8e;\x13\x12\x11ServiceAnnotation:2\n\tfile_opt1\x12\x1c.google.protobuf.FileOptions\x18\x8e\x9d\xd8\x03 \x01(\x04:8\n\x0cmessage_opt1\x12\x1f.google.protobuf.MessageOptions\x18\x9c\xad\xd8\x03 \x01(\x05:4\n\nfield_opt1\x12\x1d.google.protobuf.FieldOptions\x18\x88\xbc\xd8\x03 \x01(\x06:8\n\nfield_opt2\x12\x1d.google.protobuf.FieldOptions\x18\xb9\xa1\xd9\x03 \x01(\x05:\x02\x34\x32:4\n\noneof_opt1\x12\x1d.google.protobuf.OneofOptions\x18\xcf\xb5\xd8\x03 \x01(\x05:2\n\tenum_opt1\x12\x1c.google.protobuf.EnumOptions\x18\xe8\x9e\xd9\x03 \x01(\x0f:<\n\x0f\x65num_value_opt1\x12!.google.protobuf.EnumValueOptions\x18\xe6\xa0_ \x01(\x05:8\n\x0cservice_opt1\x12\x1f.google.protobuf.ServiceOptions\x18\xa2\xb6\xe1\x03 \x01(\x12:U\n\x0bmethod_opt1\x12\x1e.google.protobuf.MethodOptions\x18\xac\xcf\xe1\x03 \x01(\x0e\x32\x1d.protobuf_unittest.MethodOpt1:4\n\x08\x62ool_opt\x12\x1f.google.protobuf.MessageOptions\x18\xea\xab\xd6\x03 \x01(\x08:5\n\tint32_opt\x12\x1f.google.protobuf.MessageOptions\x18\xed\xa8\xd6\x03 \x01(\x05:5\n\tint64_opt\x12\x1f.google.protobuf.MessageOptions\x18\xc6\xa7\xd6\x03 \x01(\x03:6\n\nuint32_opt\x12\x1f.google.protobuf.MessageOptions\x18\xb0\xa2\xd6\x03 \x01(\r:6\n\nuint64_opt\x12\x1f.google.protobuf.MessageOptions\x18\xdf\x8e\xd6\x03 \x01(\x04:6\n\nsint32_opt\x12\x1f.google.protobuf.MessageOptions\x18\xc0\x88\xd6\x03 \x01(\x11:6\n\nsint64_opt\x12\x1f.google.protobuf.MessageOptions\x18\xff\x82\xd6\x03 \x01(\x12:7\n\x0b\x66ixed32_opt\x12\x1f.google.protobuf.MessageOptions\x18\xd3\xfe\xd5\x03 \x01(\x07:7\n\x0b\x66ixed64_opt\x12\x1f.google.protobuf.MessageOptions\x18\xe2\xfd\xd5\x03 \x01(\x06:8\n\x0csfixed32_opt\x12\x1f.google.protobuf.MessageOptions\x18\xd5\xf1\xd5\x03 \x01(\x0f:8\n\x0csfixed64_opt\x12\x1f.google.protobuf.MessageOptions\x18\xe3\x8a\xd5\x03 \x01(\x10:5\n\tfloat_opt\x12\x1f.google.protobuf.MessageOptions\x18\xfe\xbb\xd4\x03 \x01(\x02:6\n\ndouble_opt\x12\x1f.google.protobuf.MessageOptions\x18\xcd\xab\xd4\x03 \x01(\x01:6\n\nstring_opt\x12\x1f.google.protobuf.MessageOptions\x18\xc5\xab\xd4\x03 \x01(\t:5\n\tbytes_opt\x12\x1f.google.protobuf.MessageOptions\x18\x96\xab\xd4\x03 \x01(\x0c:p\n\x08\x65num_opt\x12\x1f.google.protobuf.MessageOptions\x18\x91\xab\xd4\x03 \x01(\x0e\x32:.protobuf_unittest.DummyMessageContainingEnum.TestEnumType:p\n\x10message_type_opt\x12\x1f.google.protobuf.MessageOptions\x18\xaf\xf2\xd3\x03 \x01(\x0b\x32\x32.protobuf_unittest.DummyMessageInvalidAsOptionType:6\n\x04quux\x12%.protobuf_unittest.ComplexOptionType1\x18\xdb\xe0\xd3\x03 \x01(\x05:^\n\x05\x63orge\x12%.protobuf_unittest.ComplexOptionType1\x18\xd2\xde\xd3\x03 \x01(\x0b\x32%.protobuf_unittest.ComplexOptionType3:8\n\x06grault\x12%.protobuf_unittest.ComplexOptionType2\x18\xef\xfc\xd2\x03 \x01(\x05:_\n\x06garply\x12%.protobuf_unittest.ComplexOptionType2\x18\xc8\xf5\xd2\x03 \x01(\x0b\x32%.protobuf_unittest.ComplexOptionType1:_\n\x0c\x63omplex_opt1\x12\x1f.google.protobuf.MessageOptions\x18\xa4\xdc\xd2\x03 \x01(\x0b\x32%.protobuf_unittest.ComplexOptionType1:_\n\x0c\x63omplex_opt2\x12\x1f.google.protobuf.MessageOptions\x18\xd5\x8f\xd2\x03 \x01(\x0b\x32%.protobuf_unittest.ComplexOptionType2:_\n\x0c\x63omplex_opt3\x12\x1f.google.protobuf.MessageOptions\x18\xef\x8b\xd2\x03 \x01(\x0b\x32%.protobuf_unittest.ComplexOptionType3:W\n\x0b\x63omplexopt6\x12\x1f.google.protobuf.MessageOptions\x18\xcc\xcb\xcf\x03 \x01(\n2\x1e.protobuf_unittest.ComplexOpt6:N\n\x07\x66ileopt\x12\x1c.google.protobuf.FileOptions\x18\xcf\xdd\xb0\x07 \x01(\x0b\x32\x1c.protobuf_unittest.Aggregate:P\n\x06msgopt\x12\x1f.google.protobuf.MessageOptions\x18\x98\xea\xb0\x07 \x01(\x0b\x32\x1c.protobuf_unittest.Aggregate:P\n\x08\x66ieldopt\x12\x1d.google.protobuf.FieldOptions\x18\x9e\xf4\xb0\x07 \x01(\x0b\x32\x1c.protobuf_unittest.Aggregate:N\n\x07\x65numopt\x12\x1c.google.protobuf.EnumOptions\x18\xd2\x82\xb1\x07 \x01(\x0b\x32\x1c.protobuf_unittest.Aggregate:V\n\nenumvalopt\x12!.google.protobuf.EnumValueOptions\x18\xc9\x9f\xb1\x07 \x01(\x0b\x32\x1c.protobuf_unittest.Aggregate:T\n\nserviceopt\x12\x1f.google.protobuf.ServiceOptions\x18\xb9\xef\xb1\x07 \x01(\x0b\x32\x1c.protobuf_unittest.Aggregate:R\n\tmethodopt\x12\x1e.google.protobuf.MethodOptions\x18\x89\xe9\xb2\x07 \x01(\x0b\x32\x1c.protobuf_unittest.Aggregate:_\n\x11required_enum_opt\x12\x1f.google.protobuf.MessageOptions\x18\x8f\xcd\xcf\x32 \x01(\x0b\x32 .protobuf_unittest.OldOptionTypeB\x87\x01\x80\x01\x01\x88\x01\x01\x90\x01\x01\xf0\xe8\xc1\x1d\xea\xad\xc0\xe5$\xfa\xec\x85;p\x08\x64\x12\x0e\x46ileAnnotation\x1a\x16\x12\x14NestedFileAnnotation\"\x1e\xfa\xec\x85;\x19\x12\x17\x46ileExtensionAnnotation*$\x0b\x10\xf6\xeb\xae\x07\x1a\x1b\n\x19\x45mbeddedMessageSetElement\x0c')
  ,
  dependencies=[google_dot_protobuf_dot_descriptor__pb2.DESCRIPTOR,])

_METHODOPT1 = _descriptor.EnumDescriptor(
  name='MethodOpt1',
  full_name='protobuf_unittest.MethodOpt1',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='METHODOPT1_VAL1', index=0, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='METHODOPT1_VAL2', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3006,
  serialized_end=3060,
)
_sym_db.RegisterEnumDescriptor(_METHODOPT1)

MethodOpt1 = enum_type_wrapper.EnumTypeWrapper(_METHODOPT1)
_AGGREGATEENUM = _descriptor.EnumDescriptor(
  name='AggregateEnum',
  full_name='protobuf_unittest.AggregateEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='VALUE', index=0, number=1,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\312\374\211;\025\022\023EnumValueAnnotation')),
      type=None),
  ],
  containing_type=None,
  options=_descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\222\225\210;\020\022\016EnumAnnotation')),
  serialized_start=3062,
  serialized_end=3139,
)
_sym_db.RegisterEnumDescriptor(_AGGREGATEENUM)

AggregateEnum = enum_type_wrapper.EnumTypeWrapper(_AGGREGATEENUM)
METHODOPT1_VAL1 = 1
METHODOPT1_VAL2 = 2
VALUE = 1

FILE_OPT1_FIELD_NUMBER = 7736974
file_opt1 = _descriptor.FieldDescriptor(
  name='file_opt1', full_name='protobuf_unittest.file_opt1', index=0,
  number=7736974, type=4, cpp_type=4, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
MESSAGE_OPT1_FIELD_NUMBER = 7739036
message_opt1 = _descriptor.FieldDescriptor(
  name='message_opt1', full_name='protobuf_unittest.message_opt1', index=1,
  number=7739036, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
FIELD_OPT1_FIELD_NUMBER = 7740936
field_opt1 = _descriptor.FieldDescriptor(
  name='field_opt1', full_name='protobuf_unittest.field_opt1', index=2,
  number=7740936, type=6, cpp_type=4, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
FIELD_OPT2_FIELD_NUMBER = 7753913
field_opt2 = _descriptor.FieldDescriptor(
  name='field_opt2', full_name='protobuf_unittest.field_opt2', index=3,
  number=7753913, type=5, cpp_type=1, label=1,
  has_default_value=True, default_value=42,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
ONEOF_OPT1_FIELD_NUMBER = 7740111
oneof_opt1 = _descriptor.FieldDescriptor(
  name='oneof_opt1', full_name='protobuf_unittest.oneof_opt1', index=4,
  number=7740111, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
ENUM_OPT1_FIELD_NUMBER = 7753576
enum_opt1 = _descriptor.FieldDescriptor(
  name='enum_opt1', full_name='protobuf_unittest.enum_opt1', index=5,
  number=7753576, type=15, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
ENUM_VALUE_OPT1_FIELD_NUMBER = 1560678
enum_value_opt1 = _descriptor.FieldDescriptor(
  name='enum_value_opt1', full_name='protobuf_unittest.enum_value_opt1', index=6,
  number=1560678, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
SERVICE_OPT1_FIELD_NUMBER = 7887650
service_opt1 = _descriptor.FieldDescriptor(
  name='service_opt1', full_name='protobuf_unittest.service_opt1', index=7,
  number=7887650, type=18, cpp_type=2, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
METHOD_OPT1_FIELD_NUMBER = 7890860
method_opt1 = _descriptor.FieldDescriptor(
  name='method_opt1', full_name='protobuf_unittest.method_opt1', index=8,
  number=7890860, type=14, cpp_type=8, label=1,
  has_default_value=False, default_value=1,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
BOOL_OPT_FIELD_NUMBER = 7706090
bool_opt = _descriptor.FieldDescriptor(
  name='bool_opt', full_name='protobuf_unittest.bool_opt', index=9,
  number=7706090, type=8, cpp_type=7, label=1,
  has_default_value=False, default_value=False,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
INT32_OPT_FIELD_NUMBER = 7705709
int32_opt = _descriptor.FieldDescriptor(
  name='int32_opt', full_name='protobuf_unittest.int32_opt', index=10,
  number=7705709, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
INT64_OPT_FIELD_NUMBER = 7705542
int64_opt = _descriptor.FieldDescriptor(
  name='int64_opt', full_name='protobuf_unittest.int64_opt', index=11,
  number=7705542, type=3, cpp_type=2, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
UINT32_OPT_FIELD_NUMBER = 7704880
uint32_opt = _descriptor.FieldDescriptor(
  name='uint32_opt', full_name='protobuf_unittest.uint32_opt', index=12,
  number=7704880, type=13, cpp_type=3, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
UINT64_OPT_FIELD_NUMBER = 7702367
uint64_opt = _descriptor.FieldDescriptor(
  name='uint64_opt', full_name='protobuf_unittest.uint64_opt', index=13,
  number=7702367, type=4, cpp_type=4, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
SINT32_OPT_FIELD_NUMBER = 7701568
sint32_opt = _descriptor.FieldDescriptor(
  name='sint32_opt', full_name='protobuf_unittest.sint32_opt', index=14,
  number=7701568, type=17, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
SINT64_OPT_FIELD_NUMBER = 7700863
sint64_opt = _descriptor.FieldDescriptor(
  name='sint64_opt', full_name='protobuf_unittest.sint64_opt', index=15,
  number=7700863, type=18, cpp_type=2, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
FIXED32_OPT_FIELD_NUMBER = 7700307
fixed32_opt = _descriptor.FieldDescriptor(
  name='fixed32_opt', full_name='protobuf_unittest.fixed32_opt', index=16,
  number=7700307, type=7, cpp_type=3, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
FIXED64_OPT_FIELD_NUMBER = 7700194
fixed64_opt = _descriptor.FieldDescriptor(
  name='fixed64_opt', full_name='protobuf_unittest.fixed64_opt', index=17,
  number=7700194, type=6, cpp_type=4, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
SFIXED32_OPT_FIELD_NUMBER = 7698645
sfixed32_opt = _descriptor.FieldDescriptor(
  name='sfixed32_opt', full_name='protobuf_unittest.sfixed32_opt', index=18,
  number=7698645, type=15, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
SFIXED64_OPT_FIELD_NUMBER = 7685475
sfixed64_opt = _descriptor.FieldDescriptor(
  name='sfixed64_opt', full_name='protobuf_unittest.sfixed64_opt', index=19,
  number=7685475, type=16, cpp_type=2, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
FLOAT_OPT_FIELD_NUMBER = 7675390
float_opt = _descriptor.FieldDescriptor(
  name='float_opt', full_name='protobuf_unittest.float_opt', index=20,
  number=7675390, type=2, cpp_type=6, label=1,
  has_default_value=False, default_value=float(0),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DOUBLE_OPT_FIELD_NUMBER = 7673293
double_opt = _descriptor.FieldDescriptor(
  name='double_opt', full_name='protobuf_unittest.double_opt', index=21,
  number=7673293, type=1, cpp_type=5, label=1,
  has_default_value=False, default_value=float(0),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
STRING_OPT_FIELD_NUMBER = 7673285
string_opt = _descriptor.FieldDescriptor(
  name='string_opt', full_name='protobuf_unittest.string_opt', index=22,
  number=7673285, type=9, cpp_type=9, label=1,
  has_default_value=False, default_value=_b("").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
BYTES_OPT_FIELD_NUMBER = 7673238
bytes_opt = _descriptor.FieldDescriptor(
  name='bytes_opt', full_name='protobuf_unittest.bytes_opt', index=23,
  number=7673238, type=12, cpp_type=9, label=1,
  has_default_value=False, default_value=_b(""),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
ENUM_OPT_FIELD_NUMBER = 7673233
enum_opt = _descriptor.FieldDescriptor(
  name='enum_opt', full_name='protobuf_unittest.enum_opt', index=24,
  number=7673233, type=14, cpp_type=8, label=1,
  has_default_value=False, default_value=22,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
MESSAGE_TYPE_OPT_FIELD_NUMBER = 7665967
message_type_opt = _descriptor.FieldDescriptor(
  name='message_type_opt', full_name='protobuf_unittest.message_type_opt', index=25,
  number=7665967, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
QUUX_FIELD_NUMBER = 7663707
quux = _descriptor.FieldDescriptor(
  name='quux', full_name='protobuf_unittest.quux', index=26,
  number=7663707, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
CORGE_FIELD_NUMBER = 7663442
corge = _descriptor.FieldDescriptor(
  name='corge', full_name='protobuf_unittest.corge', index=27,
  number=7663442, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
GRAULT_FIELD_NUMBER = 7650927
grault = _descriptor.FieldDescriptor(
  name='grault', full_name='protobuf_unittest.grault', index=28,
  number=7650927, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
GARPLY_FIELD_NUMBER = 7649992
garply = _descriptor.FieldDescriptor(
  name='garply', full_name='protobuf_unittest.garply', index=29,
  number=7649992, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
COMPLEX_OPT1_FIELD_NUMBER = 7646756
complex_opt1 = _descriptor.FieldDescriptor(
  name='complex_opt1', full_name='protobuf_unittest.complex_opt1', index=30,
  number=7646756, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
COMPLEX_OPT2_FIELD_NUMBER = 7636949
complex_opt2 = _descriptor.FieldDescriptor(
  name='complex_opt2', full_name='protobuf_unittest.complex_opt2', index=31,
  number=7636949, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
COMPLEX_OPT3_FIELD_NUMBER = 7636463
complex_opt3 = _descriptor.FieldDescriptor(
  name='complex_opt3', full_name='protobuf_unittest.complex_opt3', index=32,
  number=7636463, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
COMPLEXOPT6_FIELD_NUMBER = 7595468
complexopt6 = _descriptor.FieldDescriptor(
  name='complexopt6', full_name='protobuf_unittest.complexopt6', index=33,
  number=7595468, type=10, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
FILEOPT_FIELD_NUMBER = 15478479
fileopt = _descriptor.FieldDescriptor(
  name='fileopt', full_name='protobuf_unittest.fileopt', index=34,
  number=15478479, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
MSGOPT_FIELD_NUMBER = 15480088
msgopt = _descriptor.FieldDescriptor(
  name='msgopt', full_name='protobuf_unittest.msgopt', index=35,
  number=15480088, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
FIELDOPT_FIELD_NUMBER = 15481374
fieldopt = _descriptor.FieldDescriptor(
  name='fieldopt', full_name='protobuf_unittest.fieldopt', index=36,
  number=15481374, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
ENUMOPT_FIELD_NUMBER = 15483218
enumopt = _descriptor.FieldDescriptor(
  name='enumopt', full_name='protobuf_unittest.enumopt', index=37,
  number=15483218, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
ENUMVALOPT_FIELD_NUMBER = 15486921
enumvalopt = _descriptor.FieldDescriptor(
  name='enumvalopt', full_name='protobuf_unittest.enumvalopt', index=38,
  number=15486921, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
SERVICEOPT_FIELD_NUMBER = 15497145
serviceopt = _descriptor.FieldDescriptor(
  name='serviceopt', full_name='protobuf_unittest.serviceopt', index=39,
  number=15497145, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
METHODOPT_FIELD_NUMBER = 15512713
methodopt = _descriptor.FieldDescriptor(
  name='methodopt', full_name='protobuf_unittest.methodopt', index=40,
  number=15512713, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REQUIRED_ENUM_OPT_FIELD_NUMBER = 106161807
required_enum_opt = _descriptor.FieldDescriptor(
  name='required_enum_opt', full_name='protobuf_unittest.required_enum_opt', index=41,
  number=106161807, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)

_TESTMESSAGEWITHCUSTOMOPTIONS_ANENUM = _descriptor.EnumDescriptor(
  name='AnEnum',
  full_name='protobuf_unittest.TestMessageWithCustomOptions.AnEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ANENUM_VAL1', index=0, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ANENUM_VAL2', index=1, number=2,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\260\206\372\005{')),
      type=None),
  ],
  containing_type=None,
  options=_descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\305\366\311\035\353\374\377\377')),
  serialized_start=190,
  serialized_end=249,
)
_sym_db.RegisterEnumDescriptor(_TESTMESSAGEWITHCUSTOMOPTIONS_ANENUM)

_DUMMYMESSAGECONTAININGENUM_TESTENUMTYPE = _descriptor.EnumDescriptor(
  name='TestEnumType',
  full_name='protobuf_unittest.DummyMessageContainingEnum.TestEnumType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='TEST_OPTION_ENUM_TYPE1', index=0, number=22,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TEST_OPTION_ENUM_TYPE2', index=1, number=-23,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=443,
  serialized_end=522,
)
_sym_db.RegisterEnumDescriptor(_DUMMYMESSAGECONTAININGENUM_TESTENUMTYPE)

_NESTEDOPTIONTYPE_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='protobuf_unittest.NestedOptionType.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='NESTED_ENUM_VALUE', index=0, number=1,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\260\206\372\005\354\007')),
      type=None),
  ],
  containing_type=None,
  options=_descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\305\366\311\035\353\003\000\000')),
  serialized_start=2618,
  serialized_end=2671,
)
_sym_db.RegisterEnumDescriptor(_NESTEDOPTIONTYPE_NESTEDENUM)

_OLDOPTIONTYPE_TESTENUM = _descriptor.EnumDescriptor(
  name='TestEnum',
  full_name='protobuf_unittest.OldOptionType.TestEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='OLD_VALUE', index=0, number=0,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2815,
  serialized_end=2840,
)
_sym_db.RegisterEnumDescriptor(_OLDOPTIONTYPE_TESTENUM)

_NEWOPTIONTYPE_TESTENUM = _descriptor.EnumDescriptor(
  name='TestEnum',
  full_name='protobuf_unittest.NewOptionType.TestEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='OLD_VALUE', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NEW_VALUE', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2917,
  serialized_end=2957,
)
_sym_db.RegisterEnumDescriptor(_NEWOPTIONTYPE_TESTENUM)


_TESTMESSAGEWITHCUSTOMOPTIONS = _descriptor.Descriptor(
  name='TestMessageWithCustomOptions',
  full_name='protobuf_unittest.TestMessageWithCustomOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='field1', full_name='protobuf_unittest.TestMessageWithCustomOptions.field1', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001\301\340\303\035-\341u\n\002\000\000\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_field', full_name='protobuf_unittest.TestMessageWithCustomOptions.oneof_field', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _TESTMESSAGEWITHCUSTOMOPTIONS_ANENUM,
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\010\000\340\351\302\035\310\377\377\377\377\377\377\377\377\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='AnOneof', full_name='protobuf_unittest.TestMessageWithCustomOptions.AnOneof',
      index=0, containing_type=None, fields=[], options=_descriptor._ParseOptions(descriptor_pb2.OneofOptions(), _b('\370\254\303\035\235\377\377\377\377\377\377\377\377\001'))),
  ],
  serialized_start=103,
  serialized_end=294,
)


_CUSTOMOPTIONFOOREQUEST = _descriptor.Descriptor(
  name='CustomOptionFooRequest',
  full_name='protobuf_unittest.CustomOptionFooRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=296,
  serialized_end=320,
)


_CUSTOMOPTIONFOORESPONSE = _descriptor.Descriptor(
  name='CustomOptionFooResponse',
  full_name='protobuf_unittest.CustomOptionFooResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=322,
  serialized_end=347,
)


_CUSTOMOPTIONFOOCLIENTMESSAGE = _descriptor.Descriptor(
  name='CustomOptionFooClientMessage',
  full_name='protobuf_unittest.CustomOptionFooClientMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=349,
  serialized_end=379,
)


_CUSTOMOPTIONFOOSERVERMESSAGE = _descriptor.Descriptor(
  name='CustomOptionFooServerMessage',
  full_name='protobuf_unittest.CustomOptionFooServerMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=381,
  serialized_end=411,
)


_DUMMYMESSAGECONTAININGENUM = _descriptor.Descriptor(
  name='DummyMessageContainingEnum',
  full_name='protobuf_unittest.DummyMessageContainingEnum',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _DUMMYMESSAGECONTAININGENUM_TESTENUMTYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=413,
  serialized_end=522,
)


_DUMMYMESSAGEINVALIDASOPTIONTYPE = _descriptor.Descriptor(
  name='DummyMessageInvalidAsOptionType',
  full_name='protobuf_unittest.DummyMessageInvalidAsOptionType',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=524,
  serialized_end=557,
)


_CUSTOMOPTIONMININTEGERVALUES = _descriptor.Descriptor(
  name='CustomOptionMinIntegerValues',
  full_name='protobuf_unittest.CustomOptionMinIntegerValues',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\320\336\262\035\000\350\306\262\035\200\200\200\200\370\377\377\377\377\001\260\274\262\035\200\200\200\200\200\200\200\200\200\001\200\223\262\035\000\370\365\260\035\000\200\304\260\035\377\377\377\377\017\370\227\260\035\377\377\377\377\377\377\377\377\377\001\235\365\257\035\000\000\000\000\221\356\257\035\000\000\000\000\000\000\000\000\255\215\257\035\000\000\000\200\231\326\250\035\000\000\000\000\000\000\000\200')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=560,
  serialized_end=698,
)


_CUSTOMOPTIONMAXINTEGERVALUES = _descriptor.Descriptor(
  name='CustomOptionMaxIntegerValues',
  full_name='protobuf_unittest.CustomOptionMaxIntegerValues',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\320\336\262\035\001\350\306\262\035\377\377\377\377\007\260\274\262\035\377\377\377\377\377\377\377\377\177\200\223\262\035\377\377\377\377\017\370\365\260\035\377\377\377\377\377\377\377\377\377\001\200\304\260\035\376\377\377\377\017\370\227\260\035\376\377\377\377\377\377\377\377\377\001\235\365\257\035\377\377\377\377\221\356\257\035\377\377\377\377\377\377\377\377\255\215\257\035\377\377\377\177\231\326\250\035\377\377\377\377\377\377\377\177')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=701,
  serialized_end=846,
)


_CUSTOMOPTIONOTHERVALUES = _descriptor.Descriptor(
  name='CustomOptionOtherValues',
  full_name='protobuf_unittest.CustomOptionOtherValues',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\350\306\262\035\234\377\377\377\377\377\377\377\377\001\365\337\243\035\347\207EA\351\334\242\035\373Y\214B\312\300\363?\252\334\242\035\016Hello, \"World\"\262\331\242\035\013Hello\000World\210\331\242\035\351\377\377\377\377\377\377\377\377\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=848,
  serialized_end=958,
)


_SETTINGREALSFROMPOSITIVEINTS = _descriptor.Descriptor(
  name='SettingRealsFromPositiveInts',
  full_name='protobuf_unittest.SettingRealsFromPositiveInts',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\365\337\243\035\000\000@A\351\334\242\035\000\000\000\000\000@c@')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=960,
  serialized_end=1012,
)


_SETTINGREALSFROMNEGATIVEINTS = _descriptor.Descriptor(
  name='SettingRealsFromNegativeInts',
  full_name='protobuf_unittest.SettingRealsFromNegativeInts',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\365\337\243\035\000\000@\301\351\334\242\035\000\000\000\000\000@c\300')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1014,
  serialized_end=1066,
)


_COMPLEXOPTIONTYPE1 = _descriptor.Descriptor(
  name='ComplexOptionType1',
  full_name='protobuf_unittest.ComplexOptionType1',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='foo', full_name='protobuf_unittest.ComplexOptionType1.foo', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo2', full_name='protobuf_unittest.ComplexOptionType1.foo2', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo3', full_name='protobuf_unittest.ComplexOptionType1.foo3', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo4', full_name='protobuf_unittest.ComplexOptionType1.foo4', index=3,
      number=4, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(100, 536870912), ],
  oneofs=[
  ],
  serialized_start=1068,
  serialized_end=1153,
)


_COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4 = _descriptor.Descriptor(
  name='ComplexOptionType4',
  full_name='protobuf_unittest.ComplexOptionType2.ComplexOptionType4',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='waldo', full_name='protobuf_unittest.ComplexOptionType2.ComplexOptionType4.waldo', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='complex_opt4', full_name='protobuf_unittest.ComplexOptionType2.ComplexOptionType4.complex_opt4', index=0,
      number=7633546, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1390,
  serialized_end=1541,
)

_COMPLEXOPTIONTYPE2 = _descriptor.Descriptor(
  name='ComplexOptionType2',
  full_name='protobuf_unittest.ComplexOptionType2',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bar', full_name='protobuf_unittest.ComplexOptionType2.bar', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='baz', full_name='protobuf_unittest.ComplexOptionType2.baz', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='fred', full_name='protobuf_unittest.ComplexOptionType2.fred', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='barney', full_name='protobuf_unittest.ComplexOptionType2.barney', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4, ],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(100, 536870912), ],
  oneofs=[
  ],
  serialized_start=1156,
  serialized_end=1551,
)


_COMPLEXOPTIONTYPE3_COMPLEXOPTIONTYPE5 = _descriptor.Descriptor(
  name='ComplexOptionType5',
  full_name='protobuf_unittest.ComplexOptionType3.ComplexOptionType5',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='plugh', full_name='protobuf_unittest.ComplexOptionType3.ComplexOptionType5.plugh', index=0,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1675,
  serialized_end=1710,
)

_COMPLEXOPTIONTYPE3 = _descriptor.Descriptor(
  name='ComplexOptionType3',
  full_name='protobuf_unittest.ComplexOptionType3',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='qux', full_name='protobuf_unittest.ComplexOptionType3.qux', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='complexoptiontype5', full_name='protobuf_unittest.ComplexOptionType3.complexoptiontype5', index=1,
      number=2, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_COMPLEXOPTIONTYPE3_COMPLEXOPTIONTYPE5, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1554,
  serialized_end=1710,
)


_COMPLEXOPT6 = _descriptor.Descriptor(
  name='ComplexOpt6',
  full_name='protobuf_unittest.ComplexOpt6',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='xyzzy', full_name='protobuf_unittest.ComplexOpt6.xyzzy', index=0,
      number=7593951, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1712,
  serialized_end=1743,
)


_VARIOUSCOMPLEXOPTIONS = _descriptor.Descriptor(
  name='VariousComplexOptions',
  full_name='protobuf_unittest.VariousComplexOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\242\342\225\035\002\010*\242\342\225\035\006\330\205\236\035\304\002\242\342\225\035\010\222\365\235\035\003\010\354\006\242\342\225\035\002 c\242\342\225\035\002 X\252\375\220\035\003\020\333\007\252\375\220\035\006\370\346\227\035\216\005\252\375\220\035\005\n\003\010\347\005\252\375\220\035\010\n\006\330\205\236\035\317\017\252\375\220\035\n\n\010\222\365\235\035\003\010\330\017\252\375\220\035\010\302\254\227\035\003\010\345\005\252\375\220\035\013\302\254\227\035\006\330\205\236\035\316\017\252\375\220\035\r\302\254\227\035\010\222\365\235\035\003\010\311\020\322\250\217\035\003\010\263\017\252\375\220\035\005\032\003\010\301\002\252\375\220\035\004\"\002\010e\252\375\220\035\005\"\003\010\324\001\372\336\220\035\002\010\t\372\336\220\035\004\023\030\026\024\343\334\374\034\370\375\373\034\030\344\334\374\034')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1746,
  serialized_end=1987,
)


_AGGREGATEMESSAGESET = _descriptor.Descriptor(
  name='AggregateMessageSet',
  full_name='protobuf_unittest.AggregateMessageSet',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\010\001')),
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(4, 2147483647), ],
  oneofs=[
  ],
  serialized_start=1989,
  serialized_end=2024,
)


_AGGREGATEMESSAGESETELEMENT = _descriptor.Descriptor(
  name='AggregateMessageSetElement',
  full_name='protobuf_unittest.AggregateMessageSetElement',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='s', full_name='protobuf_unittest.AggregateMessageSetElement.s', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='message_set_extension', full_name='protobuf_unittest.AggregateMessageSetElement.message_set_extension', index=0,
      number=15447542, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2027,
  serialized_end=2187,
)


_AGGREGATE = _descriptor.Descriptor(
  name='Aggregate',
  full_name='protobuf_unittest.Aggregate',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='i', full_name='protobuf_unittest.Aggregate.i', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='s', full_name='protobuf_unittest.Aggregate.s', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sub', full_name='protobuf_unittest.Aggregate.sub', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='file', full_name='protobuf_unittest.Aggregate.file', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='mset', full_name='protobuf_unittest.Aggregate.mset', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='nested', full_name='protobuf_unittest.Aggregate.nested', index=0,
      number=15476903, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2190,
  serialized_end=2443,
)


_AGGREGATEMESSAGE = _descriptor.Descriptor(
  name='AggregateMessage',
  full_name='protobuf_unittest.AggregateMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='fieldname', full_name='protobuf_unittest.AggregateMessage.fieldname', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\362\241\207;\021\022\017FieldAnnotation')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\302\321\206;\025\010e\022\021MessageAnnotation')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2445,
  serialized_end=2534,
)


_NESTEDOPTIONTYPE_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='protobuf_unittest.NestedOptionType.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nested_field', full_name='protobuf_unittest.NestedOptionType.NestedMessage.nested_field', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\301\340\303\035\352\003\000\000\000\000\000\000')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\340\351\302\035\351\007')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2557,
  serialized_end=2616,
)

_NESTEDOPTIONTYPE = _descriptor.Descriptor(
  name='NestedOptionType',
  full_name='protobuf_unittest.NestedOptionType',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='nested_extension', full_name='protobuf_unittest.NestedOptionType.nested_extension', index=0,
      number=7912573, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\213\312\035\355\007')), file=DESCRIPTOR),
  ],
  nested_types=[_NESTEDOPTIONTYPE_NESTEDMESSAGE, ],
  enum_types=[
    _NESTEDOPTIONTYPE_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2537,
  serialized_end=2738,
)


_OLDOPTIONTYPE = _descriptor.Descriptor(
  name='OldOptionType',
  full_name='protobuf_unittest.OldOptionType',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.OldOptionType.value', index=0,
      number=1, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _OLDOPTIONTYPE_TESTENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2740,
  serialized_end=2840,
)


_NEWOPTIONTYPE = _descriptor.Descriptor(
  name='NewOptionType',
  full_name='protobuf_unittest.NewOptionType',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.NewOptionType.value', index=0,
      number=1, type=14, cpp_type=8, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _NEWOPTIONTYPE_TESTENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2842,
  serialized_end=2957,
)


_TESTMESSAGEWITHREQUIREDENUMOPTION = _descriptor.Descriptor(
  name='TestMessageWithRequiredEnumOption',
  full_name='protobuf_unittest.TestMessageWithRequiredEnumOption',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\372\350\374\224\003\002\010\000')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2959,
  serialized_end=3004,
)

_TESTMESSAGEWITHCUSTOMOPTIONS_ANENUM.containing_type = _TESTMESSAGEWITHCUSTOMOPTIONS
_TESTMESSAGEWITHCUSTOMOPTIONS.oneofs_by_name['AnOneof'].fields.append(
  _TESTMESSAGEWITHCUSTOMOPTIONS.fields_by_name['oneof_field'])
_TESTMESSAGEWITHCUSTOMOPTIONS.fields_by_name['oneof_field'].containing_oneof = _TESTMESSAGEWITHCUSTOMOPTIONS.oneofs_by_name['AnOneof']
_DUMMYMESSAGECONTAININGENUM_TESTENUMTYPE.containing_type = _DUMMYMESSAGECONTAININGENUM
_COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4.containing_type = _COMPLEXOPTIONTYPE2
_COMPLEXOPTIONTYPE2.fields_by_name['bar'].message_type = _COMPLEXOPTIONTYPE1
_COMPLEXOPTIONTYPE2.fields_by_name['fred'].message_type = _COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4
_COMPLEXOPTIONTYPE2.fields_by_name['barney'].message_type = _COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4
_COMPLEXOPTIONTYPE3_COMPLEXOPTIONTYPE5.containing_type = _COMPLEXOPTIONTYPE3
_COMPLEXOPTIONTYPE3.fields_by_name['complexoptiontype5'].message_type = _COMPLEXOPTIONTYPE3_COMPLEXOPTIONTYPE5
_AGGREGATE.fields_by_name['sub'].message_type = _AGGREGATE
_AGGREGATE.fields_by_name['file'].message_type = google_dot_protobuf_dot_descriptor__pb2._FILEOPTIONS
_AGGREGATE.fields_by_name['mset'].message_type = _AGGREGATEMESSAGESET
_NESTEDOPTIONTYPE_NESTEDMESSAGE.containing_type = _NESTEDOPTIONTYPE
_NESTEDOPTIONTYPE_NESTEDENUM.containing_type = _NESTEDOPTIONTYPE
_OLDOPTIONTYPE.fields_by_name['value'].enum_type = _OLDOPTIONTYPE_TESTENUM
_OLDOPTIONTYPE_TESTENUM.containing_type = _OLDOPTIONTYPE
_NEWOPTIONTYPE.fields_by_name['value'].enum_type = _NEWOPTIONTYPE_TESTENUM
_NEWOPTIONTYPE_TESTENUM.containing_type = _NEWOPTIONTYPE
DESCRIPTOR.message_types_by_name['TestMessageWithCustomOptions'] = _TESTMESSAGEWITHCUSTOMOPTIONS
DESCRIPTOR.message_types_by_name['CustomOptionFooRequest'] = _CUSTOMOPTIONFOOREQUEST
DESCRIPTOR.message_types_by_name['CustomOptionFooResponse'] = _CUSTOMOPTIONFOORESPONSE
DESCRIPTOR.message_types_by_name['CustomOptionFooClientMessage'] = _CUSTOMOPTIONFOOCLIENTMESSAGE
DESCRIPTOR.message_types_by_name['CustomOptionFooServerMessage'] = _CUSTOMOPTIONFOOSERVERMESSAGE
DESCRIPTOR.message_types_by_name['DummyMessageContainingEnum'] = _DUMMYMESSAGECONTAININGENUM
DESCRIPTOR.message_types_by_name['DummyMessageInvalidAsOptionType'] = _DUMMYMESSAGEINVALIDASOPTIONTYPE
DESCRIPTOR.message_types_by_name['CustomOptionMinIntegerValues'] = _CUSTOMOPTIONMININTEGERVALUES
DESCRIPTOR.message_types_by_name['CustomOptionMaxIntegerValues'] = _CUSTOMOPTIONMAXINTEGERVALUES
DESCRIPTOR.message_types_by_name['CustomOptionOtherValues'] = _CUSTOMOPTIONOTHERVALUES
DESCRIPTOR.message_types_by_name['SettingRealsFromPositiveInts'] = _SETTINGREALSFROMPOSITIVEINTS
DESCRIPTOR.message_types_by_name['SettingRealsFromNegativeInts'] = _SETTINGREALSFROMNEGATIVEINTS
DESCRIPTOR.message_types_by_name['ComplexOptionType1'] = _COMPLEXOPTIONTYPE1
DESCRIPTOR.message_types_by_name['ComplexOptionType2'] = _COMPLEXOPTIONTYPE2
DESCRIPTOR.message_types_by_name['ComplexOptionType3'] = _COMPLEXOPTIONTYPE3
DESCRIPTOR.message_types_by_name['ComplexOpt6'] = _COMPLEXOPT6
DESCRIPTOR.message_types_by_name['VariousComplexOptions'] = _VARIOUSCOMPLEXOPTIONS
DESCRIPTOR.message_types_by_name['AggregateMessageSet'] = _AGGREGATEMESSAGESET
DESCRIPTOR.message_types_by_name['AggregateMessageSetElement'] = _AGGREGATEMESSAGESETELEMENT
DESCRIPTOR.message_types_by_name['Aggregate'] = _AGGREGATE
DESCRIPTOR.message_types_by_name['AggregateMessage'] = _AGGREGATEMESSAGE
DESCRIPTOR.message_types_by_name['NestedOptionType'] = _NESTEDOPTIONTYPE
DESCRIPTOR.message_types_by_name['OldOptionType'] = _OLDOPTIONTYPE
DESCRIPTOR.message_types_by_name['NewOptionType'] = _NEWOPTIONTYPE
DESCRIPTOR.message_types_by_name['TestMessageWithRequiredEnumOption'] = _TESTMESSAGEWITHREQUIREDENUMOPTION
DESCRIPTOR.enum_types_by_name['MethodOpt1'] = _METHODOPT1
DESCRIPTOR.enum_types_by_name['AggregateEnum'] = _AGGREGATEENUM
DESCRIPTOR.extensions_by_name['file_opt1'] = file_opt1
DESCRIPTOR.extensions_by_name['message_opt1'] = message_opt1
DESCRIPTOR.extensions_by_name['field_opt1'] = field_opt1
DESCRIPTOR.extensions_by_name['field_opt2'] = field_opt2
DESCRIPTOR.extensions_by_name['oneof_opt1'] = oneof_opt1
DESCRIPTOR.extensions_by_name['enum_opt1'] = enum_opt1
DESCRIPTOR.extensions_by_name['enum_value_opt1'] = enum_value_opt1
DESCRIPTOR.extensions_by_name['service_opt1'] = service_opt1
DESCRIPTOR.extensions_by_name['method_opt1'] = method_opt1
DESCRIPTOR.extensions_by_name['bool_opt'] = bool_opt
DESCRIPTOR.extensions_by_name['int32_opt'] = int32_opt
DESCRIPTOR.extensions_by_name['int64_opt'] = int64_opt
DESCRIPTOR.extensions_by_name['uint32_opt'] = uint32_opt
DESCRIPTOR.extensions_by_name['uint64_opt'] = uint64_opt
DESCRIPTOR.extensions_by_name['sint32_opt'] = sint32_opt
DESCRIPTOR.extensions_by_name['sint64_opt'] = sint64_opt
DESCRIPTOR.extensions_by_name['fixed32_opt'] = fixed32_opt
DESCRIPTOR.extensions_by_name['fixed64_opt'] = fixed64_opt
DESCRIPTOR.extensions_by_name['sfixed32_opt'] = sfixed32_opt
DESCRIPTOR.extensions_by_name['sfixed64_opt'] = sfixed64_opt
DESCRIPTOR.extensions_by_name['float_opt'] = float_opt
DESCRIPTOR.extensions_by_name['double_opt'] = double_opt
DESCRIPTOR.extensions_by_name['string_opt'] = string_opt
DESCRIPTOR.extensions_by_name['bytes_opt'] = bytes_opt
DESCRIPTOR.extensions_by_name['enum_opt'] = enum_opt
DESCRIPTOR.extensions_by_name['message_type_opt'] = message_type_opt
DESCRIPTOR.extensions_by_name['quux'] = quux
DESCRIPTOR.extensions_by_name['corge'] = corge
DESCRIPTOR.extensions_by_name['grault'] = grault
DESCRIPTOR.extensions_by_name['garply'] = garply
DESCRIPTOR.extensions_by_name['complex_opt1'] = complex_opt1
DESCRIPTOR.extensions_by_name['complex_opt2'] = complex_opt2
DESCRIPTOR.extensions_by_name['complex_opt3'] = complex_opt3
DESCRIPTOR.extensions_by_name['complexopt6'] = complexopt6
DESCRIPTOR.extensions_by_name['fileopt'] = fileopt
DESCRIPTOR.extensions_by_name['msgopt'] = msgopt
DESCRIPTOR.extensions_by_name['fieldopt'] = fieldopt
DESCRIPTOR.extensions_by_name['enumopt'] = enumopt
DESCRIPTOR.extensions_by_name['enumvalopt'] = enumvalopt
DESCRIPTOR.extensions_by_name['serviceopt'] = serviceopt
DESCRIPTOR.extensions_by_name['methodopt'] = methodopt
DESCRIPTOR.extensions_by_name['required_enum_opt'] = required_enum_opt
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestMessageWithCustomOptions = _reflection.GeneratedProtocolMessageType('TestMessageWithCustomOptions', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGEWITHCUSTOMOPTIONS,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMessageWithCustomOptions)
  ))
_sym_db.RegisterMessage(TestMessageWithCustomOptions)

CustomOptionFooRequest = _reflection.GeneratedProtocolMessageType('CustomOptionFooRequest', (_message.Message,), dict(
  DESCRIPTOR = _CUSTOMOPTIONFOOREQUEST,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.CustomOptionFooRequest)
  ))
_sym_db.RegisterMessage(CustomOptionFooRequest)

CustomOptionFooResponse = _reflection.GeneratedProtocolMessageType('CustomOptionFooResponse', (_message.Message,), dict(
  DESCRIPTOR = _CUSTOMOPTIONFOORESPONSE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.CustomOptionFooResponse)
  ))
_sym_db.RegisterMessage(CustomOptionFooResponse)

CustomOptionFooClientMessage = _reflection.GeneratedProtocolMessageType('CustomOptionFooClientMessage', (_message.Message,), dict(
  DESCRIPTOR = _CUSTOMOPTIONFOOCLIENTMESSAGE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.CustomOptionFooClientMessage)
  ))
_sym_db.RegisterMessage(CustomOptionFooClientMessage)

CustomOptionFooServerMessage = _reflection.GeneratedProtocolMessageType('CustomOptionFooServerMessage', (_message.Message,), dict(
  DESCRIPTOR = _CUSTOMOPTIONFOOSERVERMESSAGE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.CustomOptionFooServerMessage)
  ))
_sym_db.RegisterMessage(CustomOptionFooServerMessage)

DummyMessageContainingEnum = _reflection.GeneratedProtocolMessageType('DummyMessageContainingEnum', (_message.Message,), dict(
  DESCRIPTOR = _DUMMYMESSAGECONTAININGENUM,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.DummyMessageContainingEnum)
  ))
_sym_db.RegisterMessage(DummyMessageContainingEnum)

DummyMessageInvalidAsOptionType = _reflection.GeneratedProtocolMessageType('DummyMessageInvalidAsOptionType', (_message.Message,), dict(
  DESCRIPTOR = _DUMMYMESSAGEINVALIDASOPTIONTYPE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.DummyMessageInvalidAsOptionType)
  ))
_sym_db.RegisterMessage(DummyMessageInvalidAsOptionType)

CustomOptionMinIntegerValues = _reflection.GeneratedProtocolMessageType('CustomOptionMinIntegerValues', (_message.Message,), dict(
  DESCRIPTOR = _CUSTOMOPTIONMININTEGERVALUES,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.CustomOptionMinIntegerValues)
  ))
_sym_db.RegisterMessage(CustomOptionMinIntegerValues)

CustomOptionMaxIntegerValues = _reflection.GeneratedProtocolMessageType('CustomOptionMaxIntegerValues', (_message.Message,), dict(
  DESCRIPTOR = _CUSTOMOPTIONMAXINTEGERVALUES,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.CustomOptionMaxIntegerValues)
  ))
_sym_db.RegisterMessage(CustomOptionMaxIntegerValues)

CustomOptionOtherValues = _reflection.GeneratedProtocolMessageType('CustomOptionOtherValues', (_message.Message,), dict(
  DESCRIPTOR = _CUSTOMOPTIONOTHERVALUES,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.CustomOptionOtherValues)
  ))
_sym_db.RegisterMessage(CustomOptionOtherValues)

SettingRealsFromPositiveInts = _reflection.GeneratedProtocolMessageType('SettingRealsFromPositiveInts', (_message.Message,), dict(
  DESCRIPTOR = _SETTINGREALSFROMPOSITIVEINTS,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.SettingRealsFromPositiveInts)
  ))
_sym_db.RegisterMessage(SettingRealsFromPositiveInts)

SettingRealsFromNegativeInts = _reflection.GeneratedProtocolMessageType('SettingRealsFromNegativeInts', (_message.Message,), dict(
  DESCRIPTOR = _SETTINGREALSFROMNEGATIVEINTS,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.SettingRealsFromNegativeInts)
  ))
_sym_db.RegisterMessage(SettingRealsFromNegativeInts)

ComplexOptionType1 = _reflection.GeneratedProtocolMessageType('ComplexOptionType1', (_message.Message,), dict(
  DESCRIPTOR = _COMPLEXOPTIONTYPE1,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.ComplexOptionType1)
  ))
_sym_db.RegisterMessage(ComplexOptionType1)

ComplexOptionType2 = _reflection.GeneratedProtocolMessageType('ComplexOptionType2', (_message.Message,), dict(

  ComplexOptionType4 = _reflection.GeneratedProtocolMessageType('ComplexOptionType4', (_message.Message,), dict(
    DESCRIPTOR = _COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4,
    __module__ = 'google.protobuf.unittest_custom_options_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.ComplexOptionType2.ComplexOptionType4)
    ))
  ,
  DESCRIPTOR = _COMPLEXOPTIONTYPE2,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.ComplexOptionType2)
  ))
_sym_db.RegisterMessage(ComplexOptionType2)
_sym_db.RegisterMessage(ComplexOptionType2.ComplexOptionType4)

ComplexOptionType3 = _reflection.GeneratedProtocolMessageType('ComplexOptionType3', (_message.Message,), dict(

  ComplexOptionType5 = _reflection.GeneratedProtocolMessageType('ComplexOptionType5', (_message.Message,), dict(
    DESCRIPTOR = _COMPLEXOPTIONTYPE3_COMPLEXOPTIONTYPE5,
    __module__ = 'google.protobuf.unittest_custom_options_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.ComplexOptionType3.ComplexOptionType5)
    ))
  ,
  DESCRIPTOR = _COMPLEXOPTIONTYPE3,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.ComplexOptionType3)
  ))
_sym_db.RegisterMessage(ComplexOptionType3)
_sym_db.RegisterMessage(ComplexOptionType3.ComplexOptionType5)

ComplexOpt6 = _reflection.GeneratedProtocolMessageType('ComplexOpt6', (_message.Message,), dict(
  DESCRIPTOR = _COMPLEXOPT6,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.ComplexOpt6)
  ))
_sym_db.RegisterMessage(ComplexOpt6)

VariousComplexOptions = _reflection.GeneratedProtocolMessageType('VariousComplexOptions', (_message.Message,), dict(
  DESCRIPTOR = _VARIOUSCOMPLEXOPTIONS,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.VariousComplexOptions)
  ))
_sym_db.RegisterMessage(VariousComplexOptions)

AggregateMessageSet = _reflection.GeneratedProtocolMessageType('AggregateMessageSet', (_message.Message,), dict(
  DESCRIPTOR = _AGGREGATEMESSAGESET,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.AggregateMessageSet)
  ))
_sym_db.RegisterMessage(AggregateMessageSet)

AggregateMessageSetElement = _reflection.GeneratedProtocolMessageType('AggregateMessageSetElement', (_message.Message,), dict(
  DESCRIPTOR = _AGGREGATEMESSAGESETELEMENT,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.AggregateMessageSetElement)
  ))
_sym_db.RegisterMessage(AggregateMessageSetElement)

Aggregate = _reflection.GeneratedProtocolMessageType('Aggregate', (_message.Message,), dict(
  DESCRIPTOR = _AGGREGATE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.Aggregate)
  ))
_sym_db.RegisterMessage(Aggregate)

AggregateMessage = _reflection.GeneratedProtocolMessageType('AggregateMessage', (_message.Message,), dict(
  DESCRIPTOR = _AGGREGATEMESSAGE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.AggregateMessage)
  ))
_sym_db.RegisterMessage(AggregateMessage)

NestedOptionType = _reflection.GeneratedProtocolMessageType('NestedOptionType', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _NESTEDOPTIONTYPE_NESTEDMESSAGE,
    __module__ = 'google.protobuf.unittest_custom_options_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.NestedOptionType.NestedMessage)
    ))
  ,
  DESCRIPTOR = _NESTEDOPTIONTYPE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.NestedOptionType)
  ))
_sym_db.RegisterMessage(NestedOptionType)
_sym_db.RegisterMessage(NestedOptionType.NestedMessage)

OldOptionType = _reflection.GeneratedProtocolMessageType('OldOptionType', (_message.Message,), dict(
  DESCRIPTOR = _OLDOPTIONTYPE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.OldOptionType)
  ))
_sym_db.RegisterMessage(OldOptionType)

NewOptionType = _reflection.GeneratedProtocolMessageType('NewOptionType', (_message.Message,), dict(
  DESCRIPTOR = _NEWOPTIONTYPE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.NewOptionType)
  ))
_sym_db.RegisterMessage(NewOptionType)

TestMessageWithRequiredEnumOption = _reflection.GeneratedProtocolMessageType('TestMessageWithRequiredEnumOption', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGEWITHREQUIREDENUMOPTION,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMessageWithRequiredEnumOption)
  ))
_sym_db.RegisterMessage(TestMessageWithRequiredEnumOption)

google_dot_protobuf_dot_descriptor__pb2.FileOptions.RegisterExtension(file_opt1)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(message_opt1)
google_dot_protobuf_dot_descriptor__pb2.FieldOptions.RegisterExtension(field_opt1)
google_dot_protobuf_dot_descriptor__pb2.FieldOptions.RegisterExtension(field_opt2)
google_dot_protobuf_dot_descriptor__pb2.OneofOptions.RegisterExtension(oneof_opt1)
google_dot_protobuf_dot_descriptor__pb2.EnumOptions.RegisterExtension(enum_opt1)
google_dot_protobuf_dot_descriptor__pb2.EnumValueOptions.RegisterExtension(enum_value_opt1)
google_dot_protobuf_dot_descriptor__pb2.ServiceOptions.RegisterExtension(service_opt1)
method_opt1.enum_type = _METHODOPT1
google_dot_protobuf_dot_descriptor__pb2.MethodOptions.RegisterExtension(method_opt1)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(bool_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(int32_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(int64_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(uint32_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(uint64_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(sint32_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(sint64_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(fixed32_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(fixed64_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(sfixed32_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(sfixed64_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(float_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(double_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(string_opt)
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(bytes_opt)
enum_opt.enum_type = _DUMMYMESSAGECONTAININGENUM_TESTENUMTYPE
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(enum_opt)
message_type_opt.message_type = _DUMMYMESSAGEINVALIDASOPTIONTYPE
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(message_type_opt)
ComplexOptionType1.RegisterExtension(quux)
corge.message_type = _COMPLEXOPTIONTYPE3
ComplexOptionType1.RegisterExtension(corge)
ComplexOptionType2.RegisterExtension(grault)
garply.message_type = _COMPLEXOPTIONTYPE1
ComplexOptionType2.RegisterExtension(garply)
complex_opt1.message_type = _COMPLEXOPTIONTYPE1
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(complex_opt1)
complex_opt2.message_type = _COMPLEXOPTIONTYPE2
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(complex_opt2)
complex_opt3.message_type = _COMPLEXOPTIONTYPE3
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(complex_opt3)
complexopt6.message_type = _COMPLEXOPT6
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(complexopt6)
fileopt.message_type = _AGGREGATE
google_dot_protobuf_dot_descriptor__pb2.FileOptions.RegisterExtension(fileopt)
msgopt.message_type = _AGGREGATE
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(msgopt)
fieldopt.message_type = _AGGREGATE
google_dot_protobuf_dot_descriptor__pb2.FieldOptions.RegisterExtension(fieldopt)
enumopt.message_type = _AGGREGATE
google_dot_protobuf_dot_descriptor__pb2.EnumOptions.RegisterExtension(enumopt)
enumvalopt.message_type = _AGGREGATE
google_dot_protobuf_dot_descriptor__pb2.EnumValueOptions.RegisterExtension(enumvalopt)
serviceopt.message_type = _AGGREGATE
google_dot_protobuf_dot_descriptor__pb2.ServiceOptions.RegisterExtension(serviceopt)
methodopt.message_type = _AGGREGATE
google_dot_protobuf_dot_descriptor__pb2.MethodOptions.RegisterExtension(methodopt)
required_enum_opt.message_type = _OLDOPTIONTYPE
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(required_enum_opt)
_COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4.extensions_by_name['complex_opt4'].message_type = _COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4
google_dot_protobuf_dot_descriptor__pb2.MessageOptions.RegisterExtension(_COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4.extensions_by_name['complex_opt4'])
_AGGREGATEMESSAGESETELEMENT.extensions_by_name['message_set_extension'].message_type = _AGGREGATEMESSAGESETELEMENT
AggregateMessageSet.RegisterExtension(_AGGREGATEMESSAGESETELEMENT.extensions_by_name['message_set_extension'])
_AGGREGATE.extensions_by_name['nested'].message_type = _AGGREGATE
google_dot_protobuf_dot_descriptor__pb2.FileOptions.RegisterExtension(_AGGREGATE.extensions_by_name['nested'])
google_dot_protobuf_dot_descriptor__pb2.FileOptions.RegisterExtension(_NESTEDOPTIONTYPE.extensions_by_name['nested_extension'])

DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\200\001\001\210\001\001\220\001\001\360\350\301\035\352\255\300\345$\372\354\205;p\010d\022\016FileAnnotation\032\026\022\024NestedFileAnnotation\"\036\372\354\205;\031\022\027FileExtensionAnnotation*$\013\020\366\353\256\007\032\033\n\031EmbeddedMessageSetElement\014'))
_AGGREGATEENUM.has_options = True
_AGGREGATEENUM._options = _descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\222\225\210;\020\022\016EnumAnnotation'))
_AGGREGATEENUM.values_by_name["VALUE"].has_options = True
_AGGREGATEENUM.values_by_name["VALUE"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\312\374\211;\025\022\023EnumValueAnnotation'))
_TESTMESSAGEWITHCUSTOMOPTIONS.oneofs_by_name['AnOneof'].has_options = True
_TESTMESSAGEWITHCUSTOMOPTIONS.oneofs_by_name['AnOneof']._options = _descriptor._ParseOptions(descriptor_pb2.OneofOptions(), _b('\370\254\303\035\235\377\377\377\377\377\377\377\377\001'))
_TESTMESSAGEWITHCUSTOMOPTIONS_ANENUM.has_options = True
_TESTMESSAGEWITHCUSTOMOPTIONS_ANENUM._options = _descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\305\366\311\035\353\374\377\377'))
_TESTMESSAGEWITHCUSTOMOPTIONS_ANENUM.values_by_name["ANENUM_VAL2"].has_options = True
_TESTMESSAGEWITHCUSTOMOPTIONS_ANENUM.values_by_name["ANENUM_VAL2"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\260\206\372\005{'))
_TESTMESSAGEWITHCUSTOMOPTIONS.fields_by_name['field1'].has_options = True
_TESTMESSAGEWITHCUSTOMOPTIONS.fields_by_name['field1']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001\301\340\303\035-\341u\n\002\000\000\000'))
_TESTMESSAGEWITHCUSTOMOPTIONS.has_options = True
_TESTMESSAGEWITHCUSTOMOPTIONS._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\010\000\340\351\302\035\310\377\377\377\377\377\377\377\377\001'))
_CUSTOMOPTIONMININTEGERVALUES.has_options = True
_CUSTOMOPTIONMININTEGERVALUES._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\320\336\262\035\000\350\306\262\035\200\200\200\200\370\377\377\377\377\001\260\274\262\035\200\200\200\200\200\200\200\200\200\001\200\223\262\035\000\370\365\260\035\000\200\304\260\035\377\377\377\377\017\370\227\260\035\377\377\377\377\377\377\377\377\377\001\235\365\257\035\000\000\000\000\221\356\257\035\000\000\000\000\000\000\000\000\255\215\257\035\000\000\000\200\231\326\250\035\000\000\000\000\000\000\000\200'))
_CUSTOMOPTIONMAXINTEGERVALUES.has_options = True
_CUSTOMOPTIONMAXINTEGERVALUES._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\320\336\262\035\001\350\306\262\035\377\377\377\377\007\260\274\262\035\377\377\377\377\377\377\377\377\177\200\223\262\035\377\377\377\377\017\370\365\260\035\377\377\377\377\377\377\377\377\377\001\200\304\260\035\376\377\377\377\017\370\227\260\035\376\377\377\377\377\377\377\377\377\001\235\365\257\035\377\377\377\377\221\356\257\035\377\377\377\377\377\377\377\377\255\215\257\035\377\377\377\177\231\326\250\035\377\377\377\377\377\377\377\177'))
_CUSTOMOPTIONOTHERVALUES.has_options = True
_CUSTOMOPTIONOTHERVALUES._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\350\306\262\035\234\377\377\377\377\377\377\377\377\001\365\337\243\035\347\207EA\351\334\242\035\373Y\214B\312\300\363?\252\334\242\035\016Hello, \"World\"\262\331\242\035\013Hello\000World\210\331\242\035\351\377\377\377\377\377\377\377\377\001'))
_SETTINGREALSFROMPOSITIVEINTS.has_options = True
_SETTINGREALSFROMPOSITIVEINTS._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\365\337\243\035\000\000@A\351\334\242\035\000\000\000\000\000@c@'))
_SETTINGREALSFROMNEGATIVEINTS.has_options = True
_SETTINGREALSFROMNEGATIVEINTS._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\365\337\243\035\000\000@\301\351\334\242\035\000\000\000\000\000@c\300'))
_VARIOUSCOMPLEXOPTIONS.has_options = True
_VARIOUSCOMPLEXOPTIONS._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\242\342\225\035\002\010*\242\342\225\035\006\330\205\236\035\304\002\242\342\225\035\010\222\365\235\035\003\010\354\006\242\342\225\035\002 c\242\342\225\035\002 X\252\375\220\035\003\020\333\007\252\375\220\035\006\370\346\227\035\216\005\252\375\220\035\005\n\003\010\347\005\252\375\220\035\010\n\006\330\205\236\035\317\017\252\375\220\035\n\n\010\222\365\235\035\003\010\330\017\252\375\220\035\010\302\254\227\035\003\010\345\005\252\375\220\035\013\302\254\227\035\006\330\205\236\035\316\017\252\375\220\035\r\302\254\227\035\010\222\365\235\035\003\010\311\020\322\250\217\035\003\010\263\017\252\375\220\035\005\032\003\010\301\002\252\375\220\035\004\"\002\010e\252\375\220\035\005\"\003\010\324\001\372\336\220\035\002\010\t\372\336\220\035\004\023\030\026\024\343\334\374\034\370\375\373\034\030\344\334\374\034'))
_AGGREGATEMESSAGESET.has_options = True
_AGGREGATEMESSAGESET._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\010\001'))
_AGGREGATEMESSAGE.fields_by_name['fieldname'].has_options = True
_AGGREGATEMESSAGE.fields_by_name['fieldname']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\362\241\207;\021\022\017FieldAnnotation'))
_AGGREGATEMESSAGE.has_options = True
_AGGREGATEMESSAGE._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\302\321\206;\025\010e\022\021MessageAnnotation'))
_NESTEDOPTIONTYPE_NESTEDMESSAGE.fields_by_name['nested_field'].has_options = True
_NESTEDOPTIONTYPE_NESTEDMESSAGE.fields_by_name['nested_field']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\301\340\303\035\352\003\000\000\000\000\000\000'))
_NESTEDOPTIONTYPE_NESTEDMESSAGE.has_options = True
_NESTEDOPTIONTYPE_NESTEDMESSAGE._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\340\351\302\035\351\007'))
_NESTEDOPTIONTYPE_NESTEDENUM.has_options = True
_NESTEDOPTIONTYPE_NESTEDENUM._options = _descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\305\366\311\035\353\003\000\000'))
_NESTEDOPTIONTYPE_NESTEDENUM.values_by_name["NESTED_ENUM_VALUE"].has_options = True
_NESTEDOPTIONTYPE_NESTEDENUM.values_by_name["NESTED_ENUM_VALUE"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\260\206\372\005\354\007'))
_NESTEDOPTIONTYPE.extensions_by_name['nested_extension'].has_options = True
_NESTEDOPTIONTYPE.extensions_by_name['nested_extension']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\213\312\035\355\007'))
_TESTMESSAGEWITHREQUIREDENUMOPTION.has_options = True
_TESTMESSAGEWITHREQUIREDENUMOPTION._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\372\350\374\224\003\002\010\000'))

_TESTSERVICEWITHCUSTOMOPTIONS = _descriptor.ServiceDescriptor(
  name='TestServiceWithCustomOptions',
  full_name='protobuf_unittest.TestServiceWithCustomOptions',
  file=DESCRIPTOR,
  index=0,
  options=_descriptor._ParseOptions(descriptor_pb2.ServiceOptions(), _b('\220\262\213\036\323\333\200\313I')),
  serialized_start=3142,
  serialized_end=3284,
  methods=[
  _descriptor.MethodDescriptor(
    name='Foo',
    full_name='protobuf_unittest.TestServiceWithCustomOptions.Foo',
    index=0,
    containing_service=None,
    input_type=_CUSTOMOPTIONFOOREQUEST,
    output_type=_CUSTOMOPTIONFOORESPONSE,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\340\372\214\036\002')),
  ),
])
_sym_db.RegisterServiceDescriptor(_TESTSERVICEWITHCUSTOMOPTIONS)

DESCRIPTOR.services_by_name['TestServiceWithCustomOptions'] = _TESTSERVICEWITHCUSTOMOPTIONS


_AGGREGATESERVICE = _descriptor.ServiceDescriptor(
  name='AggregateService',
  full_name='protobuf_unittest.AggregateService',
  file=DESCRIPTOR,
  index=1,
  options=_descriptor._ParseOptions(descriptor_pb2.ServiceOptions(), _b('\312\373\216;\023\022\021ServiceAnnotation')),
  serialized_start=3287,
  serialized_end=3440,
  methods=[
  _descriptor.MethodDescriptor(
    name='Method',
    full_name='protobuf_unittest.AggregateService.Method',
    index=0,
    containing_service=None,
    input_type=_AGGREGATEMESSAGE,
    output_type=_AGGREGATEMESSAGE,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\312\310\226;\022\022\020MethodAnnotation')),
  ),
])
_sym_db.RegisterServiceDescriptor(_AGGREGATESERVICE)

DESCRIPTOR.services_by_name['AggregateService'] = _AGGREGATESERVICE

TestServiceWithCustomOptions = service_reflection.GeneratedServiceType('TestServiceWithCustomOptions', (_service.Service,), dict(
  DESCRIPTOR = _TESTSERVICEWITHCUSTOMOPTIONS,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  ))

TestServiceWithCustomOptions_Stub = service_reflection.GeneratedServiceStubType('TestServiceWithCustomOptions_Stub', (TestServiceWithCustomOptions,), dict(
  DESCRIPTOR = _TESTSERVICEWITHCUSTOMOPTIONS,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  ))


AggregateService = service_reflection.GeneratedServiceType('AggregateService', (_service.Service,), dict(
  DESCRIPTOR = _AGGREGATESERVICE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  ))

AggregateService_Stub = service_reflection.GeneratedServiceStubType('AggregateService_Stub', (AggregateService,), dict(
  DESCRIPTOR = _AGGREGATESERVICE,
  __module__ = 'google.protobuf.unittest_custom_options_pb2'
  ))


# @@protoc_insertion_point(module_scope)
PK��\_�����protobuf/descriptor_pool.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Provides DescriptorPool to use as a container for proto2 descriptors.

The DescriptorPool is used in conjection with a DescriptorDatabase to maintain
a collection of protocol buffer descriptors for use when dynamically creating
message types at runtime.

For most applications protocol buffers should be used via modules generated by
the protocol buffer compiler tool. This should only be used when the type of
protocol buffers used in an application or library cannot be predetermined.

Below is a straightforward example on how to use this class:

  pool = DescriptorPool()
  file_descriptor_protos = [ ... ]
  for file_descriptor_proto in file_descriptor_protos:
    pool.Add(file_descriptor_proto)
  my_message_descriptor = pool.FindMessageTypeByName('some.package.MessageType')

The message descriptor can be used in conjunction with the message_factory
module in order to create a protocol buffer class that can be encoded and
decoded.

If you want to get a Python class for the specified proto, use the
helper functions inside google.protobuf.message_factory
directly instead of this class.
"""

__author__ = 'matthewtoia@google.com (Matt Toia)'

import collections

from google.protobuf import descriptor
from google.protobuf import descriptor_database
from google.protobuf import text_encoding


_USE_C_DESCRIPTORS = descriptor._USE_C_DESCRIPTORS  # pylint: disable=protected-access


def _NormalizeFullyQualifiedName(name):
  """Remove leading period from fully-qualified type name.

  Due to b/13860351 in descriptor_database.py, types in the root namespace are
  generated with a leading period. This function removes that prefix.

  Args:
    name: A str, the fully-qualified symbol name.

  Returns:
    A str, the normalized fully-qualified symbol name.
  """
  return name.lstrip('.')


def _OptionsOrNone(descriptor_proto):
  """Returns the value of the field `options`, or None if it is not set."""
  if descriptor_proto.HasField('options'):
    return descriptor_proto.options
  else:
    return None


def _IsMessageSetExtension(field):
  return (field.is_extension and
          field.containing_type.has_options and
          field.containing_type.GetOptions().message_set_wire_format and
          field.type == descriptor.FieldDescriptor.TYPE_MESSAGE and
          field.label == descriptor.FieldDescriptor.LABEL_OPTIONAL)


class DescriptorPool(object):
  """A collection of protobufs dynamically constructed by descriptor protos."""

  if _USE_C_DESCRIPTORS:

    def __new__(cls, descriptor_db=None):
      # pylint: disable=protected-access
      return descriptor._message.DescriptorPool(descriptor_db)

  def __init__(self, descriptor_db=None):
    """Initializes a Pool of proto buffs.

    The descriptor_db argument to the constructor is provided to allow
    specialized file descriptor proto lookup code to be triggered on demand. An
    example would be an implementation which will read and compile a file
    specified in a call to FindFileByName() and not require the call to Add()
    at all. Results from this database will be cached internally here as well.

    Args:
      descriptor_db: A secondary source of file descriptors.
    """

    self._internal_db = descriptor_database.DescriptorDatabase()
    self._descriptor_db = descriptor_db
    self._descriptors = {}
    self._enum_descriptors = {}
    self._service_descriptors = {}
    self._file_descriptors = {}
    self._toplevel_extensions = {}
    # We store extensions in two two-level mappings: The first key is the
    # descriptor of the message being extended, the second key is the extension
    # full name or its tag number.
    self._extensions_by_name = collections.defaultdict(dict)
    self._extensions_by_number = collections.defaultdict(dict)

  def Add(self, file_desc_proto):
    """Adds the FileDescriptorProto and its types to this pool.

    Args:
      file_desc_proto: The FileDescriptorProto to add.
    """

    self._internal_db.Add(file_desc_proto)

  def AddSerializedFile(self, serialized_file_desc_proto):
    """Adds the FileDescriptorProto and its types to this pool.

    Args:
      serialized_file_desc_proto: A bytes string, serialization of the
        FileDescriptorProto to add.
    """

    # pylint: disable=g-import-not-at-top
    from google.protobuf import descriptor_pb2
    file_desc_proto = descriptor_pb2.FileDescriptorProto.FromString(
        serialized_file_desc_proto)
    self.Add(file_desc_proto)

  def AddDescriptor(self, desc):
    """Adds a Descriptor to the pool, non-recursively.

    If the Descriptor contains nested messages or enums, the caller must
    explicitly register them. This method also registers the FileDescriptor
    associated with the message.

    Args:
      desc: A Descriptor.
    """
    if not isinstance(desc, descriptor.Descriptor):
      raise TypeError('Expected instance of descriptor.Descriptor.')

    self._descriptors[desc.full_name] = desc
    self._AddFileDescriptor(desc.file)

  def AddEnumDescriptor(self, enum_desc):
    """Adds an EnumDescriptor to the pool.

    This method also registers the FileDescriptor associated with the enum.

    Args:
      enum_desc: An EnumDescriptor.
    """

    if not isinstance(enum_desc, descriptor.EnumDescriptor):
      raise TypeError('Expected instance of descriptor.EnumDescriptor.')

    self._enum_descriptors[enum_desc.full_name] = enum_desc
    self._AddFileDescriptor(enum_desc.file)

  def AddServiceDescriptor(self, service_desc):
    """Adds a ServiceDescriptor to the pool.

    Args:
      service_desc: A ServiceDescriptor.
    """

    if not isinstance(service_desc, descriptor.ServiceDescriptor):
      raise TypeError('Expected instance of descriptor.ServiceDescriptor.')

    self._service_descriptors[service_desc.full_name] = service_desc

  def AddExtensionDescriptor(self, extension):
    """Adds a FieldDescriptor describing an extension to the pool.

    Args:
      extension: A FieldDescriptor.

    Raises:
      AssertionError: when another extension with the same number extends the
        same message.
      TypeError: when the specified extension is not a
        descriptor.FieldDescriptor.
    """
    if not (isinstance(extension, descriptor.FieldDescriptor) and
            extension.is_extension):
      raise TypeError('Expected an extension descriptor.')

    if extension.extension_scope is None:
      self._toplevel_extensions[extension.full_name] = extension

    try:
      existing_desc = self._extensions_by_number[
          extension.containing_type][extension.number]
    except KeyError:
      pass
    else:
      if extension is not existing_desc:
        raise AssertionError(
            'Extensions "%s" and "%s" both try to extend message type "%s" '
            'with field number %d.' %
            (extension.full_name, existing_desc.full_name,
             extension.containing_type.full_name, extension.number))

    self._extensions_by_number[extension.containing_type][
        extension.number] = extension
    self._extensions_by_name[extension.containing_type][
        extension.full_name] = extension

    # Also register MessageSet extensions with the type name.
    if _IsMessageSetExtension(extension):
      self._extensions_by_name[extension.containing_type][
          extension.message_type.full_name] = extension

  def AddFileDescriptor(self, file_desc):
    """Adds a FileDescriptor to the pool, non-recursively.

    If the FileDescriptor contains messages or enums, the caller must explicitly
    register them.

    Args:
      file_desc: A FileDescriptor.
    """

    self._AddFileDescriptor(file_desc)

  def _AddFileDescriptor(self, file_desc):
    """Adds a FileDescriptor to the pool, non-recursively.

    If the FileDescriptor contains messages or enums, the caller must explicitly
    register them.

    Args:
      file_desc: A FileDescriptor.
    """

    if not isinstance(file_desc, descriptor.FileDescriptor):
      raise TypeError('Expected instance of descriptor.FileDescriptor.')
    self._file_descriptors[file_desc.name] = file_desc

  def FindFileByName(self, file_name):
    """Gets a FileDescriptor by file name.

    Args:
      file_name: The path to the file to get a descriptor for.

    Returns:
      A FileDescriptor for the named file.

    Raises:
      KeyError: if the file cannot be found in the pool.
    """

    try:
      return self._file_descriptors[file_name]
    except KeyError:
      pass

    try:
      file_proto = self._internal_db.FindFileByName(file_name)
    except KeyError as error:
      if self._descriptor_db:
        file_proto = self._descriptor_db.FindFileByName(file_name)
      else:
        raise error
    if not file_proto:
      raise KeyError('Cannot find a file named %s' % file_name)
    return self._ConvertFileProtoToFileDescriptor(file_proto)

  def FindFileContainingSymbol(self, symbol):
    """Gets the FileDescriptor for the file containing the specified symbol.

    Args:
      symbol: The name of the symbol to search for.

    Returns:
      A FileDescriptor that contains the specified symbol.

    Raises:
      KeyError: if the file cannot be found in the pool.
    """

    symbol = _NormalizeFullyQualifiedName(symbol)
    try:
      return self._descriptors[symbol].file
    except KeyError:
      pass

    try:
      return self._enum_descriptors[symbol].file
    except KeyError:
      pass

    try:
      return self._service_descriptors[symbol].file
    except KeyError:
      pass

    try:
      return self._FindFileContainingSymbolInDb(symbol)
    except KeyError:
      pass

    try:
      return self._toplevel_extensions[symbol].file
    except KeyError:
      pass

    # Try nested extensions inside a message.
    message_name, _, extension_name = symbol.rpartition('.')
    try:
      message = self.FindMessageTypeByName(message_name)
      assert message.extensions_by_name[extension_name]
      return message.file
    except KeyError:
      raise KeyError('Cannot find a file containing %s' % symbol)

  def FindMessageTypeByName(self, full_name):
    """Loads the named descriptor from the pool.

    Args:
      full_name: The full name of the descriptor to load.

    Returns:
      The descriptor for the named type.

    Raises:
      KeyError: if the message cannot be found in the pool.
    """

    full_name = _NormalizeFullyQualifiedName(full_name)
    if full_name not in self._descriptors:
      self._FindFileContainingSymbolInDb(full_name)
    return self._descriptors[full_name]

  def FindEnumTypeByName(self, full_name):
    """Loads the named enum descriptor from the pool.

    Args:
      full_name: The full name of the enum descriptor to load.

    Returns:
      The enum descriptor for the named type.

    Raises:
      KeyError: if the enum cannot be found in the pool.
    """

    full_name = _NormalizeFullyQualifiedName(full_name)
    if full_name not in self._enum_descriptors:
      self._FindFileContainingSymbolInDb(full_name)
    return self._enum_descriptors[full_name]

  def FindFieldByName(self, full_name):
    """Loads the named field descriptor from the pool.

    Args:
      full_name: The full name of the field descriptor to load.

    Returns:
      The field descriptor for the named field.

    Raises:
      KeyError: if the field cannot be found in the pool.
    """
    full_name = _NormalizeFullyQualifiedName(full_name)
    message_name, _, field_name = full_name.rpartition('.')
    message_descriptor = self.FindMessageTypeByName(message_name)
    return message_descriptor.fields_by_name[field_name]

  def FindOneofByName(self, full_name):
    """Loads the named oneof descriptor from the pool.

    Args:
      full_name: The full name of the oneof descriptor to load.

    Returns:
      The oneof descriptor for the named oneof.

    Raises:
      KeyError: if the oneof cannot be found in the pool.
    """
    full_name = _NormalizeFullyQualifiedName(full_name)
    message_name, _, oneof_name = full_name.rpartition('.')
    message_descriptor = self.FindMessageTypeByName(message_name)
    return message_descriptor.oneofs_by_name[oneof_name]

  def FindExtensionByName(self, full_name):
    """Loads the named extension descriptor from the pool.

    Args:
      full_name: The full name of the extension descriptor to load.

    Returns:
      A FieldDescriptor, describing the named extension.

    Raises:
      KeyError: if the extension cannot be found in the pool.
    """
    full_name = _NormalizeFullyQualifiedName(full_name)
    try:
      # The proto compiler does not give any link between the FileDescriptor
      # and top-level extensions unless the FileDescriptorProto is added to
      # the DescriptorDatabase, but this can impact memory usage.
      # So we registered these extensions by name explicitly.
      return self._toplevel_extensions[full_name]
    except KeyError:
      pass
    message_name, _, extension_name = full_name.rpartition('.')
    try:
      # Most extensions are nested inside a message.
      scope = self.FindMessageTypeByName(message_name)
    except KeyError:
      # Some extensions are defined at file scope.
      scope = self._FindFileContainingSymbolInDb(full_name)
    return scope.extensions_by_name[extension_name]

  def FindExtensionByNumber(self, message_descriptor, number):
    """Gets the extension of the specified message with the specified number.

    Extensions have to be registered to this pool by calling
    AddExtensionDescriptor.

    Args:
      message_descriptor: descriptor of the extended message.
      number: integer, number of the extension field.

    Returns:
      A FieldDescriptor describing the extension.

    Raises:
      KeyError: when no extension with the given number is known for the
        specified message.
    """
    return self._extensions_by_number[message_descriptor][number]

  def FindAllExtensions(self, message_descriptor):
    """Gets all the known extension of a given message.

    Extensions have to be registered to this pool by calling
    AddExtensionDescriptor.

    Args:
      message_descriptor: descriptor of the extended message.

    Returns:
      A list of FieldDescriptor describing the extensions.
    """
    return list(self._extensions_by_number[message_descriptor].values())

  def FindServiceByName(self, full_name):
    """Loads the named service descriptor from the pool.

    Args:
      full_name: The full name of the service descriptor to load.

    Returns:
      The service descriptor for the named service.

    Raises:
      KeyError: if the service cannot be found in the pool.
    """
    full_name = _NormalizeFullyQualifiedName(full_name)
    if full_name not in self._service_descriptors:
      self._FindFileContainingSymbolInDb(full_name)
    return self._service_descriptors[full_name]

  def _FindFileContainingSymbolInDb(self, symbol):
    """Finds the file in descriptor DB containing the specified symbol.

    Args:
      symbol: The name of the symbol to search for.

    Returns:
      A FileDescriptor that contains the specified symbol.

    Raises:
      KeyError: if the file cannot be found in the descriptor database.
    """
    try:
      file_proto = self._internal_db.FindFileContainingSymbol(symbol)
    except KeyError as error:
      if self._descriptor_db:
        file_proto = self._descriptor_db.FindFileContainingSymbol(symbol)
      else:
        raise error
    if not file_proto:
      raise KeyError('Cannot find a file containing %s' % symbol)
    return self._ConvertFileProtoToFileDescriptor(file_proto)

  def _ConvertFileProtoToFileDescriptor(self, file_proto):
    """Creates a FileDescriptor from a proto or returns a cached copy.

    This method also has the side effect of loading all the symbols found in
    the file into the appropriate dictionaries in the pool.

    Args:
      file_proto: The proto to convert.

    Returns:
      A FileDescriptor matching the passed in proto.
    """

    if file_proto.name not in self._file_descriptors:
      built_deps = list(self._GetDeps(file_proto.dependency))
      direct_deps = [self.FindFileByName(n) for n in file_proto.dependency]
      public_deps = [direct_deps[i] for i in file_proto.public_dependency]

      file_descriptor = descriptor.FileDescriptor(
          pool=self,
          name=file_proto.name,
          package=file_proto.package,
          syntax=file_proto.syntax,
          options=_OptionsOrNone(file_proto),
          serialized_pb=file_proto.SerializeToString(),
          dependencies=direct_deps,
          public_dependencies=public_deps)
      scope = {}

      # This loop extracts all the message and enum types from all the
      # dependencies of the file_proto. This is necessary to create the
      # scope of available message types when defining the passed in
      # file proto.
      for dependency in built_deps:
        scope.update(self._ExtractSymbols(
            dependency.message_types_by_name.values()))
        scope.update((_PrefixWithDot(enum.full_name), enum)
                     for enum in dependency.enum_types_by_name.values())

      for message_type in file_proto.message_type:
        message_desc = self._ConvertMessageDescriptor(
            message_type, file_proto.package, file_descriptor, scope,
            file_proto.syntax)
        file_descriptor.message_types_by_name[message_desc.name] = (
            message_desc)

      for enum_type in file_proto.enum_type:
        file_descriptor.enum_types_by_name[enum_type.name] = (
            self._ConvertEnumDescriptor(enum_type, file_proto.package,
                                        file_descriptor, None, scope))

      for index, extension_proto in enumerate(file_proto.extension):
        extension_desc = self._MakeFieldDescriptor(
            extension_proto, file_proto.package, index, file_descriptor,
            is_extension=True)
        extension_desc.containing_type = self._GetTypeFromScope(
            file_descriptor.package, extension_proto.extendee, scope)
        self._SetFieldType(extension_proto, extension_desc,
                           file_descriptor.package, scope)
        file_descriptor.extensions_by_name[extension_desc.name] = (
            extension_desc)

      for desc_proto in file_proto.message_type:
        self._SetAllFieldTypes(file_proto.package, desc_proto, scope)

      if file_proto.package:
        desc_proto_prefix = _PrefixWithDot(file_proto.package)
      else:
        desc_proto_prefix = ''

      for desc_proto in file_proto.message_type:
        desc = self._GetTypeFromScope(
            desc_proto_prefix, desc_proto.name, scope)
        file_descriptor.message_types_by_name[desc_proto.name] = desc

      for index, service_proto in enumerate(file_proto.service):
        file_descriptor.services_by_name[service_proto.name] = (
            self._MakeServiceDescriptor(service_proto, index, scope,
                                        file_proto.package, file_descriptor))

      self.Add(file_proto)
      self._file_descriptors[file_proto.name] = file_descriptor

    return self._file_descriptors[file_proto.name]

  def _ConvertMessageDescriptor(self, desc_proto, package=None, file_desc=None,
                                scope=None, syntax=None):
    """Adds the proto to the pool in the specified package.

    Args:
      desc_proto: The descriptor_pb2.DescriptorProto protobuf message.
      package: The package the proto should be located in.
      file_desc: The file containing this message.
      scope: Dict mapping short and full symbols to message and enum types.
      syntax: string indicating syntax of the file ("proto2" or "proto3")

    Returns:
      The added descriptor.
    """

    if package:
      desc_name = '.'.join((package, desc_proto.name))
    else:
      desc_name = desc_proto.name

    if file_desc is None:
      file_name = None
    else:
      file_name = file_desc.name

    if scope is None:
      scope = {}

    nested = [
        self._ConvertMessageDescriptor(
            nested, desc_name, file_desc, scope, syntax)
        for nested in desc_proto.nested_type]
    enums = [
        self._ConvertEnumDescriptor(enum, desc_name, file_desc, None, scope)
        for enum in desc_proto.enum_type]
    fields = [self._MakeFieldDescriptor(field, desc_name, index, file_desc)
              for index, field in enumerate(desc_proto.field)]
    extensions = [
        self._MakeFieldDescriptor(extension, desc_name, index, file_desc,
                                  is_extension=True)
        for index, extension in enumerate(desc_proto.extension)]
    oneofs = [
        descriptor.OneofDescriptor(desc.name, '.'.join((desc_name, desc.name)),
                                   index, None, [], desc.options)
        for index, desc in enumerate(desc_proto.oneof_decl)]
    extension_ranges = [(r.start, r.end) for r in desc_proto.extension_range]
    if extension_ranges:
      is_extendable = True
    else:
      is_extendable = False
    desc = descriptor.Descriptor(
        name=desc_proto.name,
        full_name=desc_name,
        filename=file_name,
        containing_type=None,
        fields=fields,
        oneofs=oneofs,
        nested_types=nested,
        enum_types=enums,
        extensions=extensions,
        options=_OptionsOrNone(desc_proto),
        is_extendable=is_extendable,
        extension_ranges=extension_ranges,
        file=file_desc,
        serialized_start=None,
        serialized_end=None,
        syntax=syntax)
    for nested in desc.nested_types:
      nested.containing_type = desc
    for enum in desc.enum_types:
      enum.containing_type = desc
    for field_index, field_desc in enumerate(desc_proto.field):
      if field_desc.HasField('oneof_index'):
        oneof_index = field_desc.oneof_index
        oneofs[oneof_index].fields.append(fields[field_index])
        fields[field_index].containing_oneof = oneofs[oneof_index]

    scope[_PrefixWithDot(desc_name)] = desc
    self._descriptors[desc_name] = desc
    return desc

  def _ConvertEnumDescriptor(self, enum_proto, package=None, file_desc=None,
                             containing_type=None, scope=None):
    """Make a protobuf EnumDescriptor given an EnumDescriptorProto protobuf.

    Args:
      enum_proto: The descriptor_pb2.EnumDescriptorProto protobuf message.
      package: Optional package name for the new message EnumDescriptor.
      file_desc: The file containing the enum descriptor.
      containing_type: The type containing this enum.
      scope: Scope containing available types.

    Returns:
      The added descriptor
    """

    if package:
      enum_name = '.'.join((package, enum_proto.name))
    else:
      enum_name = enum_proto.name

    if file_desc is None:
      file_name = None
    else:
      file_name = file_desc.name

    values = [self._MakeEnumValueDescriptor(value, index)
              for index, value in enumerate(enum_proto.value)]
    desc = descriptor.EnumDescriptor(name=enum_proto.name,
                                     full_name=enum_name,
                                     filename=file_name,
                                     file=file_desc,
                                     values=values,
                                     containing_type=containing_type,
                                     options=_OptionsOrNone(enum_proto))
    scope['.%s' % enum_name] = desc
    self._enum_descriptors[enum_name] = desc
    return desc

  def _MakeFieldDescriptor(self, field_proto, message_name, index,
                           file_desc, is_extension=False):
    """Creates a field descriptor from a FieldDescriptorProto.

    For message and enum type fields, this method will do a look up
    in the pool for the appropriate descriptor for that type. If it
    is unavailable, it will fall back to the _source function to
    create it. If this type is still unavailable, construction will
    fail.

    Args:
      field_proto: The proto describing the field.
      message_name: The name of the containing message.
      index: Index of the field
      file_desc: The file containing the field descriptor.
      is_extension: Indication that this field is for an extension.

    Returns:
      An initialized FieldDescriptor object
    """

    if message_name:
      full_name = '.'.join((message_name, field_proto.name))
    else:
      full_name = field_proto.name

    return descriptor.FieldDescriptor(
        name=field_proto.name,
        full_name=full_name,
        index=index,
        number=field_proto.number,
        type=field_proto.type,
        cpp_type=None,
        message_type=None,
        enum_type=None,
        containing_type=None,
        label=field_proto.label,
        has_default_value=False,
        default_value=None,
        is_extension=is_extension,
        extension_scope=None,
        options=_OptionsOrNone(field_proto),
        file=file_desc)

  def _SetAllFieldTypes(self, package, desc_proto, scope):
    """Sets all the descriptor's fields's types.

    This method also sets the containing types on any extensions.

    Args:
      package: The current package of desc_proto.
      desc_proto: The message descriptor to update.
      scope: Enclosing scope of available types.
    """

    package = _PrefixWithDot(package)

    main_desc = self._GetTypeFromScope(package, desc_proto.name, scope)

    if package == '.':
      nested_package = _PrefixWithDot(desc_proto.name)
    else:
      nested_package = '.'.join([package, desc_proto.name])

    for field_proto, field_desc in zip(desc_proto.field, main_desc.fields):
      self._SetFieldType(field_proto, field_desc, nested_package, scope)

    for extension_proto, extension_desc in (
        zip(desc_proto.extension, main_desc.extensions)):
      extension_desc.containing_type = self._GetTypeFromScope(
          nested_package, extension_proto.extendee, scope)
      self._SetFieldType(extension_proto, extension_desc, nested_package, scope)

    for nested_type in desc_proto.nested_type:
      self._SetAllFieldTypes(nested_package, nested_type, scope)

  def _SetFieldType(self, field_proto, field_desc, package, scope):
    """Sets the field's type, cpp_type, message_type and enum_type.

    Args:
      field_proto: Data about the field in proto format.
      field_desc: The descriptor to modiy.
      package: The package the field's container is in.
      scope: Enclosing scope of available types.
    """
    if field_proto.type_name:
      desc = self._GetTypeFromScope(package, field_proto.type_name, scope)
    else:
      desc = None

    if not field_proto.HasField('type'):
      if isinstance(desc, descriptor.Descriptor):
        field_proto.type = descriptor.FieldDescriptor.TYPE_MESSAGE
      else:
        field_proto.type = descriptor.FieldDescriptor.TYPE_ENUM

    field_desc.cpp_type = descriptor.FieldDescriptor.ProtoTypeToCppProtoType(
        field_proto.type)

    if (field_proto.type == descriptor.FieldDescriptor.TYPE_MESSAGE
        or field_proto.type == descriptor.FieldDescriptor.TYPE_GROUP):
      field_desc.message_type = desc

    if field_proto.type == descriptor.FieldDescriptor.TYPE_ENUM:
      field_desc.enum_type = desc

    if field_proto.label == descriptor.FieldDescriptor.LABEL_REPEATED:
      field_desc.has_default_value = False
      field_desc.default_value = []
    elif field_proto.HasField('default_value'):
      field_desc.has_default_value = True
      if (field_proto.type == descriptor.FieldDescriptor.TYPE_DOUBLE or
          field_proto.type == descriptor.FieldDescriptor.TYPE_FLOAT):
        field_desc.default_value = float(field_proto.default_value)
      elif field_proto.type == descriptor.FieldDescriptor.TYPE_STRING:
        field_desc.default_value = field_proto.default_value
      elif field_proto.type == descriptor.FieldDescriptor.TYPE_BOOL:
        field_desc.default_value = field_proto.default_value.lower() == 'true'
      elif field_proto.type == descriptor.FieldDescriptor.TYPE_ENUM:
        field_desc.default_value = field_desc.enum_type.values_by_name[
            field_proto.default_value].number
      elif field_proto.type == descriptor.FieldDescriptor.TYPE_BYTES:
        field_desc.default_value = text_encoding.CUnescape(
            field_proto.default_value)
      else:
        # All other types are of the "int" type.
        field_desc.default_value = int(field_proto.default_value)
    else:
      field_desc.has_default_value = False
      if (field_proto.type == descriptor.FieldDescriptor.TYPE_DOUBLE or
          field_proto.type == descriptor.FieldDescriptor.TYPE_FLOAT):
        field_desc.default_value = 0.0
      elif field_proto.type == descriptor.FieldDescriptor.TYPE_STRING:
        field_desc.default_value = u''
      elif field_proto.type == descriptor.FieldDescriptor.TYPE_BOOL:
        field_desc.default_value = False
      elif field_proto.type == descriptor.FieldDescriptor.TYPE_ENUM:
        field_desc.default_value = field_desc.enum_type.values[0].number
      elif field_proto.type == descriptor.FieldDescriptor.TYPE_BYTES:
        field_desc.default_value = b''
      else:
        # All other types are of the "int" type.
        field_desc.default_value = 0

    field_desc.type = field_proto.type

  def _MakeEnumValueDescriptor(self, value_proto, index):
    """Creates a enum value descriptor object from a enum value proto.

    Args:
      value_proto: The proto describing the enum value.
      index: The index of the enum value.

    Returns:
      An initialized EnumValueDescriptor object.
    """

    return descriptor.EnumValueDescriptor(
        name=value_proto.name,
        index=index,
        number=value_proto.number,
        options=_OptionsOrNone(value_proto),
        type=None)

  def _MakeServiceDescriptor(self, service_proto, service_index, scope,
                             package, file_desc):
    """Make a protobuf ServiceDescriptor given a ServiceDescriptorProto.

    Args:
      service_proto: The descriptor_pb2.ServiceDescriptorProto protobuf message.
      service_index: The index of the service in the File.
      scope: Dict mapping short and full symbols to message and enum types.
      package: Optional package name for the new message EnumDescriptor.
      file_desc: The file containing the service descriptor.

    Returns:
      The added descriptor.
    """

    if package:
      service_name = '.'.join((package, service_proto.name))
    else:
      service_name = service_proto.name

    methods = [self._MakeMethodDescriptor(method_proto, service_name, package,
                                          scope, index)
               for index, method_proto in enumerate(service_proto.method)]
    desc = descriptor.ServiceDescriptor(name=service_proto.name,
                                        full_name=service_name,
                                        index=service_index,
                                        methods=methods,
                                        options=_OptionsOrNone(service_proto),
                                        file=file_desc)
    self._service_descriptors[service_name] = desc
    return desc

  def _MakeMethodDescriptor(self, method_proto, service_name, package, scope,
                            index):
    """Creates a method descriptor from a MethodDescriptorProto.

    Args:
      method_proto: The proto describing the method.
      service_name: The name of the containing service.
      package: Optional package name to look up for types.
      scope: Scope containing available types.
      index: Index of the method in the service.

    Returns:
      An initialized MethodDescriptor object.
    """
    full_name = '.'.join((service_name, method_proto.name))
    input_type = self._GetTypeFromScope(
        package, method_proto.input_type, scope)
    output_type = self._GetTypeFromScope(
        package, method_proto.output_type, scope)
    return descriptor.MethodDescriptor(name=method_proto.name,
                                       full_name=full_name,
                                       index=index,
                                       containing_service=None,
                                       input_type=input_type,
                                       output_type=output_type,
                                       options=_OptionsOrNone(method_proto))

  def _ExtractSymbols(self, descriptors):
    """Pulls out all the symbols from descriptor protos.

    Args:
      descriptors: The messages to extract descriptors from.
    Yields:
      A two element tuple of the type name and descriptor object.
    """

    for desc in descriptors:
      yield (_PrefixWithDot(desc.full_name), desc)
      for symbol in self._ExtractSymbols(desc.nested_types):
        yield symbol
      for enum in desc.enum_types:
        yield (_PrefixWithDot(enum.full_name), enum)

  def _GetDeps(self, dependencies):
    """Recursively finds dependencies for file protos.

    Args:
      dependencies: The names of the files being depended on.

    Yields:
      Each direct and indirect dependency.
    """

    for dependency in dependencies:
      dep_desc = self.FindFileByName(dependency)
      yield dep_desc
      for parent_dep in dep_desc.dependencies:
        yield parent_dep

  def _GetTypeFromScope(self, package, type_name, scope):
    """Finds a given type name in the current scope.

    Args:
      package: The package the proto should be located in.
      type_name: The name of the type to be found in the scope.
      scope: Dict mapping short and full symbols to message and enum types.

    Returns:
      The descriptor for the requested type.
    """
    if type_name not in scope:
      components = _PrefixWithDot(package).split('.')
      while components:
        possible_match = '.'.join(components + [type_name])
        if possible_match in scope:
          type_name = possible_match
          break
        else:
          components.pop(-1)
    return scope[type_name]


def _PrefixWithDot(name):
  return name if name.startswith('.') else '.%s' % name


if _USE_C_DESCRIPTORS:
  # TODO(amauryfa): This pool could be constructed from Python code, when we
  # support a flag like 'use_cpp_generated_pool=True'.
  # pylint: disable=protected-access
  _DEFAULT = descriptor._message.default_pool
else:
  _DEFAULT = DescriptorPool()


def Default():
  return _DEFAULT
PK��\�=��protobuf/any_test_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/any_test.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/any_test.proto',
  package='protobuf_unittest',
  syntax='proto3',
  serialized_pb=_b('\n\x1egoogle/protobuf/any_test.proto\x12\x11protobuf_unittest\x1a\x19google/protobuf/any.proto\"y\n\x07TestAny\x12\x13\n\x0bint32_value\x18\x01 \x01(\x05\x12\'\n\tany_value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x30\n\x12repeated_any_value\x18\x03 \x03(\x0b\x32\x14.google.protobuf.Anyb\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,])




_TESTANY = _descriptor.Descriptor(
  name='TestAny',
  full_name='protobuf_unittest.TestAny',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='int32_value', full_name='protobuf_unittest.TestAny.int32_value', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='any_value', full_name='protobuf_unittest.TestAny.any_value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_any_value', full_name='protobuf_unittest.TestAny.repeated_any_value', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=80,
  serialized_end=201,
)

_TESTANY.fields_by_name['any_value'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_TESTANY.fields_by_name['repeated_any_value'].message_type = google_dot_protobuf_dot_any__pb2._ANY
DESCRIPTOR.message_types_by_name['TestAny'] = _TESTANY
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestAny = _reflection.GeneratedProtocolMessageType('TestAny', (_message.Message,), dict(
  DESCRIPTOR = _TESTANY,
  __module__ = 'google.protobuf.any_test_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestAny)
  ))
_sym_db.RegisterMessage(TestAny)


# @@protoc_insertion_point(module_scope)
PK��\	�t�����protobuf/text_format.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Contains routines for printing protocol messages in text format.

Simple usage example:

  # Create a proto object and serialize it to a text proto string.
  message = my_proto_pb2.MyMessage(foo='bar')
  text_proto = text_format.MessageToString(message)

  # Parse a text proto string.
  message = text_format.Parse(text_proto, my_proto_pb2.MyMessage())
"""

__author__ = 'kenton@google.com (Kenton Varda)'

import io
import re

import six

if six.PY3:
  long = int  # pylint: disable=redefined-builtin,invalid-name

# pylint: disable=g-import-not-at-top
from google.protobuf.internal import type_checkers
from google.protobuf import descriptor
from google.protobuf import text_encoding

__all__ = ['MessageToString', 'PrintMessage', 'PrintField', 'PrintFieldValue',
           'Merge']

_INTEGER_CHECKERS = (type_checkers.Uint32ValueChecker(),
                     type_checkers.Int32ValueChecker(),
                     type_checkers.Uint64ValueChecker(),
                     type_checkers.Int64ValueChecker())
_FLOAT_INFINITY = re.compile('-?inf(?:inity)?f?', re.IGNORECASE)
_FLOAT_NAN = re.compile('nanf?', re.IGNORECASE)
_FLOAT_TYPES = frozenset([descriptor.FieldDescriptor.CPPTYPE_FLOAT,
                          descriptor.FieldDescriptor.CPPTYPE_DOUBLE])
_QUOTES = frozenset(("'", '"'))
_ANY_FULL_TYPE_NAME = 'google.protobuf.Any'


class Error(Exception):
  """Top-level module error for text_format."""


class ParseError(Error):
  """Thrown in case of text parsing or tokenizing error."""

  def __init__(self, message=None, line=None, column=None):
    if message is not None and line is not None:
      loc = str(line)
      if column is not None:
        loc += ':{0}'.format(column)
      message = '{0} : {1}'.format(loc, message)
    if message is not None:
      super(ParseError, self).__init__(message)
    else:
      super(ParseError, self).__init__()
    self._line = line
    self._column = column

  def GetLine(self):
    return self._line

  def GetColumn(self):
    return self._column


class TextWriter(object):

  def __init__(self, as_utf8):
    if six.PY2:
      self._writer = io.BytesIO()
    else:
      self._writer = io.StringIO()

  def write(self, val):
    if six.PY2:
      if isinstance(val, six.text_type):
        val = val.encode('utf-8')
    return self._writer.write(val)

  def close(self):
    return self._writer.close()

  def getvalue(self):
    return self._writer.getvalue()


def MessageToString(message,
                    as_utf8=False,
                    as_one_line=False,
                    pointy_brackets=False,
                    use_index_order=False,
                    float_format=None,
                    use_field_number=False,
                    descriptor_pool=None,
                    indent=0,
                    message_formatter=None):
  """Convert protobuf message to text format.

  Floating point values can be formatted compactly with 15 digits of
  precision (which is the most that IEEE 754 "double" can guarantee)
  using float_format='.15g'. To ensure that converting to text and back to a
  proto will result in an identical value, float_format='.17g' should be used.

  Args:
    message: The protocol buffers message.
    as_utf8: Produce text output in UTF8 format.
    as_one_line: Don't introduce newlines between fields.
    pointy_brackets: If True, use angle brackets instead of curly braces for
      nesting.
    use_index_order: If True, print fields of a proto message using the order
      defined in source code instead of the field number. By default, use the
      field number order.
    float_format: If set, use this to specify floating point number formatting
      (per the "Format Specification Mini-Language"); otherwise, str() is used.
    use_field_number: If True, print field numbers instead of names.
    descriptor_pool: A DescriptorPool used to resolve Any types.
    indent: The indent level, in terms of spaces, for pretty print.
    message_formatter: A function(message, indent, as_one_line): unicode|None
      to custom format selected sub-messages (usually based on message type).
      Use to pretty print parts of the protobuf for easier diffing.

  Returns:
    A string of the text formatted protocol buffer message.
  """
  out = TextWriter(as_utf8)
  printer = _Printer(out, indent, as_utf8, as_one_line, pointy_brackets,
                     use_index_order, float_format, use_field_number,
                     descriptor_pool, message_formatter)
  printer.PrintMessage(message)
  result = out.getvalue()
  out.close()
  if as_one_line:
    return result.rstrip()
  return result


def _IsMapEntry(field):
  return (field.type == descriptor.FieldDescriptor.TYPE_MESSAGE and
          field.message_type.has_options and
          field.message_type.GetOptions().map_entry)


def PrintMessage(message,
                 out,
                 indent=0,
                 as_utf8=False,
                 as_one_line=False,
                 pointy_brackets=False,
                 use_index_order=False,
                 float_format=None,
                 use_field_number=False,
                 descriptor_pool=None,
                 message_formatter=None):
  printer = _Printer(out, indent, as_utf8, as_one_line, pointy_brackets,
                     use_index_order, float_format, use_field_number,
                     descriptor_pool, message_formatter)
  printer.PrintMessage(message)


def PrintField(field,
               value,
               out,
               indent=0,
               as_utf8=False,
               as_one_line=False,
               pointy_brackets=False,
               use_index_order=False,
               float_format=None,
               message_formatter=None):
  """Print a single field name/value pair."""
  printer = _Printer(out, indent, as_utf8, as_one_line, pointy_brackets,
                     use_index_order, float_format, message_formatter)
  printer.PrintField(field, value)


def PrintFieldValue(field,
                    value,
                    out,
                    indent=0,
                    as_utf8=False,
                    as_one_line=False,
                    pointy_brackets=False,
                    use_index_order=False,
                    float_format=None,
                    message_formatter=None):
  """Print a single field value (not including name)."""
  printer = _Printer(out, indent, as_utf8, as_one_line, pointy_brackets,
                     use_index_order, float_format, message_formatter)
  printer.PrintFieldValue(field, value)


def _BuildMessageFromTypeName(type_name, descriptor_pool):
  """Returns a protobuf message instance.

  Args:
    type_name: Fully-qualified protobuf  message type name string.
    descriptor_pool: DescriptorPool instance.

  Returns:
    A Message instance of type matching type_name, or None if the a Descriptor
    wasn't found matching type_name.
  """
  # pylint: disable=g-import-not-at-top
  if descriptor_pool is None:
    from google.protobuf import descriptor_pool as pool_mod
    descriptor_pool = pool_mod.Default()
  from google.protobuf import symbol_database
  database = symbol_database.Default()
  try:
    message_descriptor = descriptor_pool.FindMessageTypeByName(type_name)
  except KeyError:
    return None
  message_type = database.GetPrototype(message_descriptor)
  return message_type()


class _Printer(object):
  """Text format printer for protocol message."""

  def __init__(self,
               out,
               indent=0,
               as_utf8=False,
               as_one_line=False,
               pointy_brackets=False,
               use_index_order=False,
               float_format=None,
               use_field_number=False,
               descriptor_pool=None,
               message_formatter=None):
    """Initialize the Printer.

    Floating point values can be formatted compactly with 15 digits of
    precision (which is the most that IEEE 754 "double" can guarantee)
    using float_format='.15g'. To ensure that converting to text and back to a
    proto will result in an identical value, float_format='.17g' should be used.

    Args:
      out: To record the text format result.
      indent: The indent level for pretty print.
      as_utf8: Produce text output in UTF8 format.
      as_one_line: Don't introduce newlines between fields.
      pointy_brackets: If True, use angle brackets instead of curly braces for
        nesting.
      use_index_order: If True, print fields of a proto message using the order
        defined in source code instead of the field number. By default, use the
        field number order.
      float_format: If set, use this to specify floating point number formatting
        (per the "Format Specification Mini-Language"); otherwise, str() is
        used.
      use_field_number: If True, print field numbers instead of names.
      descriptor_pool: A DescriptorPool used to resolve Any types.
      message_formatter: A function(message, indent, as_one_line): unicode|None
        to custom format selected sub-messages (usually based on message type).
        Use to pretty print parts of the protobuf for easier diffing.
    """
    self.out = out
    self.indent = indent
    self.as_utf8 = as_utf8
    self.as_one_line = as_one_line
    self.pointy_brackets = pointy_brackets
    self.use_index_order = use_index_order
    self.float_format = float_format
    self.use_field_number = use_field_number
    self.descriptor_pool = descriptor_pool
    self.message_formatter = message_formatter

  def _TryPrintAsAnyMessage(self, message):
    """Serializes if message is a google.protobuf.Any field."""
    packed_message = _BuildMessageFromTypeName(message.TypeName(),
                                               self.descriptor_pool)
    if packed_message:
      packed_message.MergeFromString(message.value)
      self.out.write('%s[%s]' % (self.indent * ' ', message.type_url))
      self._PrintMessageFieldValue(packed_message)
      self.out.write(' ' if self.as_one_line else '\n')
      return True
    else:
      return False

  def _TryCustomFormatMessage(self, message):
    formatted = self.message_formatter(message, self.indent, self.as_one_line)
    if formatted is None:
      return False

    out = self.out
    out.write(' ' * self.indent)
    out.write(formatted)
    out.write(' ' if self.as_one_line else '\n')
    return True

  def PrintMessage(self, message):
    """Convert protobuf message to text format.

    Args:
      message: The protocol buffers message.
    """
    if self.message_formatter and self._TryCustomFormatMessage(message):
      return
    if (message.DESCRIPTOR.full_name == _ANY_FULL_TYPE_NAME and
        self._TryPrintAsAnyMessage(message)):
      return
    fields = message.ListFields()
    if self.use_index_order:
      fields.sort(key=lambda x: x[0].index)
    for field, value in fields:
      if _IsMapEntry(field):
        for key in sorted(value):
          # This is slow for maps with submessage entires because it copies the
          # entire tree.  Unfortunately this would take significant refactoring
          # of this file to work around.
          #
          # TODO(haberman): refactor and optimize if this becomes an issue.
          entry_submsg = value.GetEntryClass()(key=key, value=value[key])
          self.PrintField(field, entry_submsg)
      elif field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
        for element in value:
          self.PrintField(field, element)
      else:
        self.PrintField(field, value)

  def PrintField(self, field, value):
    """Print a single field name/value pair."""
    out = self.out
    out.write(' ' * self.indent)
    if self.use_field_number:
      out.write(str(field.number))
    else:
      if field.is_extension:
        out.write('[')
        if (field.containing_type.GetOptions().message_set_wire_format and
            field.type == descriptor.FieldDescriptor.TYPE_MESSAGE and
            field.label == descriptor.FieldDescriptor.LABEL_OPTIONAL):
          out.write(field.message_type.full_name)
        else:
          out.write(field.full_name)
        out.write(']')
      elif field.type == descriptor.FieldDescriptor.TYPE_GROUP:
        # For groups, use the capitalized name.
        out.write(field.message_type.name)
      else:
        out.write(field.name)

    if field.cpp_type != descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
      # The colon is optional in this case, but our cross-language golden files
      # don't include it.
      out.write(': ')

    self.PrintFieldValue(field, value)
    if self.as_one_line:
      out.write(' ')
    else:
      out.write('\n')

  def _PrintMessageFieldValue(self, value):
    if self.pointy_brackets:
      openb = '<'
      closeb = '>'
    else:
      openb = '{'
      closeb = '}'

    if self.as_one_line:
      self.out.write(' %s ' % openb)
      self.PrintMessage(value)
      self.out.write(closeb)
    else:
      self.out.write(' %s\n' % openb)
      self.indent += 2
      self.PrintMessage(value)
      self.indent -= 2
      self.out.write(' ' * self.indent + closeb)

  def PrintFieldValue(self, field, value):
    """Print a single field value (not including name).

    For repeated fields, the value should be a single element.

    Args:
      field: The descriptor of the field to be printed.
      value: The value of the field.
    """
    out = self.out
    if field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
      self._PrintMessageFieldValue(value)
    elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_ENUM:
      enum_value = field.enum_type.values_by_number.get(value, None)
      if enum_value is not None:
        out.write(enum_value.name)
      else:
        out.write(str(value))
    elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_STRING:
      out.write('\"')
      if isinstance(value, six.text_type):
        out_value = value.encode('utf-8')
      else:
        out_value = value
      if field.type == descriptor.FieldDescriptor.TYPE_BYTES:
        # We need to escape non-UTF8 chars in TYPE_BYTES field.
        out_as_utf8 = False
      else:
        out_as_utf8 = self.as_utf8
      out.write(text_encoding.CEscape(out_value, out_as_utf8))
      out.write('\"')
    elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_BOOL:
      if value:
        out.write('true')
      else:
        out.write('false')
    elif field.cpp_type in _FLOAT_TYPES and self.float_format is not None:
      out.write('{1:{0}}'.format(self.float_format, value))
    else:
      out.write(str(value))


def Parse(text,
          message,
          allow_unknown_extension=False,
          allow_field_number=False,
          descriptor_pool=None):
  """Parses a text representation of a protocol message into a message.

  NOTE: for historical reasons this function does not clear the input
  message. This is different from what the binary msg.ParseFrom(...) does.

  Example
    a = MyProto()
    a.repeated_field.append('test')
    b = MyProto()

    text_format.Parse(repr(a), b)
    text_format.Parse(repr(a), b) # repeated_field contains ["test", "test"]

    # Binary version:
    b.ParseFromString(a.SerializeToString()) # repeated_field is now "test"

  Caller is responsible for clearing the message as needed.

  Args:
    text: Message text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  """
  if not isinstance(text, str):
    if six.PY3:
      text = text.decode('utf-8')
    else:
      text = text.encode('utf-8')
  return ParseLines(text.split('\n'),
                    message,
                    allow_unknown_extension,
                    allow_field_number,
                    descriptor_pool=descriptor_pool)


def Merge(text,
          message,
          allow_unknown_extension=False,
          allow_field_number=False,
          descriptor_pool=None):
  """Parses a text representation of a protocol message into a message.

  Like Parse(), but allows repeated values for a non-repeated field, and uses
  the last one.

  Args:
    text: Message text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  """
  if not isinstance(text, str):
    if six.PY3:
      text = text.decode('utf-8')
    else:
      text = text.encode('utf-8')
  return MergeLines(
      text.split('\n'),
      message,
      allow_unknown_extension,
      allow_field_number,
      descriptor_pool=descriptor_pool)


def ParseLines(lines,
               message,
               allow_unknown_extension=False,
               allow_field_number=False,
               descriptor_pool=None):
  """Parses a text representation of a protocol message into a message.

  Args:
    lines: An iterable of lines of a message's text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  """
  parser = _Parser(allow_unknown_extension,
                   allow_field_number,
                   descriptor_pool=descriptor_pool)
  return parser.ParseLines(lines, message)


def MergeLines(lines,
               message,
               allow_unknown_extension=False,
               allow_field_number=False,
               descriptor_pool=None):
  """Parses a text representation of a protocol message into a message.

  Args:
    lines: An iterable of lines of a message's text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  """
  parser = _Parser(allow_unknown_extension,
                   allow_field_number,
                   descriptor_pool=descriptor_pool)
  return parser.MergeLines(lines, message)


class _Parser(object):
  """Text format parser for protocol message."""

  def __init__(self,
               allow_unknown_extension=False,
               allow_field_number=False,
               descriptor_pool=None):
    self.allow_unknown_extension = allow_unknown_extension
    self.allow_field_number = allow_field_number
    self.descriptor_pool = descriptor_pool

  def ParseFromString(self, text, message):
    """Parses a text representation of a protocol message into a message."""
    if not isinstance(text, str):
      text = text.decode('utf-8')
    return self.ParseLines(text.split('\n'), message)

  def ParseLines(self, lines, message):
    """Parses a text representation of a protocol message into a message."""
    self._allow_multiple_scalars = False
    self._ParseOrMerge(lines, message)
    return message

  def MergeFromString(self, text, message):
    """Merges a text representation of a protocol message into a message."""
    return self._MergeLines(text.split('\n'), message)

  def MergeLines(self, lines, message):
    """Merges a text representation of a protocol message into a message."""
    self._allow_multiple_scalars = True
    self._ParseOrMerge(lines, message)
    return message

  def _ParseOrMerge(self, lines, message):
    """Converts a text representation of a protocol message into a message.

    Args:
      lines: Lines of a message's text representation.
      message: A protocol buffer message to merge into.

    Raises:
      ParseError: On text parsing problems.
    """
    tokenizer = Tokenizer(lines)
    while not tokenizer.AtEnd():
      self._MergeField(tokenizer, message)

  def _MergeField(self, tokenizer, message):
    """Merges a single protocol message field into a message.

    Args:
      tokenizer: A tokenizer to parse the field name and values.
      message: A protocol message to record the data.

    Raises:
      ParseError: In case of text parsing problems.
    """
    message_descriptor = message.DESCRIPTOR
    if tokenizer.TryConsume('['):
      name = [tokenizer.ConsumeIdentifier()]
      while tokenizer.TryConsume('.'):
        name.append(tokenizer.ConsumeIdentifier())
      name = '.'.join(name)

      if not message_descriptor.is_extendable:
        raise tokenizer.ParseErrorPreviousToken(
            'Message type "%s" does not have extensions.' %
            message_descriptor.full_name)
      # pylint: disable=protected-access
      field = message.Extensions._FindExtensionByName(name)
      # pylint: enable=protected-access
      if not field:
        if self.allow_unknown_extension:
          field = None
        else:
          raise tokenizer.ParseErrorPreviousToken(
              'Extension "%s" not registered. '
              'Did you import the _pb2 module which defines it? '
              'If you are trying to place the extension in the MessageSet '
              'field of another message that is in an Any or MessageSet field, '
              'that message\'s _pb2 module must be imported as well' % name)
      elif message_descriptor != field.containing_type:
        raise tokenizer.ParseErrorPreviousToken(
            'Extension "%s" does not extend message type "%s".' %
            (name, message_descriptor.full_name))

      tokenizer.Consume(']')

    else:
      name = tokenizer.ConsumeIdentifierOrNumber()
      if self.allow_field_number and name.isdigit():
        number = ParseInteger(name, True, True)
        field = message_descriptor.fields_by_number.get(number, None)
        if not field and message_descriptor.is_extendable:
          field = message.Extensions._FindExtensionByNumber(number)
      else:
        field = message_descriptor.fields_by_name.get(name, None)

        # Group names are expected to be capitalized as they appear in the
        # .proto file, which actually matches their type names, not their field
        # names.
        if not field:
          field = message_descriptor.fields_by_name.get(name.lower(), None)
          if field and field.type != descriptor.FieldDescriptor.TYPE_GROUP:
            field = None

        if (field and field.type == descriptor.FieldDescriptor.TYPE_GROUP and
            field.message_type.name != name):
          field = None

      if not field:
        raise tokenizer.ParseErrorPreviousToken(
            'Message type "%s" has no field named "%s".' %
            (message_descriptor.full_name, name))

    if field:
      if not self._allow_multiple_scalars and field.containing_oneof:
        # Check if there's a different field set in this oneof.
        # Note that we ignore the case if the same field was set before, and we
        # apply _allow_multiple_scalars to non-scalar fields as well.
        which_oneof = message.WhichOneof(field.containing_oneof.name)
        if which_oneof is not None and which_oneof != field.name:
          raise tokenizer.ParseErrorPreviousToken(
              'Field "%s" is specified along with field "%s", another member '
              'of oneof "%s" for message type "%s".' %
              (field.name, which_oneof, field.containing_oneof.name,
               message_descriptor.full_name))

      if field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
        tokenizer.TryConsume(':')
        merger = self._MergeMessageField
      else:
        tokenizer.Consume(':')
        merger = self._MergeScalarField

      if (field.label == descriptor.FieldDescriptor.LABEL_REPEATED and
          tokenizer.TryConsume('[')):
        # Short repeated format, e.g. "foo: [1, 2, 3]"
        while True:
          merger(tokenizer, message, field)
          if tokenizer.TryConsume(']'):
            break
          tokenizer.Consume(',')

      else:
        merger(tokenizer, message, field)

    else:  # Proto field is unknown.
      assert self.allow_unknown_extension
      _SkipFieldContents(tokenizer)

    # For historical reasons, fields may optionally be separated by commas or
    # semicolons.
    if not tokenizer.TryConsume(','):
      tokenizer.TryConsume(';')

  def _ConsumeAnyTypeUrl(self, tokenizer):
    """Consumes a google.protobuf.Any type URL and returns the type name."""
    # Consume "type.googleapis.com/".
    prefix = [tokenizer.ConsumeIdentifier()]
    tokenizer.Consume('.')
    prefix.append(tokenizer.ConsumeIdentifier())
    tokenizer.Consume('.')
    prefix.append(tokenizer.ConsumeIdentifier())
    tokenizer.Consume('/')
    # Consume the fully-qualified type name.
    name = [tokenizer.ConsumeIdentifier()]
    while tokenizer.TryConsume('.'):
      name.append(tokenizer.ConsumeIdentifier())
    return '.'.join(prefix), '.'.join(name)

  def _MergeMessageField(self, tokenizer, message, field):
    """Merges a single scalar field into a message.

    Args:
      tokenizer: A tokenizer to parse the field value.
      message: The message of which field is a member.
      field: The descriptor of the field to be merged.

    Raises:
      ParseError: In case of text parsing problems.
    """
    is_map_entry = _IsMapEntry(field)

    if tokenizer.TryConsume('<'):
      end_token = '>'
    else:
      tokenizer.Consume('{')
      end_token = '}'

    if (field.message_type.full_name == _ANY_FULL_TYPE_NAME and
        tokenizer.TryConsume('[')):
      type_url_prefix, packed_type_name = self._ConsumeAnyTypeUrl(tokenizer)
      tokenizer.Consume(']')
      tokenizer.TryConsume(':')
      if tokenizer.TryConsume('<'):
        expanded_any_end_token = '>'
      else:
        tokenizer.Consume('{')
        expanded_any_end_token = '}'
      expanded_any_sub_message = _BuildMessageFromTypeName(packed_type_name,
                                                           self.descriptor_pool)
      if not expanded_any_sub_message:
        raise ParseError('Type %s not found in descriptor pool' %
                         packed_type_name)
      while not tokenizer.TryConsume(expanded_any_end_token):
        if tokenizer.AtEnd():
          raise tokenizer.ParseErrorPreviousToken('Expected "%s".' %
                                                  (expanded_any_end_token,))
        self._MergeField(tokenizer, expanded_any_sub_message)
      if field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
        any_message = getattr(message, field.name).add()
      else:
        any_message = getattr(message, field.name)
      any_message.Pack(expanded_any_sub_message,
                       type_url_prefix=type_url_prefix)
    elif field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
      if field.is_extension:
        sub_message = message.Extensions[field].add()
      elif is_map_entry:
        sub_message = getattr(message, field.name).GetEntryClass()()
      else:
        sub_message = getattr(message, field.name).add()
    else:
      if field.is_extension:
        sub_message = message.Extensions[field]
      else:
        sub_message = getattr(message, field.name)
      sub_message.SetInParent()

    while not tokenizer.TryConsume(end_token):
      if tokenizer.AtEnd():
        raise tokenizer.ParseErrorPreviousToken('Expected "%s".' % (end_token,))
      self._MergeField(tokenizer, sub_message)

    if is_map_entry:
      value_cpptype = field.message_type.fields_by_name['value'].cpp_type
      if value_cpptype == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
        value = getattr(message, field.name)[sub_message.key]
        value.MergeFrom(sub_message.value)
      else:
        getattr(message, field.name)[sub_message.key] = sub_message.value

  @staticmethod
  def _IsProto3Syntax(message):
    message_descriptor = message.DESCRIPTOR
    return (hasattr(message_descriptor, 'syntax') and
            message_descriptor.syntax == 'proto3')

  def _MergeScalarField(self, tokenizer, message, field):
    """Merges a single scalar field into a message.

    Args:
      tokenizer: A tokenizer to parse the field value.
      message: A protocol message to record the data.
      field: The descriptor of the field to be merged.

    Raises:
      ParseError: In case of text parsing problems.
      RuntimeError: On runtime errors.
    """
    _ = self.allow_unknown_extension
    value = None

    if field.type in (descriptor.FieldDescriptor.TYPE_INT32,
                      descriptor.FieldDescriptor.TYPE_SINT32,
                      descriptor.FieldDescriptor.TYPE_SFIXED32):
      value = _ConsumeInt32(tokenizer)
    elif field.type in (descriptor.FieldDescriptor.TYPE_INT64,
                        descriptor.FieldDescriptor.TYPE_SINT64,
                        descriptor.FieldDescriptor.TYPE_SFIXED64):
      value = _ConsumeInt64(tokenizer)
    elif field.type in (descriptor.FieldDescriptor.TYPE_UINT32,
                        descriptor.FieldDescriptor.TYPE_FIXED32):
      value = _ConsumeUint32(tokenizer)
    elif field.type in (descriptor.FieldDescriptor.TYPE_UINT64,
                        descriptor.FieldDescriptor.TYPE_FIXED64):
      value = _ConsumeUint64(tokenizer)
    elif field.type in (descriptor.FieldDescriptor.TYPE_FLOAT,
                        descriptor.FieldDescriptor.TYPE_DOUBLE):
      value = tokenizer.ConsumeFloat()
    elif field.type == descriptor.FieldDescriptor.TYPE_BOOL:
      value = tokenizer.ConsumeBool()
    elif field.type == descriptor.FieldDescriptor.TYPE_STRING:
      value = tokenizer.ConsumeString()
    elif field.type == descriptor.FieldDescriptor.TYPE_BYTES:
      value = tokenizer.ConsumeByteString()
    elif field.type == descriptor.FieldDescriptor.TYPE_ENUM:
      value = tokenizer.ConsumeEnum(field)
    else:
      raise RuntimeError('Unknown field type %d' % field.type)

    if field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
      if field.is_extension:
        message.Extensions[field].append(value)
      else:
        getattr(message, field.name).append(value)
    else:
      # Proto3 doesn't represent presence so we can't test if multiple scalars
      # have occurred. We have to allow them.
      can_check_presence = not self._IsProto3Syntax(message)
      if field.is_extension:
        if (not self._allow_multiple_scalars and can_check_presence and
            message.HasExtension(field)):
          raise tokenizer.ParseErrorPreviousToken(
              'Message type "%s" should not have multiple "%s" extensions.' %
              (message.DESCRIPTOR.full_name, field.full_name))
        else:
          message.Extensions[field] = value
      else:
        if (not self._allow_multiple_scalars and can_check_presence and
            message.HasField(field.name)):
          raise tokenizer.ParseErrorPreviousToken(
              'Message type "%s" should not have multiple "%s" fields.' %
              (message.DESCRIPTOR.full_name, field.name))
        else:
          setattr(message, field.name, value)


def _SkipFieldContents(tokenizer):
  """Skips over contents (value or message) of a field.

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  """
  # Try to guess the type of this field.
  # If this field is not a message, there should be a ":" between the
  # field name and the field value and also the field value should not
  # start with "{" or "<" which indicates the beginning of a message body.
  # If there is no ":" or there is a "{" or "<" after ":", this field has
  # to be a message or the input is ill-formed.
  if tokenizer.TryConsume(':') and not tokenizer.LookingAt(
      '{') and not tokenizer.LookingAt('<'):
    _SkipFieldValue(tokenizer)
  else:
    _SkipFieldMessage(tokenizer)


def _SkipField(tokenizer):
  """Skips over a complete field (name and value/message).

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  """
  if tokenizer.TryConsume('['):
    # Consume extension name.
    tokenizer.ConsumeIdentifier()
    while tokenizer.TryConsume('.'):
      tokenizer.ConsumeIdentifier()
    tokenizer.Consume(']')
  else:
    tokenizer.ConsumeIdentifier()

  _SkipFieldContents(tokenizer)

  # For historical reasons, fields may optionally be separated by commas or
  # semicolons.
  if not tokenizer.TryConsume(','):
    tokenizer.TryConsume(';')


def _SkipFieldMessage(tokenizer):
  """Skips over a field message.

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  """

  if tokenizer.TryConsume('<'):
    delimiter = '>'
  else:
    tokenizer.Consume('{')
    delimiter = '}'

  while not tokenizer.LookingAt('>') and not tokenizer.LookingAt('}'):
    _SkipField(tokenizer)

  tokenizer.Consume(delimiter)


def _SkipFieldValue(tokenizer):
  """Skips over a field value.

  Args:
    tokenizer: A tokenizer to parse the field name and values.

  Raises:
    ParseError: In case an invalid field value is found.
  """
  # String/bytes tokens can come in multiple adjacent string literals.
  # If we can consume one, consume as many as we can.
  if tokenizer.TryConsumeByteString():
    while tokenizer.TryConsumeByteString():
      pass
    return

  if (not tokenizer.TryConsumeIdentifier() and
      not _TryConsumeInt64(tokenizer) and not _TryConsumeUint64(tokenizer) and
      not tokenizer.TryConsumeFloat()):
    raise ParseError('Invalid field value: ' + tokenizer.token)


class Tokenizer(object):
  """Protocol buffer text representation tokenizer.

  This class handles the lower level string parsing by splitting it into
  meaningful tokens.

  It was directly ported from the Java protocol buffer API.
  """

  _WHITESPACE = re.compile(r'\s+')
  _COMMENT = re.compile(r'(\s*#.*$)', re.MULTILINE)
  _WHITESPACE_OR_COMMENT = re.compile(r'(\s|(#.*$))+', re.MULTILINE)
  _TOKEN = re.compile('|'.join([
      r'[a-zA-Z_][0-9a-zA-Z_+-]*',  # an identifier
      r'([0-9+-]|(\.[0-9]))[0-9a-zA-Z_.+-]*',  # a number
  ] + [  # quoted str for each quote mark
      r'{qt}([^{qt}\n\\]|\\.)*({qt}|\\?$)'.format(qt=mark) for mark in _QUOTES
  ]))

  _IDENTIFIER = re.compile(r'[^\d\W]\w*')
  _IDENTIFIER_OR_NUMBER = re.compile(r'\w+')

  def __init__(self, lines, skip_comments=True):
    self._position = 0
    self._line = -1
    self._column = 0
    self._token_start = None
    self.token = ''
    self._lines = iter(lines)
    self._current_line = ''
    self._previous_line = 0
    self._previous_column = 0
    self._more_lines = True
    self._skip_comments = skip_comments
    self._whitespace_pattern = (skip_comments and self._WHITESPACE_OR_COMMENT
                                or self._WHITESPACE)
    self._SkipWhitespace()
    self.NextToken()

  def LookingAt(self, token):
    return self.token == token

  def AtEnd(self):
    """Checks the end of the text was reached.

    Returns:
      True iff the end was reached.
    """
    return not self.token

  def _PopLine(self):
    while len(self._current_line) <= self._column:
      try:
        self._current_line = next(self._lines)
      except StopIteration:
        self._current_line = ''
        self._more_lines = False
        return
      else:
        self._line += 1
        self._column = 0

  def _SkipWhitespace(self):
    while True:
      self._PopLine()
      match = self._whitespace_pattern.match(self._current_line, self._column)
      if not match:
        break
      length = len(match.group(0))
      self._column += length

  def TryConsume(self, token):
    """Tries to consume a given piece of text.

    Args:
      token: Text to consume.

    Returns:
      True iff the text was consumed.
    """
    if self.token == token:
      self.NextToken()
      return True
    return False

  def Consume(self, token):
    """Consumes a piece of text.

    Args:
      token: Text to consume.

    Raises:
      ParseError: If the text couldn't be consumed.
    """
    if not self.TryConsume(token):
      raise self.ParseError('Expected "%s".' % token)

  def ConsumeComment(self):
    result = self.token
    if not self._COMMENT.match(result):
      raise self.ParseError('Expected comment.')
    self.NextToken()
    return result

  def ConsumeCommentOrTrailingComment(self):
    """Consumes a comment, returns a 2-tuple (trailing bool, comment str)."""

    # Tokenizer initializes _previous_line and _previous_column to 0. As the
    # tokenizer starts, it looks like there is a previous token on the line.
    just_started = self._line == 0 and self._column == 0

    before_parsing = self._previous_line
    comment = self.ConsumeComment()

    # A trailing comment is a comment on the same line than the previous token.
    trailing = (self._previous_line == before_parsing
                and not just_started)

    return trailing, comment

  def TryConsumeIdentifier(self):
    try:
      self.ConsumeIdentifier()
      return True
    except ParseError:
      return False

  def ConsumeIdentifier(self):
    """Consumes protocol message field identifier.

    Returns:
      Identifier string.

    Raises:
      ParseError: If an identifier couldn't be consumed.
    """
    result = self.token
    if not self._IDENTIFIER.match(result):
      raise self.ParseError('Expected identifier.')
    self.NextToken()
    return result

  def TryConsumeIdentifierOrNumber(self):
    try:
      self.ConsumeIdentifierOrNumber()
      return True
    except ParseError:
      return False

  def ConsumeIdentifierOrNumber(self):
    """Consumes protocol message field identifier.

    Returns:
      Identifier string.

    Raises:
      ParseError: If an identifier couldn't be consumed.
    """
    result = self.token
    if not self._IDENTIFIER_OR_NUMBER.match(result):
      raise self.ParseError('Expected identifier or number, got %s.' % result)
    self.NextToken()
    return result

  def TryConsumeInteger(self):
    try:
      # Note: is_long only affects value type, not whether an error is raised.
      self.ConsumeInteger()
      return True
    except ParseError:
      return False

  def ConsumeInteger(self, is_long=False):
    """Consumes an integer number.

    Args:
      is_long: True if the value should be returned as a long integer.
    Returns:
      The integer parsed.

    Raises:
      ParseError: If an integer couldn't be consumed.
    """
    try:
      result = _ParseAbstractInteger(self.token, is_long=is_long)
    except ValueError as e:
      raise self.ParseError(str(e))
    self.NextToken()
    return result

  def TryConsumeFloat(self):
    try:
      self.ConsumeFloat()
      return True
    except ParseError:
      return False

  def ConsumeFloat(self):
    """Consumes an floating point number.

    Returns:
      The number parsed.

    Raises:
      ParseError: If a floating point number couldn't be consumed.
    """
    try:
      result = ParseFloat(self.token)
    except ValueError as e:
      raise self.ParseError(str(e))
    self.NextToken()
    return result

  def ConsumeBool(self):
    """Consumes a boolean value.

    Returns:
      The bool parsed.

    Raises:
      ParseError: If a boolean value couldn't be consumed.
    """
    try:
      result = ParseBool(self.token)
    except ValueError as e:
      raise self.ParseError(str(e))
    self.NextToken()
    return result

  def TryConsumeByteString(self):
    try:
      self.ConsumeByteString()
      return True
    except ParseError:
      return False

  def ConsumeString(self):
    """Consumes a string value.

    Returns:
      The string parsed.

    Raises:
      ParseError: If a string value couldn't be consumed.
    """
    the_bytes = self.ConsumeByteString()
    try:
      return six.text_type(the_bytes, 'utf-8')
    except UnicodeDecodeError as e:
      raise self._StringParseError(e)

  def ConsumeByteString(self):
    """Consumes a byte array value.

    Returns:
      The array parsed (as a string).

    Raises:
      ParseError: If a byte array value couldn't be consumed.
    """
    the_list = [self._ConsumeSingleByteString()]
    while self.token and self.token[0] in _QUOTES:
      the_list.append(self._ConsumeSingleByteString())
    return b''.join(the_list)

  def _ConsumeSingleByteString(self):
    """Consume one token of a string literal.

    String literals (whether bytes or text) can come in multiple adjacent
    tokens which are automatically concatenated, like in C or Python.  This
    method only consumes one token.

    Returns:
      The token parsed.
    Raises:
      ParseError: When the wrong format data is found.
    """
    text = self.token
    if len(text) < 1 or text[0] not in _QUOTES:
      raise self.ParseError('Expected string but found: %r' % (text,))

    if len(text) < 2 or text[-1] != text[0]:
      raise self.ParseError('String missing ending quote: %r' % (text,))

    try:
      result = text_encoding.CUnescape(text[1:-1])
    except ValueError as e:
      raise self.ParseError(str(e))
    self.NextToken()
    return result

  def ConsumeEnum(self, field):
    try:
      result = ParseEnum(field, self.token)
    except ValueError as e:
      raise self.ParseError(str(e))
    self.NextToken()
    return result

  def ParseErrorPreviousToken(self, message):
    """Creates and *returns* a ParseError for the previously read token.

    Args:
      message: A message to set for the exception.

    Returns:
      A ParseError instance.
    """
    return ParseError(message, self._previous_line + 1,
                      self._previous_column + 1)

  def ParseError(self, message):
    """Creates and *returns* a ParseError for the current token."""
    return ParseError(message, self._line + 1, self._column + 1)

  def _StringParseError(self, e):
    return self.ParseError('Couldn\'t parse string: ' + str(e))

  def NextToken(self):
    """Reads the next meaningful token."""
    self._previous_line = self._line
    self._previous_column = self._column

    self._column += len(self.token)
    self._SkipWhitespace()

    if not self._more_lines:
      self.token = ''
      return

    match = self._TOKEN.match(self._current_line, self._column)
    if not match and not self._skip_comments:
      match = self._COMMENT.match(self._current_line, self._column)
    if match:
      token = match.group(0)
      self.token = token
    else:
      self.token = self._current_line[self._column]

# Aliased so it can still be accessed by current visibility violators.
# TODO(dbarnett): Migrate violators to textformat_tokenizer.
_Tokenizer = Tokenizer  # pylint: disable=invalid-name


def _ConsumeInt32(tokenizer):
  """Consumes a signed 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If a signed 32bit integer couldn't be consumed.
  """
  return _ConsumeInteger(tokenizer, is_signed=True, is_long=False)


def _ConsumeUint32(tokenizer):
  """Consumes an unsigned 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an unsigned 32bit integer couldn't be consumed.
  """
  return _ConsumeInteger(tokenizer, is_signed=False, is_long=False)


def _TryConsumeInt64(tokenizer):
  try:
    _ConsumeInt64(tokenizer)
    return True
  except ParseError:
    return False


def _ConsumeInt64(tokenizer):
  """Consumes a signed 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If a signed 32bit integer couldn't be consumed.
  """
  return _ConsumeInteger(tokenizer, is_signed=True, is_long=True)


def _TryConsumeUint64(tokenizer):
  try:
    _ConsumeUint64(tokenizer)
    return True
  except ParseError:
    return False


def _ConsumeUint64(tokenizer):
  """Consumes an unsigned 64bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an unsigned 64bit integer couldn't be consumed.
  """
  return _ConsumeInteger(tokenizer, is_signed=False, is_long=True)


def _TryConsumeInteger(tokenizer, is_signed=False, is_long=False):
  try:
    _ConsumeInteger(tokenizer, is_signed=is_signed, is_long=is_long)
    return True
  except ParseError:
    return False


def _ConsumeInteger(tokenizer, is_signed=False, is_long=False):
  """Consumes an integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.
    is_signed: True if a signed integer must be parsed.
    is_long: True if a long integer must be parsed.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an integer with given characteristics couldn't be consumed.
  """
  try:
    result = ParseInteger(tokenizer.token, is_signed=is_signed, is_long=is_long)
  except ValueError as e:
    raise tokenizer.ParseError(str(e))
  tokenizer.NextToken()
  return result


def ParseInteger(text, is_signed=False, is_long=False):
  """Parses an integer.

  Args:
    text: The text to parse.
    is_signed: True if a signed integer must be parsed.
    is_long: True if a long integer must be parsed.

  Returns:
    The integer value.

  Raises:
    ValueError: Thrown Iff the text is not a valid integer.
  """
  # Do the actual parsing. Exception handling is propagated to caller.
  result = _ParseAbstractInteger(text, is_long=is_long)

  # Check if the integer is sane. Exceptions handled by callers.
  checker = _INTEGER_CHECKERS[2 * int(is_long) + int(is_signed)]
  checker.CheckValue(result)
  return result


def _ParseAbstractInteger(text, is_long=False):
  """Parses an integer without checking size/signedness.

  Args:
    text: The text to parse.
    is_long: True if the value should be returned as a long integer.

  Returns:
    The integer value.

  Raises:
    ValueError: Thrown Iff the text is not a valid integer.
  """
  # Do the actual parsing. Exception handling is propagated to caller.
  try:
    # We force 32-bit values to int and 64-bit values to long to make
    # alternate implementations where the distinction is more significant
    # (e.g. the C++ implementation) simpler.
    if is_long:
      return long(text, 0)
    else:
      return int(text, 0)
  except ValueError:
    raise ValueError('Couldn\'t parse integer: %s' % text)


def ParseFloat(text):
  """Parse a floating point number.

  Args:
    text: Text to parse.

  Returns:
    The number parsed.

  Raises:
    ValueError: If a floating point number couldn't be parsed.
  """
  try:
    # Assume Python compatible syntax.
    return float(text)
  except ValueError:
    # Check alternative spellings.
    if _FLOAT_INFINITY.match(text):
      if text[0] == '-':
        return float('-inf')
      else:
        return float('inf')
    elif _FLOAT_NAN.match(text):
      return float('nan')
    else:
      # assume '1.0f' format
      try:
        return float(text.rstrip('f'))
      except ValueError:
        raise ValueError('Couldn\'t parse float: %s' % text)


def ParseBool(text):
  """Parse a boolean value.

  Args:
    text: Text to parse.

  Returns:
    Boolean values parsed

  Raises:
    ValueError: If text is not a valid boolean.
  """
  if text in ('true', 't', '1', 'True'):
    return True
  elif text in ('false', 'f', '0', 'False'):
    return False
  else:
    raise ValueError('Expected "true" or "false".')


def ParseEnum(field, value):
  """Parse an enum value.

  The value can be specified by a number (the enum value), or by
  a string literal (the enum name).

  Args:
    field: Enum field descriptor.
    value: String value.

  Returns:
    Enum value number.

  Raises:
    ValueError: If the enum value could not be parsed.
  """
  enum_descriptor = field.enum_type
  try:
    number = int(value, 0)
  except ValueError:
    # Identifier.
    enum_value = enum_descriptor.values_by_name.get(value, None)
    if enum_value is None:
      raise ValueError('Enum type "%s" has no value named %s.' %
                       (enum_descriptor.full_name, value))
  else:
    # Numeric value.
    if hasattr(field.file, 'syntax'):
      # Attribute is checked for compatibility.
      if field.file.syntax == 'proto3':
        # Proto3 accept numeric unknown enums.
        return number
    enum_value = enum_descriptor.values_by_number.get(number, None)
    if enum_value is None:
      raise ValueError('Enum type "%s" has no value with number %d.' %
                       (enum_descriptor.full_name, number))
  return enum_value.number
PK��\_1�99protobuf/timestamp_pb2.pyonu�[����
���hc.@stddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejddddddddddd d!d"dd#ed$dd%dd&dddd'ed(dd)dde�ejdd*dd+dddd!dd,d dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd-gd.gd/gd)dd0eddd1gd2gd3d4d5d6�Zeejd<eje�e	jdejfed7ed8d9��Zeje�ee_ejej �ed:��e_!dS(;i����NiicCs|S(N((tx((sA/usr/lib/python2.7/site-packages/google/protobuf/timestamp_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sA/usr/lib/python2.7/site-packages/google/protobuf/timestamp_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/timestamp.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/timestamp.protogoogle.protobuf"+
	Timestamp
seconds (
nanos (B~
com.google.protobufBTimestampProtoPZ+github.com/golang/protobuf/ptypes/timestamp��GPB�Google.Protobuf.WellKnownTypesbproto3t	Timestampt	full_namesgoogle.protobuf.Timestamptfilenametfiletcontaining_typetfieldstsecondss!google.protobuf.Timestamp.secondstindextnumberittypetcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionstnanossgoogle.protobuf.Timestamp.nanosit
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti4tserialized_endi_t
DESCRIPTORt
__module__sgoogle.protobuf.timestamp_pb2s~
com.google.protobufBTimestampProtoPZ+github.com/golang/protobuf/ptypes/timestamp��GPB�Google.Protobuf.WellKnownTypes("tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR+t
DescriptortNonetFieldDescriptortFalset
_TIMESTAMPtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((sA/usr/lib/python2.7/site-packages/google/protobuf/timestamp_pb2.pyt<module>sd%					


	PK��\��BH��protobuf/unittest_import_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest_import.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import unittest_import_public_pb2 as google_dot_protobuf_dot_unittest__import__public__pb2

from google.protobuf.unittest_import_public_pb2 import *

DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest_import.proto',
  package='protobuf_unittest_import',
  syntax='proto2',
  serialized_pb=_b('\n%google/protobuf/unittest_import.proto\x12\x18protobuf_unittest_import\x1a,google/protobuf/unittest_import_public.proto\"\x1a\n\rImportMessage\x12\t\n\x01\x64\x18\x01 \x01(\x05*<\n\nImportEnum\x12\x0e\n\nIMPORT_FOO\x10\x07\x12\x0e\n\nIMPORT_BAR\x10\x08\x12\x0e\n\nIMPORT_BAZ\x10\t*1\n\x10ImportEnumForMap\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02\x42\x1f\n\x18\x63om.google.protobuf.testH\x01\xf8\x01\x01P\x00')
  ,
  dependencies=[google_dot_protobuf_dot_unittest__import__public__pb2.DESCRIPTOR,],
  public_dependencies=[google_dot_protobuf_dot_unittest__import__public__pb2.DESCRIPTOR,])

_IMPORTENUM = _descriptor.EnumDescriptor(
  name='ImportEnum',
  full_name='protobuf_unittest_import.ImportEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='IMPORT_FOO', index=0, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IMPORT_BAR', index=1, number=8,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IMPORT_BAZ', index=2, number=9,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=141,
  serialized_end=201,
)
_sym_db.RegisterEnumDescriptor(_IMPORTENUM)

ImportEnum = enum_type_wrapper.EnumTypeWrapper(_IMPORTENUM)
_IMPORTENUMFORMAP = _descriptor.EnumDescriptor(
  name='ImportEnumForMap',
  full_name='protobuf_unittest_import.ImportEnumForMap',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOO', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=203,
  serialized_end=252,
)
_sym_db.RegisterEnumDescriptor(_IMPORTENUMFORMAP)

ImportEnumForMap = enum_type_wrapper.EnumTypeWrapper(_IMPORTENUMFORMAP)
IMPORT_FOO = 7
IMPORT_BAR = 8
IMPORT_BAZ = 9
UNKNOWN = 0
FOO = 1
BAR = 2



_IMPORTMESSAGE = _descriptor.Descriptor(
  name='ImportMessage',
  full_name='protobuf_unittest_import.ImportMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='d', full_name='protobuf_unittest_import.ImportMessage.d', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=113,
  serialized_end=139,
)

DESCRIPTOR.message_types_by_name['ImportMessage'] = _IMPORTMESSAGE
DESCRIPTOR.enum_types_by_name['ImportEnum'] = _IMPORTENUM
DESCRIPTOR.enum_types_by_name['ImportEnumForMap'] = _IMPORTENUMFORMAP
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ImportMessage = _reflection.GeneratedProtocolMessageType('ImportMessage', (_message.Message,), dict(
  DESCRIPTOR = _IMPORTMESSAGE,
  __module__ = 'google.protobuf.unittest_import_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest_import.ImportMessage)
  ))
_sym_db.RegisterMessage(ImportMessage)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\030com.google.protobuf.testH\001\370\001\001'))
# @@protoc_insertion_point(module_scope)
PK��\��K���protobuf/reflection.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# This code is meant to work on Python 2.4 and above only.

"""Contains a metaclass and helper functions used to create
protocol message classes from Descriptor objects at runtime.

Recall that a metaclass is the "type" of a class.
(A class is to a metaclass what an instance is to a class.)

In this case, we use the GeneratedProtocolMessageType metaclass
to inject all the useful functionality into the classes
output by the protocol compiler at compile-time.

The upshot of all this is that the real implementation
details for ALL pure-Python protocol buffers are *here in
this file*.
"""

__author__ = 'robinson@google.com (Will Robinson)'


from google.protobuf.internal import api_implementation
from google.protobuf import message


if api_implementation.Type() == 'cpp':
  from google.protobuf.pyext import cpp_message as message_impl
else:
  from google.protobuf.internal import python_message as message_impl

# The type of all Message classes.
# Part of the public interface, but normally only used by message factories.
GeneratedProtocolMessageType = message_impl.GeneratedProtocolMessageType

MESSAGE_CLASS_CACHE = {}


def ParseMessage(descriptor, byte_str):
  """Generate a new Message instance from this Descriptor and a byte string.

  Args:
    descriptor: Protobuf Descriptor object
    byte_str: Serialized protocol buffer byte string

  Returns:
    Newly created protobuf Message object.
  """
  result_class = MakeClass(descriptor)
  new_msg = result_class()
  new_msg.ParseFromString(byte_str)
  return new_msg


def MakeClass(descriptor):
  """Construct a class object for a protobuf described by descriptor.

  Composite descriptors are handled by defining the new class as a member of the
  parent class, recursing as deep as necessary.
  This is the dynamic equivalent to:

  class Parent(message.Message):
    __metaclass__ = GeneratedProtocolMessageType
    DESCRIPTOR = descriptor
    class Child(message.Message):
      __metaclass__ = GeneratedProtocolMessageType
      DESCRIPTOR = descriptor.nested_types[0]

  Sample usage:
    file_descriptor = descriptor_pb2.FileDescriptorProto()
    file_descriptor.ParseFromString(proto2_string)
    msg_descriptor = descriptor.MakeDescriptor(file_descriptor.message_type[0])
    msg_class = reflection.MakeClass(msg_descriptor)
    msg = msg_class()

  Args:
    descriptor: A descriptor.Descriptor object describing the protobuf.
  Returns:
    The Message class object described by the descriptor.
  """
  if descriptor in MESSAGE_CLASS_CACHE:
    return MESSAGE_CLASS_CACHE[descriptor]

  attributes = {}
  for name, nested_type in descriptor.nested_types_by_name.items():
    attributes[name] = MakeClass(nested_type)

  attributes[GeneratedProtocolMessageType._DESCRIPTOR_KEY] = descriptor

  result = GeneratedProtocolMessageType(
      str(descriptor.name), (message.Message,), attributes)
  MESSAGE_CLASS_CACHE[descriptor] = result
  return result
PK��\���m0m0protobuf/message.pycnu�[����
���hc@shdZdZdefd��YZdefd��YZdefd��YZdefd	��YZd
S(s6Contains an abstract base class for protocol messages.s#robinson@google.com (Will Robinson)tErrorcBseZRS((t__name__t
__module__(((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyR'stDecodeErrorcBseZRS((RR(((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyR(stEncodeErrorcBseZRS((RR(((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyR)stMessagecBseZdZgZdZdd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(sUAbstract base class for protocol messages.

  Protocol message classes are almost always generated by the protocol
  compiler.  These generated types subclass Message and implement the methods
  shown below.

  TODO(robinson): Link to an HTML document here.

  TODO(robinson): Document that instances of this class will also
  have an Extensions attribute with __getitem__ and __setitem__.
  Again, not sure how to best convey this.

  TODO(robinson): Document that the class must also have a static
    RegisterExtension(extension_field) method.
    Not sure how to best express at this point.
  cCs t|��}|j|�|S(N(ttypet	MergeFrom(tselftmemotclone((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__deepcopy__Es
cCs
t�dS(s9Recursively compares two messages by value and structure.N(tNotImplementedError(Rt	other_msg((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__eq__JscCs||kS(N((RR
((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__ne__NscCstd��dS(Nsunhashable object(t	TypeError(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__hash__RscCs
t�dS(s7Outputs a human-readable representation of the message.N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__str__UscCs
t�dS(s7Outputs a human-readable representation of the message.N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__unicode__YscCs
t�dS(s�Merges the contents of the specified message into current message.

    This method merges the contents of the specified message into the current
    message. Singular fields that are set in the specified message overwrite
    the corresponding fields in the current message. Repeated fields are
    appended. Singular sub-messages and groups are recursively merged.

    Args:
      other_msg: Message to merge into the current message.
    N(R(RR
((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyR]scCs+||krdS|j�|j|�dS(s�Copies the content of the specified message into the current message.

    The method clears the current message and then merges the specified
    message using MergeFrom.

    Args:
      other_msg: Message to copy into the current one.
    N(tClearR(RR
((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytCopyFromjs	
cCs
t�dS(s,Clears all data that was set in the message.N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyRxscCs
t�dS(sMark this as present in the parent.

    This normally happens automatically when you assign a field of a
    sub-message, but sometimes you want to make the sub-message
    present while keeping it empty.  If you find yourself using this,
    you may want to reconsider your design.N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytSetInParent|scCs
t�dS(s�Checks if the message is initialized.

    Returns:
      The method returns True if the message is initialized (i.e. all of its
      required fields are set).
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt
IsInitialized�scCs
t�dS(sZMerges serialized protocol buffer data into this message.

    When we find a field in |serialized| that is already present
    in this message:
      - If it's a "repeated" field, we append to the end of our list.
      - Else, if it's a scalar, we overwrite our field.
      - Else, (it's a nonrepeated composite), we recursively merge
        into the existing composite.

    TODO(robinson): Document handling of unknown fields.

    Args:
      serialized: Any object that allows us to call buffer(serialized)
        to access a string of bytes using the buffer interface.

    TODO(robinson): When we switch to a helper, this will return None.

    Returns:
      The number of bytes read from |serialized|.
      For non-group messages, this will always be len(serialized),
      but for messages which are actually groups, this will
      generally be less than len(serialized), since we must
      stop when we reach an END_GROUP tag.  Note that if
      we *do* stop because of an END_GROUP tag, the number
      of bytes returned does not include the bytes
      for the END_GROUP tag information.
    N(R(Rt
serialized((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytMergeFromString�scCs|j�|j|�dS(s�Parse serialized protocol buffer data into this message.

    Like MergeFromString(), except we clear the object first and
    do not return the value that MergeFromString returns.
    N(RR(RR((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytParseFromString�s
cKs
t�dS(sSerializes the protocol message to a binary string.

    Arguments:
      **kwargs: Keyword arguments to the serialize method, accepts
        the following keyword args:
        deterministic: If true, requests deterministic serialization of the
          protobuf, with predictable ordering of map keys.

    Returns:
      A binary string representation of the message if all of the required
      fields in the message are set (i.e. the message is initialized).

    Raises:
      message.EncodeError if the message isn't initialized.
    N(R(Rtkwargs((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytSerializeToString�scKs
t�dS(s�Serializes the protocol message to a binary string.

    This method is similar to SerializeToString but doesn't check if the
    message is initialized.

    Arguments:
      **kwargs: Keyword arguments to the serialize method, accepts
        the following keyword args:
        deterministic: If true, requests deterministic serialization of the
          protobuf, with predictable ordering of map keys.

    Returns:
      A string representation of the partial message.
    N(R(RR((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytSerializePartialToString�scCs
t�dS(s�Returns a list of (FieldDescriptor, value) tuples for all
    fields in the message which are not empty.  A message field is
    non-empty if HasField() would return true. A singular primitive field
    is non-empty if HasField() would return true in proto2 or it is non zero
    in proto3. A repeated field is non-empty if it contains at least one
    element.  The fields are ordered by field numberN(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt
ListFields�scCs
t�dS(s�Checks if a certain field is set for the message, or if any field inside
    a oneof group is set.  Note that if the field_name is not defined in the
    message descriptor, ValueError will be raised.N(R(Rt
field_name((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytHasField�scCs
t�dS(s�Clears the contents of a given field, or the field set inside a oneof
    group.  If the name neither refers to a defined field or oneof group,
    ValueError is raised.N(R(RR((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt
ClearField�scCs
t�dS(s�Returns the name of the field that is set inside a oneof group, or
    None if no field is set.  If no group with the given name exists, ValueError
    will be raised.N(R(Rtoneof_group((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt
WhichOneofscCs
t�dS(N(R(Rtextension_handle((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytHasExtension	scCs
t�dS(N(R(RR$((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytClearExtensionscCs
t�dS(N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytDiscardUnknownFieldsscCs
t�dS(smReturns the serialized size of this message.
    Recursively calls ByteSize() on all contained messages.
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytByteSizescCs
t�dS(s6Internal method used by the protocol message implementation.
    Clients should not call this directly.

    Sets a listener that this message will call on certain state transitions.

    The purpose of this method is to register back-edges from children to
    parents at runtime, for the purpose of setting "has" bits and
    byte-size-dirty bits in the parent and ancestor objects whenever a child or
    descendant object is modified.

    If the client wants to disconnect this Message from the object tree, she
    explicitly sets callback to None.

    If message_listener is None, unregisters any existing listener.  Otherwise,
    message_listener must implement the MessageListener interface in
    internal/message_listener.py, and we discard any listener registered
    via a previous _SetListener() call.
    N(R(Rtmessage_listener((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt_SetListenerscCstd|j��S(sSupport the pickle protocol.R(tdictR(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__getstate__-scCs|j�|j|d�dS(sSupport the pickle protocol.RN(t__init__R(Rtstate((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__setstate__1s
N( RRt__doc__t	__slots__tNonet
DESCRIPTORRRRRRRRRRRRRRRRRR R!R#R%R&R'R(R*R,R/(((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyR,s:						
										!											N(R0t
__author__t	ExceptionRRRtobjectR(((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt<module>#s
PK��\�k�[�u�u&protobuf/unittest_proto3_arena_pb2.pyonu�[����
���hc`@s�8ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZy
ejZWn ek
r�ejjjZnXejd
dddddded�dejg�Zejd
ddddddedejd
dddddddd d�ejd
d!dd"dd#ddd d�ejd
d$dd%dd&ddd d�ejd
d'dddd(ddd d�gd)dddd*d+d,d-�	Zeje�eje�Z dZ!d#Z"d&Z#d(Z$ejd
d.dd/dddedejd
d0ddddddd d�ejd
d1dd"dd"ddd d�ejd
d2dd%dd%ddd d�ejd
d3ddddddd d�ejd
d4dd#ddddd d�gd)dddd*d5d,d6�	Z%eje%�ej&d
d7dd8ddded)dd9ej'd
d:dd;dddd"d d&d<d"d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�gdDgdEgdFgdddGe(dddHgdIgd*dJd,dK�Z)ej&d
dLddMddded)dd9ej'd
dNddOdddd"d d&d<d"d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dPddQdd"dd%d dd<d%d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dRddSdd%ddd dTd<dd=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dUddVdddd#d d#d<d#d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dWddXdd#dd&d dYd<d"d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dZdd[dd&dd(d d\d<d%d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d]dd^dd(dd_d d_d<dd=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d`ddadd_ddbd d(d<d#d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dcdddddbdded dfd<d"d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dgddhddeddid djd<d%d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
dkddlddiddmd d%d<d(d=d"d>e(d?e*d�d@ddAdd)ddBe(dCdddde�ej'd
dnddoddmddpd d"d<d&d=d"d>e(d?e*d�d@ddAdd)ddBe(dCdddde�ej'd
dqddrddpddTd dbd<d_d=d"d>e(d?e(d@ddAdd)ddBe(dCdddde�ej'd
dsddtddTddud ded<ded=d"d>e(d?edv�j+dw�d@ddAdd)ddBe(dCdddde�ej'd
dxddydduddfd dpd<ded=d"d>e(d?edv�d@ddAdd)ddBe(dCdddde�ej'd
dzdd{ddfdd\d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d|dd}ddjdd~d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
ddd�ddYdd�d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd\dd�d dud<dbd=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd~dd�d dud<dbd=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d ded<ded=d"d>e(d?edv�j+dw�d@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d ded<ded=d"d>e(d?edv�j+dw�d@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d d&d<d"d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dd<d%d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dTd<dd=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d#d<d#d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dYd<d"d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d\d<d%d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d_d<dd=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d(d<d#d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dfd<d"d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d djd<d%d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d%d<d(d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d d"d<d&d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dbd<d_d=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d ded<ded=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dpd<ded=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dmd<did=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dmd<did=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dmd<did=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dud<dbd=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dud<dbd=dd>e(d?gd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d ded<ded=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d ded<ded=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d dmd<did=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd�dd�d dTd<dd=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d ded<ded=d"d>e(d?edv�j+dw�d@ddAdd)ddBe(dCdddde�ej'd
d�dd�dd�dd�d dpd<ded=d"d>e(d?edv�d@ddAdd)ddBe(dCdddde�g4dDgdEe)gdFe%gdddGe(dddHgdIej.d
d�dd�ddd)dd9g�gd*d�d,d��Z/ej&d
d�dd�ddded)dd9ej'd
d�dd�dddd�d d&d<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd"dd�d dd<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d�dd�dd%ddd dTd<dd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddddd d#d<d#d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
ddddd#ddd dYd<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
ddddd&dd	d d\d<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d
dddd(ddd d_d<dd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
d
dddd_ddd d(d<d#d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddbddd dfd<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddeddd djd<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddiddd d%d<d(d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddmddd d"d<d&d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
dddddpddd dbd<d_d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�ej'd
ddd ddTdd!d dud<dbd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed���de�gdDgdEgdFgdddGe(dddHgdIgd*d"d,d#�Z0ej&d
d$dd%ddded)dd9ej'd
d�dd&dddd"d d&d<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd(dd"dd%d dd<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd)dd%ddd dTd<dd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd*dddd#d d#d<d#d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd+dd#dd&d dYd<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd,dd&dd(d d\d<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd-dd(dd_d d_d<dd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd.dd_ddbd d(d<d#d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd/ddbdded dfd<d"d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd0ddeddid djd<d%d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd1ddiddmd d%d<d(d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd2ddmddpd d"d<d&d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd3ddpddTd dbd<d_d=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�ej'd
d�dd4ddTddud dud<dbd=dd>e(d?gd@ddAdd)ddBe(dCddej,ej-�ed'��de�gdDgdEgdFgdddGe(dddHgdIgd*d5d,d6�Z1ej&d
d7dd8ddded)dd9ej'd
d9dd:dddd"d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d;dd<dd"dd%d dmd<did=d"d>e(d?dd@ddAdd)ddBe(dCdddde�ej'd
d=dd>dd%ddd dmd<did=dd>e(d?gd@ddAdd)ddBe(dCdddde�gdDgdEgdFgdddGe(dddHgdIgd*d?d,d@�Z2ej&d
dAddBddded)dd9ej'd
dCddDdddd"d d&d<d"d=d"d>e(d?dd@ddAdd)ddBe(dCdddde�gdDgdEgdFgdddGe(dddHgdIgd*dEd,dF�Z3ej&d
dGddHddded)dd9gdDgdEgdFgdddGe(dddHgdIgd*dId,dJ�Z4e/e)_5e)e/j6dz_7e3e/j6d|_7ej8e/j6d_7e%e/j6d�_9ee/j6d�_9ej:e/j6d�_7e)e/j6d�_7ej8e/j6d�_7e)e/j6d�_7e3e/j6d�_7ej8e/j6d�_7e%e/j6d�_9ee/j6d�_9e)e/j6d�_7e)e/j6d�_7e/e%_5e/j;d�j<j=e/j6d��e/j;d�e/j6d�_>e/j;d�j<j=e/j6d��e/j;d�e/j6d�_>e/j;d�j<j=e/j6d��e/j;d�e/j6d�_>e/j;d�j<j=e/j6d��e/j;d�e/j6d�_>ee0j6d_9e%e1j6d�_9e2e2j6d9_7e/e2j6d;_7e2e2j6d=_7e/ej?dL<e0ej?d�<e1ej?d$<e2ej?d7<e3ej?dA<e4ej?dG<eej@d<ejAe�ejBdLe	jCfeDd7ejBd7e	jCfeDdKe)dLdM��dKe/dLdM��ZEejFeE�ejFeEjG�ejBd�e	jCfeDdKe0dLdM��ZHejFeH�ejBd$e	jCfeDdKe1dLdM��ZIejFeI�ejBd7e	jCfeDdKe2dLdM��ZJejFeJ�ejBdAe	jCfeDdKe3dLdM��ZKejFeK�ejBdGe	jCfeDdKe4dLdM��ZLejFeL�eMe_Nej,ejO�edN��e_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe/j6d�_Nej,ej-�ed���e/j6d�_PeMe0j6d�_Nej,ej-�ed���e0j6d�_PeMe0j6d�_Nej,ej-�ed���e0j6d�_PeMe0j6d�_Nej,ej-�ed���e0j6d�_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d
_Nej,ej-�ed���e0j6d
_PeMe0j6d
_Nej,ej-�ed���e0j6d
_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe0j6d_Nej,ej-�ed���e0j6d_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PeMe1j6d�_Nej,ej-�ed'��e1j6d�_PdS(Oi����NiicCs|S(N((tx((sM/usr/lib/python2.7/site-packages/google/protobuf/unittest_proto3_arena_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sM/usr/lib/python2.7/site-packages/google/protobuf/unittest_proto3_arena_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_import_pb2tnames+google/protobuf/unittest_proto3_arena.prototpackagetproto3_arena_unittesttsyntaxtproto3t
serialized_pbs&
+google/protobuf/unittest_proto3_arena.protoproto3_arena_unittest%google/protobuf/unittest_import.proto"�
TestAllTypes
optional_int32 (
optional_int64 (
optional_uint32 (

optional_uint64 (
optional_sint32 (
optional_sint64 (
optional_fixed32 (
optional_fixed64 (
optional_sfixed32	 (
optional_sfixed64
 (
optional_float (
optional_double (

optional_bool
 (
optional_string (	
optional_bytes (R
optional_nested_message (21.proto3_arena_unittest.TestAllTypes.NestedMessageG
optional_foreign_message (2%.proto3_arena_unittest.ForeignMessageH
optional_import_message (2'.protobuf_unittest_import.ImportMessageL
optional_nested_enum (2..proto3_arena_unittest.TestAllTypes.NestedEnumA
optional_foreign_enum (2".proto3_arena_unittest.ForeignEnum!
optional_string_piece (	B

optional_cord (	BU
optional_public_import_message (2-.protobuf_unittest_import.PublicImportMessageT
optional_lazy_message (21.proto3_arena_unittest.TestAllTypes.NestedMessageB(Q
optional_lazy_import_messages (2'.protobuf_unittest_import.ImportMessageB(
repeated_int32 (
repeated_int64  (
repeated_uint32! (

repeated_uint64" (
repeated_sint32# (
repeated_sint64$ (
repeated_fixed32% (
repeated_fixed64& (
repeated_sfixed32' (
repeated_sfixed64( (
repeated_float) (
repeated_double* (

repeated_bool+ (
repeated_string, (	
repeated_bytes- (R
repeated_nested_message0 (21.proto3_arena_unittest.TestAllTypes.NestedMessageG
repeated_foreign_message1 (2%.proto3_arena_unittest.ForeignMessageH
repeated_import_message2 (2'.protobuf_unittest_import.ImportMessageL
repeated_nested_enum3 (2..proto3_arena_unittest.TestAllTypes.NestedEnumA
repeated_foreign_enum4 (2".proto3_arena_unittest.ForeignEnum!
repeated_string_piece6 (	B

repeated_cord7 (	BT
repeated_lazy_message9 (21.proto3_arena_unittest.TestAllTypes.NestedMessageB(
oneof_uint32o (
HQ
oneof_nested_messagep (21.proto3_arena_unittest.TestAllTypes.NestedMessageH
oneof_stringq (	H
oneof_bytesr (H

NestedMessage

bb ("C

NestedEnum
ZERO
FOO
BAR
BAZ
NEG���������B
oneof_field"�
TestPackedTypes
packed_int32Z (B
packed_int64[ (B

packed_uint32\ (
B

packed_uint64] (B

packed_sint32^ (B

packed_sint64_ (B
packed_fixed32` (B
packed_fixed64a (B
packed_sfixed32b (B
packed_sfixed64c (B
packed_floatd (B

packed_doublee (B
packed_boolf (B;
packed_enumg (2".proto3_arena_unittest.ForeignEnumB"�
TestUnpackedTypes
repeated_int32 (B
repeated_int64 (B
repeated_uint32 (
B
repeated_uint64 (B
repeated_sint32 (B
repeated_sint64 (B
repeated_fixed32 (B
repeated_fixed64 (B
repeated_sfixed32	 (B
repeated_sfixed64
 (B
repeated_float (B
repeated_double (B

repeated_bool
 (BP
repeated_nested_enum (2..proto3_arena_unittest.TestAllTypes.NestedEnumB"�
NestedTestAllTypes8
child (2).proto3_arena_unittest.NestedTestAllTypes4
payload (2#.proto3_arena_unittest.TestAllTypesA
repeated_child (2).proto3_arena_unittest.NestedTestAllTypes"
ForeignMessage	
c ("
TestEmptyMessage*R
ForeignEnum
FOREIGN_ZERO
FOREIGN_FOO
FOREIGN_BAR
FOREIGN_BAZB�bproto3tdependenciestForeignEnumt	full_names!proto3_arena_unittest.ForeignEnumtfilenametfiletvaluestFOREIGN_ZEROtindextnumbertoptionsttypetFOREIGN_FOOiitFOREIGN_BARiitFOREIGN_BAZitcontaining_typetserialized_starti�
tserialized_endit
NestedEnums-proto3_arena_unittest.TestAllTypes.NestedEnumtZEROtFOOtBARtBAZtNEGi�i(	t
NestedMessages0proto3_arena_unittest.TestAllTypes.NestedMessagetfieldstbbs3proto3_arena_unittest.TestAllTypes.NestedMessage.bbtcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi�i�tTestAllTypess"proto3_arena_unittest.TestAllTypestoptional_int32s1proto3_arena_unittest.TestAllTypes.optional_int32toptional_int64s1proto3_arena_unittest.TestAllTypes.optional_int64toptional_uint32s2proto3_arena_unittest.TestAllTypes.optional_uint32i
toptional_uint64s2proto3_arena_unittest.TestAllTypes.optional_uint64toptional_sint32s2proto3_arena_unittest.TestAllTypes.optional_sint32itoptional_sint64s2proto3_arena_unittest.TestAllTypes.optional_sint64itoptional_fixed32s3proto3_arena_unittest.TestAllTypes.optional_fixed32itoptional_fixed64s3proto3_arena_unittest.TestAllTypes.optional_fixed64itoptional_sfixed32s4proto3_arena_unittest.TestAllTypes.optional_sfixed32i	itoptional_sfixed64s4proto3_arena_unittest.TestAllTypes.optional_sfixed64i
itoptional_floats1proto3_arena_unittest.TestAllTypes.optional_floatitoptional_doubles2proto3_arena_unittest.TestAllTypes.optional_doubleit
optional_bools0proto3_arena_unittest.TestAllTypes.optional_booltoptional_strings2proto3_arena_unittest.TestAllTypes.optional_stringiRsutf-8toptional_bytess1proto3_arena_unittest.TestAllTypes.optional_bytestoptional_nested_messages:proto3_arena_unittest.TestAllTypes.optional_nested_messagetoptional_foreign_messages;proto3_arena_unittest.TestAllTypes.optional_foreign_messageitoptional_import_messages:proto3_arena_unittest.TestAllTypes.optional_import_messageitoptional_nested_enums7proto3_arena_unittest.TestAllTypes.optional_nested_enumitoptional_foreign_enums8proto3_arena_unittest.TestAllTypes.optional_foreign_enumitoptional_string_pieces8proto3_arena_unittest.TestAllTypes.optional_string_pieceist
optional_cords0proto3_arena_unittest.TestAllTypes.optional_cordistoptional_public_import_messagesAproto3_arena_unittest.TestAllTypes.optional_public_import_messageitoptional_lazy_messages8proto3_arena_unittest.TestAllTypes.optional_lazy_messageiis(toptional_lazy_import_messages?proto3_arena_unittest.TestAllTypes.optional_lazy_import_messageistrepeated_int32s1proto3_arena_unittest.TestAllTypes.repeated_int32itrepeated_int64s1proto3_arena_unittest.TestAllTypes.repeated_int64i trepeated_uint32s2proto3_arena_unittest.TestAllTypes.repeated_uint32i!trepeated_uint64s2proto3_arena_unittest.TestAllTypes.repeated_uint64ii"trepeated_sint32s2proto3_arena_unittest.TestAllTypes.repeated_sint32ii#trepeated_sint64s2proto3_arena_unittest.TestAllTypes.repeated_sint64ii$trepeated_fixed32s3proto3_arena_unittest.TestAllTypes.repeated_fixed32i%trepeated_fixed64s3proto3_arena_unittest.TestAllTypes.repeated_fixed64i&trepeated_sfixed32s4proto3_arena_unittest.TestAllTypes.repeated_sfixed32i'trepeated_sfixed64s4proto3_arena_unittest.TestAllTypes.repeated_sfixed64i(trepeated_floats1proto3_arena_unittest.TestAllTypes.repeated_floati)trepeated_doubles2proto3_arena_unittest.TestAllTypes.repeated_doublei*t
repeated_bools0proto3_arena_unittest.TestAllTypes.repeated_booli+trepeated_strings2proto3_arena_unittest.TestAllTypes.repeated_stringi,trepeated_bytess1proto3_arena_unittest.TestAllTypes.repeated_bytesi-trepeated_nested_messages:proto3_arena_unittest.TestAllTypes.repeated_nested_messagei0trepeated_foreign_messages;proto3_arena_unittest.TestAllTypes.repeated_foreign_messagei1trepeated_import_messages:proto3_arena_unittest.TestAllTypes.repeated_import_messagei2trepeated_nested_enums7proto3_arena_unittest.TestAllTypes.repeated_nested_enumi3trepeated_foreign_enums8proto3_arena_unittest.TestAllTypes.repeated_foreign_enumi4trepeated_string_pieces8proto3_arena_unittest.TestAllTypes.repeated_string_piecei6t
repeated_cords0proto3_arena_unittest.TestAllTypes.repeated_cordi.i7trepeated_lazy_messages8proto3_arena_unittest.TestAllTypes.repeated_lazy_messagei/i9toneof_uint32s/proto3_arena_unittest.TestAllTypes.oneof_uint32iotoneof_nested_messages7proto3_arena_unittest.TestAllTypes.oneof_nested_messageiptoneof_strings/proto3_arena_unittest.TestAllTypes.oneof_stringiqtoneof_bytess.proto3_arena_unittest.TestAllTypes.oneof_bytesirtoneof_fields.proto3_arena_unittest.TestAllTypes.oneof_fieldini7	tTestPackedTypess%proto3_arena_unittest.TestPackedTypestpacked_int32s2proto3_arena_unittest.TestPackedTypes.packed_int32iZstpacked_int64s2proto3_arena_unittest.TestPackedTypes.packed_int64i[t
packed_uint32s3proto3_arena_unittest.TestPackedTypes.packed_uint32i\t
packed_uint64s3proto3_arena_unittest.TestPackedTypes.packed_uint64i]t
packed_sint32s3proto3_arena_unittest.TestPackedTypes.packed_sint32i^t
packed_sint64s3proto3_arena_unittest.TestPackedTypes.packed_sint64i_tpacked_fixed32s4proto3_arena_unittest.TestPackedTypes.packed_fixed32i`tpacked_fixed64s4proto3_arena_unittest.TestPackedTypes.packed_fixed64iatpacked_sfixed32s5proto3_arena_unittest.TestPackedTypes.packed_sfixed32ibtpacked_sfixed64s5proto3_arena_unittest.TestPackedTypes.packed_sfixed64ictpacked_floats2proto3_arena_unittest.TestPackedTypes.packed_floatidt
packed_doubles3proto3_arena_unittest.TestPackedTypes.packed_doubleietpacked_bools1proto3_arena_unittest.TestPackedTypes.packed_booliftpacked_enums1proto3_arena_unittest.TestPackedTypes.packed_enumigi:	i�
tTestUnpackedTypess'proto3_arena_unittest.TestUnpackedTypess6proto3_arena_unittest.TestUnpackedTypes.repeated_int32ss6proto3_arena_unittest.TestUnpackedTypes.repeated_int64s7proto3_arena_unittest.TestUnpackedTypes.repeated_uint32s7proto3_arena_unittest.TestUnpackedTypes.repeated_uint64s7proto3_arena_unittest.TestUnpackedTypes.repeated_sint32s7proto3_arena_unittest.TestUnpackedTypes.repeated_sint64s8proto3_arena_unittest.TestUnpackedTypes.repeated_fixed32s8proto3_arena_unittest.TestUnpackedTypes.repeated_fixed64s9proto3_arena_unittest.TestUnpackedTypes.repeated_sfixed32s9proto3_arena_unittest.TestUnpackedTypes.repeated_sfixed64s6proto3_arena_unittest.TestUnpackedTypes.repeated_floats7proto3_arena_unittest.TestUnpackedTypes.repeated_doubles5proto3_arena_unittest.TestUnpackedTypes.repeated_bools<proto3_arena_unittest.TestUnpackedTypes.repeated_nested_enumi�
i�tNestedTestAllTypess(proto3_arena_unittest.NestedTestAllTypestchilds.proto3_arena_unittest.NestedTestAllTypes.childtpayloads0proto3_arena_unittest.NestedTestAllTypes.payloadtrepeated_childs7proto3_arena_unittest.NestedTestAllTypes.repeated_childi�i�
tForeignMessages$proto3_arena_unittest.ForeignMessagetcs&proto3_arena_unittest.ForeignMessage.ci�
i�
tTestEmptyMessages&proto3_arena_unittest.TestEmptyMessagei�
i�
t
DESCRIPTORt
__module__s)google.protobuf.unittest_proto3_arena_pb2s�(Qtsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt-google_dot_protobuf_dot_unittest__import__pb2t5google_dot_protobuf_dot_unittest__import__public__pb2tAttributeErrortgoogletprotobuftunittest_import_public_pb2tFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_FOREIGNENUMtRegisterEnumDescriptortEnumTypeWrapperRRRRRt_TESTALLTYPES_NESTEDENUMt
DescriptortFieldDescriptortFalset_TESTALLTYPES_NESTEDMESSAGEtfloattdecodet
_ParseOptionstFieldOptionstOneofDescriptort
_TESTALLTYPESt_TESTPACKEDTYPESt_TESTUNPACKEDTYPESt_NESTEDTESTALLTYPESt_FOREIGNMESSAGEt_TESTEMPTYMESSAGER tfields_by_nameR0t_IMPORTMESSAGER1t_PUBLICIMPORTMESSAGEtoneofs_by_nameR*tappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR:tRegisterMessageR)RpRR�R�R�tTruethas_optionstFileOptionst_options(((sM/usr/lib/python2.7/site-packages/google/protobuf/unittest_proto3_arena_pb2.pyt<module>sH%

							
							
																									$	$		$	$																					$	$	$										$	$	$	$	$	$	$	$	$	$	$	$	$	*			$	$	$	$	$	$	$	$	$	$	$	$	$	*													













	!((((((((((((((((((((((((((((((((((PK��\2�V����(protobuf/unittest_custom_options_pb2.pyonu�[����
���hc1@s�FddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZddlmZdd
lmZe
j�Zdd
lmZejddddddded�dejg�Zejdddddddedejdddddd d!dd"d�ejdd#dd dd$d!dd"d�gd%dd!dd&d'd(d)�	Zeje�eje�Zejdd*dd+dddedejdd,dddd d!ejej�ed-��d"d�gd%dd!ejej �ed.��d&d/d(d0�	Z!eje!�eje!�Z"d Z#d$Z$d Z%d1Z&ej'dd2dd3dddd1d"d4d5d4d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z*d=Z+ej'dd>dd?dd dd=d"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z,dAZ-ej'ddBddCdd$ddAd"dDd5d4d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z.dEZ/ej'ddFddGddddEd"d@d5d d6d d7e)d8dHd9dd:dd%dd;e)d<dd!dde�Z0dIZ1ej'ddJddKdd4ddId"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z2dLZ3ej'ddMddNdd@ddLd"dOd5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z4dPZ5ej'ddQddRddDddPd"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z6dSZ7ej'ddTddUddVddSd"dWd5d$d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z8dXZ9ej'ddYddZdd[ddXd"d\d5d[d6d d7e(d8d d9dd:dd%dd;e)d<dd!dde�Z:d]Z;ej'dd^dd_dd`dd]d"d[d5dVd6d d7e(d8e(d9dd:dd%dd;e)d<dd!dde�Z<daZ=ej'ddbddcdddddad"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z>deZ?ej'ddfddgddhdded"dd5d$d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z@diZAej'ddjddkddlddid"dmd5dd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZBdnZCej'ddoddpddmddnd"d4d5d4d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZDdqZEej'ddrddsdd\ddqd"dtd5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZFduZGej'ddvddwddOddud"dWd5d$d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZHdxZIej'ddyddzdd{ddxd"dVd5dd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZJd|ZKej'dd}dd~ddtdd|d"dDd5d4d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZLdZMej'dd�dd�ddWddd"dOd5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZNd�ZOej'dd�dd�dd�dd�d"d{d5d$d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�ZPd�ZQej'dd�dd�dd�dd�d"d$d5dDd6d d7e(d8eRd�d9dd:dd%dd;e)d<dd!dde�ZSd�ZTej'dd�dd�dd�dd�d"d d5d@d6d d7e(d8eRd�d9dd:dd%dd;e)d<dd!dde�ZUd�ZVej'dd�dd�dd�dd�d"d`d5d`d6d d7e(d8ed��jWd��d9dd:dd%dd;e)d<dd!dde�ZXd�ZYej'dd�dd�dd�dd�d"dld5d`d6d d7e(d8ed��d9dd:dd%dd;e)d<dd!dde�ZZd�Z[ej'dd�dd�dd�dd�d"d\d5d[d6d d7e(d8d�d9dd:dd%dd;e)d<dd!dde�Z\d�Z]ej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z^d�Z_ej'dd�dd�dd�dd�d"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z`d�Zaej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zbd�Zcej'dd�dd�dd�dd�d"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zdd�Zeej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zfd�Zgej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zhd�Ziej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zjd�Zkej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zld�Zmej'dd�dd�dd�dd�d"ddd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Znd�Zoej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zpd�Zqej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zrd�Zsej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Ztd�Zuej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zvd�Zwej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zxd�Zyej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Zzd�Z{ej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z|d�Z}ej'dd�dd�dd�dd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�Z~ejdd�dd�dddedejdd�dddd d!dd"d�ejdd�dd dd$d!ejej�ed���d"d�gd%dd!ejej �ed���d&d�d(d��	Zeje�ejdd�dd�dddedejdd�dddd�d!dd"d�ejdd�dd dd�d!dd"d�gd%dd!dd&d�d(d��	Z�eje��ejdd�dd�dddedejdd�dddd d!ejej�ed���d"d�gd%dd!ejej �ed���d&d�d(d��	Z�eje��ejdd�dd�dddedejdd�ddddd!dd"d�gd%dd!dd&d�d(d��	Z�eje��ejdd�dd�dddedejdd�ddddd!dd"d�ejdd�dd dd d!dd"d�gd%dd!dd&d�d(d��	Z�eje��ej�dd�ddddded%ddej'dddddddd d"d`d5d`d6d d7e(d8ed��jWd��d9dd:dd%dd;e(d<dd!ejej��ed��de�ej'dddddd dd$d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgdgd	egd!ejej��ed
��de(dddgd
ej�ddddddd%ddgd!ejej��ed���gd&dd(d�Z�ej�ddddddded%ddgdgdgd	gd!dde(dddgd
gd&dd(d�Z�ej�ddddddded%ddgdgdgd	gd!dde(dddgd
gd&dd(d�Z�ej�ddddddded%ddgdgdgd	gd!dde(dddgd
gd&dd(d�Z�ej�dddd ddded%ddgdgdgd	gd!dde(dddgd
gd&d!d(d"�Z�ej�dd#dd$ddded%ddgdgdgd	e�gd!dde(dddgd
gd&d%d(d��Z�ej�dd&dd'ddded%ddgdgdgd	gd!dde(dddgd
gd&d(d(d)�Z�ej�dd*dd+ddded%ddgdgdgd	gd!ejej��ed,��de(dddgd
gd&d-d(d.�Z�ej�dd/dd0ddded%ddgdgdgd	gd!ejej��ed1��de(dddgd
gd&d2d(d3�Z�ej�dd4dd5ddded%ddgdgdgd	gd!ejej��ed6��de(dddgd
gd&d7d(d8�Z�ej�dd9dd:ddded%ddgdgdgd	gd!ejej��ed;��de(dddgd
gd&d<d(d=�Z�ej�dd>dd?ddded%ddgdgdgd	gd!ejej��ed@��de(dddgd
gd&dAd(dB�Z�ej�ddCddDddded%ddej'ddEddFdddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'ddGddHdd dd$d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'ddIddJdd$ddd"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'ddKddLdddd4d"d@d5d d6dd7e(d8gd9dd:dd%dd;e(d<dd!dde�gdgdgd	gd!dde)dddd�gd
gd&dOd(dP�Z�ej�ddQddRddded%ddej'ddSddTdddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdej'ddUddVddddWd"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�gdgd	gd!dde(dddgd
gd&dXd(dY�Z�ej�ddZdd[ddded%ddej'dd\dd]dddd d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'dd^dd_dd dd$d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'dd`ddadd$ddd"dhd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'ddbddcdddd4d"dhd5ddd6dd7e(d8gd9dd:dd%dd;e(d<dd!dde�gdgde�gd	gd!dde)dddd�gd
gd&ddd(de�Z�ej�ddfddgddded%ddej'ddhddiddddd"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgdgd	gd!dde(dddgd
gd&djd(dk�Z�ej�ddlddmddded%ddej'ddnddodddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'ddpddqdd dd$d"ddd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgde�gd	gd!dde(dddgd
gd&drd(dk�Z�ej�ddsddtddded%ddej'dduddvddddwd"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgdgd	gd!dde(dddgd
gd&dxd(dy�Z�ej�ddzdd{ddded%ddgdgdgd	gd!ejej��ed|��de(dddgd
gd&d}d(d~�Z�ej�dddd�ddded%ddgdgdgd	gd!ejej��ed���de)dddd�gd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d`d5d`d6d d7e(d8ed��jWd��d9dd:dd%dd;e(d<dd!dde�gdej'dd�dd�dddd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�gdgd	gd!dde(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'dd�dd�dd dd$d"d`d5d`d6d d7e(d8ed��jWd��d9dd:dd%dd;e(d<dd!dde�ej'dd�dd�dd$ddd"dhd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'dddd�dddd4d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�ej'dd�dd�dd4dd@d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdej'dd�dd�dddd�d"dhd5ddd6d d7e(d8dd9dd:dd%dd;e)d<dd!dde�gdgd	gd!dde(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!ejej��ed���de�gdgdgd	gd!ejej��ed���de(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d@d5d d6d d7e(d8dd9dd:dd%dd;e(d<dd!ejej��ed���de�gdgdgd	gd!ejej��ed���de(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddgdej'dd�dd�dddd�d"d@d5d d6d d7e(d8dd9dd:dd%dd;e)d<dd!ejej��ed���de�gde�gd	e�gd!dde(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d\d5d[d6d$d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgdgd	e�gd!dde(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddej'dd�dd�dddd d"d\d5d[d6d$d7e(d8dd9dd:dd%dd;e(d<dd!dde�gdgdgd	e�gd!dde(dddgd
gd&d�d(d��Z�ej�dd�dd�ddded%ddgdgdgd	gd!ejej��ed���de(dddgd
gd&d�d(d��Z�e�e_�e�j�dj�j�e�j�d�e�j�de�j�d_�e�e�_�e�e�_�e�e�j�d\_�e�e�j�d`_�e�e�j�db_�e�e�_�e�e�j�dp_�e�e�j�d�_�ej�e�j�d_�e�e�j�d�_�e�e�_�e�e�_�e�e�j�d�_�e�e�_�e�e�j�d�_�e�e�_�e�ej�d�<e�ej�d<e�ej�d<e�ej�d<e�ej�d<e�ej�d#<e�ej�d&<e�ej�d*<e�ej�d/<e�ej�d4<e�ej�d9<e�ej�d><e�ej�dC<e�ej�dZ<e�ej�dl<e�ej�ds<e�ej�dz<e�ej�d<e�ej�d�<e�ej�d�<e�ej�d�<e�ej�d�<e�ej�d�<e�ej�d�<e�ej�d�<eej�d<e!ej�d*<e*ej�d2<e,ej�d><e.ej�dB<e0ej�dF<e2ej�dJ<e4ej�dM<e6ej�dQ<e8ej�dT<e:ej�dY<e<ej�d^<e>ej�db<e@ej�df<eBej�dj<eDej�do<eFej�dr<eHej�dv<eJej�dy<eLej�d}<eNej�d�<ePej�d�<eSej�d�<eUej�d�<eXej�d�<eZej�d�<e\ej�d�<e^ej�d�<e`ej�d�<ebej�d�<edej�d�<efej�d�<ehej�d�<ejej�d�<elej�d�<enej�d�<epej�d�<erej�d�<etej�d�<evej�d�<exej�d�<ezej�d�<e|ej�d�<e~ej�d�<ej�e�ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�de	j�fe�d�e�d�d���Z�ej�e��ej�de	j�fe�d�e�d�d���Z�ej�e��ej�de	j�fe�d�e�d�d���Z�ej�e��ej�de	j�fe�d�e�d�d���Z�ej�e��ej�d#e	j�fe�d�e�d�d���Z�ej�e��ej�d&e	j�fe�d�e�d�d���Z�ej�e��ej�d*e	j�fe�d�e�d�d���Z�ej�e��ej�d/e	j�fe�d�e�d�d���Z�ej�e��ej�d4e	j�fe�d�e�d�d���Z�ej�e��ej�d9e	j�fe�d�e�d�d���Z�ej�e��ej�d>e	j�fe�d�e�d�d���Z�ej�e��ej�dCe	j�fe�d�e�d�d���Z�ej�e��ej�dZe	j�fe�dQej�dQe	j�fe�d�e�d�d���d�e�d�d���Z�ej�e��ej�e�j��ej�dle	j�fe�dfej�dfe	j�fe�d�e�d�d���d�e�d�d���Z�ej�e��ej�e�j��ej�dse	j�fe�d�e�d�d���Z�ej�e��ej�dze	j�fe�d�e�d�d���Z�ej�e��ej�de	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�ej�d�e	j�fe�d�e�d�d���d�e�d�d���Z�ej�e��ej�e�j��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�d�e	j�fe�d�e�d�d���Z�ej�e��ej�j�e*�ej�j�e,�ej�j�e.�ej�j�e0�ej�j�e2�ej j�e4�ejj�e6�ej�j�e8�ee:_�ej�j�e:�ej�j�e<�ej�j�e>�ej�j�e@�ej�j�eB�ej�j�eD�ej�j�eF�ej�j�eH�ej�j�eJ�ej�j�eL�ej�j�eN�ej�j�eP�ej�j�eS�ej�j�eU�ej�j�eX�ej�j�eZ�e�e\_�ej�j�e\�e�e^_�ej�j�e^�e�j�e`�e�eb_�e�j�eb�e�j�ed�e�ef_�e�j�ef�e�eh_�ej�j�eh�e�ej_�ej�j�ej�e�el_�ej�j�el�e�en_�ej�j�en�e�ep_�ej�j�ep�e�er_�ej�j�er�e�et_�ej�j�et�e�ev_�ej j�ev�e�ex_�ejj�ex�e�ez_�ej�j�ez�e�e|_�ej�j�e|�e�e~_�ej�j�e~�e�e�j�dU_�ej�j�e�j�dU�e�e�j�d�_�e�j�e�j�d��e�e�j�d�_�ej�j�e�j�d��ej�j�e�j�d��e)e_�ejej��ed���e_�e)e!_�ejej �ed.��e!_�e)e!j�d,_�ejej�ed-��e!j�d,_�e)e�j�d_�ejej��ed��e�j�d_�e)e_�ejej �ed���e_�e)ej�d�_�ejej�ed���ej�d�_�e)e�j�d_�ejej��ed��e�j�d_�e)e�_�ejej��ed
��e�_�e)e�_�ejej��ed,��e�_�e)e�_�ejej��ed1��e�_�e)e�_�ejej��ed6��e�_�e)e�_�ejej��ed;��e�_�e)e�_�ejej��ed@��e�_�e)e�_�ejej��ed|��e�_�e)e�_�ejej��ed���e�_�e)e�j�d�_�ejej��ed���e�j�d�_�e)e�_�ejej��ed���e�_�e)e�j�d�_�ejej��ed���e�j�d�_�e)e�_�ejej��ed���e�_�e)e�_�ejej �ed���e�_�e)e�j�d�_�ejej�ed���e�j�d�_�e)e�j�d�_�ejej��ed���e�j�d�_�e)e�_�ejej��ed���e�_�ej�dd�dd�deddd!ejej��ed���d&d�d(d�d�ej�dd�dd�ddd�dd�e�d�e�d!ejej��ed����g�Z�ej�e��e�ej�d�<ej�dd�dd�dedd d!ejej��ed���d&d�d(d�d�ej�dd�dd�ddd�dd�e�d�e�d!ejej��ed����g�Z�ej�e��e�ej�d�<ej�d�ej�fe�d�e�d�d���Z�ej�d�e�fe�d�e�d�d���Z�ej�d�ej�fe�d�e�d�d���Z�ej�d�e�fe�d�e�d�d���Z�dS(�i����NiicCs|S(N((tx((sO/usr/lib/python2.7/site-packages/google/protobuf/unittest_custom_options_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sO/usr/lib/python2.7/site-packages/google/protobuf/unittest_custom_options_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tservice(tservice_reflection(tdescriptor_pb2tnames-google/protobuf/unittest_custom_options.prototpackagetprotobuf_unittesttsyntaxtproto2t
serialized_pbs�
-google/protobuf/unittest_custom_options.protoprotobuf_unittest google/protobuf/descriptor.proto"�
TestMessageWithCustomOptions
field1 (	B���-�u

oneof_field (H";
AnEnum
ANENUM_VAL1
ANENUM_VAL2���{����:�����������B
AnOneof������������"
CustomOptionFooRequest"
CustomOptionFooResponse"
CustomOptionFooClientMessage"
CustomOptionFooServerMessage"m
DummyMessageContainingEnum"O
TestEnumType
TEST_OPTION_ENUM_TYPE1#
TEST_OPTION_ENUM_TYPE2�������"!
DummyMessageInvalidAsOptionType"�
CustomOptionMinIntegerValues:j�޲�Ʋ����������������������������İ��������������������������֨�"�
CustomOptionMaxIntegerValues:q�޲�Ʋ�����������������������������������İ����������������������������������������֨�������"n
CustomOptionOtherValues:S�Ʋ����������ߣ�EA�ܢ�Y�B��?�ܢHello, "World"�٢HelloWorld�٢�������"4
SettingRealsFromPositiveInts:�ߣ@A�ܢ@c@"4
SettingRealsFromNegativeInts:�ߣ@��ܢ@c�"U
ComplexOptionType1
foo (
foo2 (
foo3 (
foo4 (*d����"�
ComplexOptionType22
bar (2%.protobuf_unittest.ComplexOptionType1
baz (F
fred (28.protobuf_unittest.ComplexOptionType2.ComplexOptionType4H
barney (28.protobuf_unittest.ComplexOptionType2.ComplexOptionType4�
ComplexOptionType4
waldo (2r
complex_opt4.google.protobuf.MessageOptions��� (28.protobuf_unittest.ComplexOptionType2.ComplexOptionType4*d����"�
ComplexOptionType3
qux (T
complexoptiontype5 (
28.protobuf_unittest.ComplexOptionType3.ComplexOptionType5#
ComplexOptionType5
plugh ("
ComplexOpt6
xyzzy߿� ("�
VariousComplexOptions:���*��؅���������� c�� X�������������
����
؅�����

�������¬�����¬�؅�����
¬�����Ҩ���������"e���"��ސ	�ސ�������"#
AggregateMessageSet*����:"�
AggregateMessageSetElement	
s (	2w
message_set_extension&.protobuf_unittest.AggregateMessageSet�� (2-.protobuf_unittest.AggregateMessageSetElement"�
	Aggregate	
i (	
s (	)
sub (2.protobuf_unittest.Aggregate*
file (2.google.protobuf.FileOptions4
mset (2&.protobuf_unittest.AggregateMessageSet2M
nested.google.protobuf.FileOptions�Ѱ (2.protobuf_unittest.Aggregate"Y
AggregateMessage)
	fieldname (B�;FieldAnnotation:�ц;eMessageAnnotation"�
NestedOptionType;

NestedMessage"
nested_field (B����:����"5

NestedEnum
NESTED_ENUM_VALUE�������2A
nested_extension.google.protobuf.FileOptions��� (Bȋ��"d

OldOptionType8
value (2).protobuf_unittest.OldOptionType.TestEnum"
TestEnum
	OLD_VALUE"s

NewOptionType8
value (2).protobuf_unittest.NewOptionType.TestEnum"(
TestEnum
	OLD_VALUE
	NEW_VALUE"-
!TestMessageWithRequiredEnumOption:��*6

MethodOpt1
METHODOPT1_VAL1
METHODOPT1_VAL2*M

AggregateEnum%
VALUE��;EnumValueAnnotation���;EnumAnnotation2�
TestServiceWithCustomOptionsc
Foo).protobuf_unittest.CustomOptionFooRequest*.protobuf_unittest.CustomOptionFooResponse"�	����ۀ�I2�
AggregateServicek
Method#.protobuf_unittest.AggregateMessage#.protobuf_unittest.AggregateMessage"�Ȗ;MethodAnnotation��;ServiceAnnotation:2
	file_opt1.google.protobuf.FileOptions��� (:8
message_opt1.google.protobuf.MessageOptions��� (:4

field_opt1.google.protobuf.FieldOptions��� (:8

field_opt2.google.protobuf.FieldOptions��� (:42:4

oneof_opt1.google.protobuf.OneofOptionsϵ� (:2
	enum_opt1.google.protobuf.EnumOptions�� (:<
enum_value_opt1!.google.protobuf.EnumValueOptions�_ (:8
service_opt1.google.protobuf.ServiceOptions��� (:U
method_opt1.google.protobuf.MethodOptions��� (2.protobuf_unittest.MethodOpt1:4
bool_opt.google.protobuf.MessageOptions�� (:5
	int32_opt.google.protobuf.MessageOptions�� (:5
	int64_opt.google.protobuf.MessageOptionsƧ� (:6

uint32_opt.google.protobuf.MessageOptions��� (
:6

uint64_opt.google.protobuf.MessageOptionsߎ� (:6

sint32_opt.google.protobuf.MessageOptions��� (:6

sint64_opt.google.protobuf.MessageOptions��� (:7
fixed32_opt.google.protobuf.MessageOptions�� (:7
fixed64_opt.google.protobuf.MessageOptions�� (:8
sfixed32_opt.google.protobuf.MessageOptions��� (:8
sfixed64_opt.google.protobuf.MessageOptions�� (:5
	float_opt.google.protobuf.MessageOptions��� (:6

double_opt.google.protobuf.MessageOptionsͫ� (:6

string_opt.google.protobuf.MessageOptionsū� (	:5
	bytes_opt.google.protobuf.MessageOptions��� (:p
enum_opt.google.protobuf.MessageOptions��� (2:.protobuf_unittest.DummyMessageContainingEnum.TestEnumType:p
message_type_opt.google.protobuf.MessageOptions��� (22.protobuf_unittest.DummyMessageInvalidAsOptionType:6
quux%.protobuf_unittest.ComplexOptionType1��� (:^
corge%.protobuf_unittest.ComplexOptionType1��� (2%.protobuf_unittest.ComplexOptionType3:8
grault%.protobuf_unittest.ComplexOptionType2�� (:_
garply%.protobuf_unittest.ComplexOptionType2�� (2%.protobuf_unittest.ComplexOptionType1:_
complex_opt1.google.protobuf.MessageOptions��� (2%.protobuf_unittest.ComplexOptionType1:_
complex_opt2.google.protobuf.MessageOptionsՏ� (2%.protobuf_unittest.ComplexOptionType2:_
complex_opt3.google.protobuf.MessageOptions�� (2%.protobuf_unittest.ComplexOptionType3:W
complexopt6.google.protobuf.MessageOptions��� (
2.protobuf_unittest.ComplexOpt6:N
fileopt.google.protobuf.FileOptions�ݰ (2.protobuf_unittest.Aggregate:P
msgopt.google.protobuf.MessageOptions�� (2.protobuf_unittest.Aggregate:P
fieldopt.google.protobuf.FieldOptions�� (2.protobuf_unittest.Aggregate:N
enumopt.google.protobuf.EnumOptions҂� (2.protobuf_unittest.Aggregate:V

enumvalopt!.google.protobuf.EnumValueOptionsɟ� (2.protobuf_unittest.Aggregate:T

serviceopt.google.protobuf.ServiceOptions�� (2.protobuf_unittest.Aggregate:R
	methodopt.google.protobuf.MethodOptions�� (2.protobuf_unittest.Aggregate:_
required_enum_opt.google.protobuf.MessageOptions���2 (2 .protobuf_unittest.OldOptionTypeB��������$��;pdFileAnnotationNestedFileAnnotation"��;FileExtensionAnnotation*$��
EmbeddedMessageSetElementtdependenciest
MethodOpt1t	full_namesprotobuf_unittest.MethodOpt1tfilenametfiletvaluestMETHODOPT1_VAL1tindextnumberitoptionsttypetMETHODOPT1_VAL2itcontaining_typetserialized_starti�tserialized_endi�t
AggregateEnumsprotobuf_unittest.AggregateEnumtVALUEs��;EnumValueAnnotations���;EnumAnnotationi�iCi�vt	file_opt1sprotobuf_unittest.file_opt1itcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopei�vtmessage_opt1sprotobuf_unittest.message_opt1iivt
field_opt1sprotobuf_unittest.field_opt1ii�Pvt
field_opt2sprotobuf_unittest.field_opt2i*i�vt
oneof_opt1sprotobuf_unittest.oneof_opt1ihOvt	enum_opt1sprotobuf_unittest.enum_opt1iif�tenum_value_opt1s!protobuf_unittest.enum_value_opt1i"[xtservice_opt1sprotobuf_unittest.service_opt1iii�gxtmethod_opt1sprotobuf_unittest.method_opt1iii�utbool_optsprotobuf_unittest.bool_opti	im�ut	int32_optsprotobuf_unittest.int32_opti
iƓut	int64_optsprotobuf_unittest.int64_optii0�ut
uint32_optsprotobuf_unittest.uint32_optii
i_�ut
uint64_optsprotobuf_unittest.uint64_opti@�ut
sint32_optsprotobuf_unittest.sint32_optii�ut
sint64_optsprotobuf_unittest.sint64_optiSutfixed32_optsprotobuf_unittest.fixed32_optii�~utfixed64_optsprotobuf_unittest.fixed64_opti�xutsfixed32_optsprotobuf_unittest.sfixed32_opticEutsfixed64_optsprotobuf_unittest.sfixed64_optii�ut	float_optsprotobuf_unittest.float_optii�ut
double_optsprotobuf_unittest.double_optii�ut
string_optsprotobuf_unittest.string_optiRsutf-8i�ut	bytes_optsprotobuf_unittest.bytes_optii�utenum_optsprotobuf_unittest.enum_optii/�ttmessage_type_opts"protobuf_unittest.message_type_optii[�ttquuxsprotobuf_unittest.quuxiiR�ttcorgesprotobuf_unittest.corgeiio�ttgraultsprotobuf_unittest.graultiiȺttgarplysprotobuf_unittest.garplyii$�ttcomplex_opt1sprotobuf_unittest.complex_opt1iiՇttcomplex_opt2sprotobuf_unittest.complex_opt2ii�ttcomplex_opt3sprotobuf_unittest.complex_opt3i i��stcomplexopt6sprotobuf_unittest.complexopt6i!i�.�tfileoptsprotobuf_unittest.fileopti"i5�tmsgoptsprotobuf_unittest.msgopti#i:�tfieldoptsprotobuf_unittest.fieldopti$iRA�tenumoptsprotobuf_unittest.enumopti%i�O�t
enumvaloptsprotobuf_unittest.enumvalopti&i�w�t
serviceoptsprotobuf_unittest.serviceopti'i���t	methodoptsprotobuf_unittest.methodopti(i��Strequired_enum_opts#protobuf_unittest.required_enum_opti)tAnEnums5protobuf_unittest.TestMessageWithCustomOptions.AnEnumtANENUM_VAL1tANENUM_VAL2s���{s����i�i�tTestEnumTypes9protobuf_unittest.DummyMessageContainingEnum.TestEnumTypetTEST_OPTION_ENUM_TYPE1tTEST_OPTION_ENUM_TYPE2i��i�i
t
NestedEnums-protobuf_unittest.NestedOptionType.NestedEnumtNESTED_ENUM_VALUEs����s���i:
io
tTestEnums(protobuf_unittest.OldOptionType.TestEnumt	OLD_VALUEi�
is(protobuf_unittest.NewOptionType.TestEnumt	NEW_VALUEiei�tTestMessageWithCustomOptionss.protobuf_unittest.TestMessageWithCustomOptionstfieldstfield1s5protobuf_unittest.TestMessageWithCustomOptions.field1s���-�u
toneof_fields:protobuf_unittest.TestMessageWithCustomOptions.oneof_fieldt
extensionstnested_typest
enum_typess�����������t
is_extendabletextension_rangestoneofstAnOneofs6protobuf_unittest.TestMessageWithCustomOptions.AnOneofs������������igi&tCustomOptionFooRequests(protobuf_unittest.CustomOptionFooRequesti(i@tCustomOptionFooResponses)protobuf_unittest.CustomOptionFooResponseiBi[tCustomOptionFooClientMessages.protobuf_unittest.CustomOptionFooClientMessagei]i{tCustomOptionFooServerMessages.protobuf_unittest.CustomOptionFooServerMessagei}i�tDummyMessageContainingEnums,protobuf_unittest.DummyMessageContainingEnumi�tDummyMessageInvalidAsOptionTypes1protobuf_unittest.DummyMessageInvalidAsOptionTypeii-tCustomOptionMinIntegerValuess.protobuf_unittest.CustomOptionMinIntegerValuessj�޲�Ʋ����������������������������İ��������������������������֨�i0i�tCustomOptionMaxIntegerValuess.protobuf_unittest.CustomOptionMaxIntegerValuessq�޲�Ʋ�����������������������������������İ����������������������������������������֨�������i�iNtCustomOptionOtherValuess)protobuf_unittest.CustomOptionOtherValuessS�Ʋ����������ߣ�EA�ܢ�Y�B��?�ܢHello, "World"�٢HelloWorld�٢�������iPi�tSettingRealsFromPositiveIntss.protobuf_unittest.SettingRealsFromPositiveIntss�ߣ@A�ܢ@c@i�i�tSettingRealsFromNegativeIntss.protobuf_unittest.SettingRealsFromNegativeIntss�ߣ@��ܢ@c�i�i*tComplexOptionType1s$protobuf_unittest.ComplexOptionType1tfoos(protobuf_unittest.ComplexOptionType1.footfoo2s)protobuf_unittest.ComplexOptionType1.foo2tfoo3s)protobuf_unittest.ComplexOptionType1.foo3tfoo4s)protobuf_unittest.ComplexOptionType1.foo4idi i,i�tComplexOptionType4s7protobuf_unittest.ComplexOptionType2.ComplexOptionType4twaldos=protobuf_unittest.ComplexOptionType2.ComplexOptionType4.waldotcomplex_opt4sDprotobuf_unittest.ComplexOptionType2.ComplexOptionType4.complex_opt4i�ztinitComplexOptionType2s$protobuf_unittest.ComplexOptionType2tbars(protobuf_unittest.ComplexOptionType2.bartbazs(protobuf_unittest.ComplexOptionType2.baztfreds)protobuf_unittest.ComplexOptionType2.fredtbarneys+protobuf_unittest.ComplexOptionType2.barneyi�itComplexOptionType5s7protobuf_unittest.ComplexOptionType3.ComplexOptionType5tplughs=protobuf_unittest.ComplexOptionType3.ComplexOptionType5.plughi�i�tComplexOptionType3s$protobuf_unittest.ComplexOptionType3tquxs(protobuf_unittest.ComplexOptionType3.quxtcomplexoptiontype5s7protobuf_unittest.ComplexOptionType3.complexoptiontype5itComplexOpt6sprotobuf_unittest.ComplexOpt6txyzzys#protobuf_unittest.ComplexOpt6.xyzzyi��si�i�tVariousComplexOptionss'protobuf_unittest.VariousComplexOptionss���*��؅���������� c�� X�������������
����
؅�����

�������¬�����¬�؅�����
¬�����Ҩ���������"e���"��ސ	�ސ�������i�i�tAggregateMessageSets%protobuf_unittest.AggregateMessageSetsi���i�i�tAggregateMessageSetElements,protobuf_unittest.AggregateMessageSetElementtss.protobuf_unittest.AggregateMessageSetElement.stmessage_set_extensionsBprotobuf_unittest.AggregateMessageSetElement.message_set_extensioni���i�i�t	Aggregatesprotobuf_unittest.Aggregatetisprotobuf_unittest.Aggregate.isprotobuf_unittest.Aggregate.stsubsprotobuf_unittest.Aggregate.subs protobuf_unittest.Aggregate.filetmsets protobuf_unittest.Aggregate.msettnesteds"protobuf_unittest.Aggregate.nestedi�(�i�i�	tAggregateMessages"protobuf_unittest.AggregateMessaget	fieldnames,protobuf_unittest.AggregateMessage.fieldnames�;FieldAnnotations�ц;eMessageAnnotationi�	i�	t
NestedMessages0protobuf_unittest.NestedOptionType.NestedMessagetnested_fields=protobuf_unittest.NestedOptionType.NestedMessage.nested_fields����s����i�	i8
tNestedOptionTypes"protobuf_unittest.NestedOptionTypetnested_extensions3protobuf_unittest.NestedOptionType.nested_extensioni}�xsȋ��i�	i�
t
OldOptionTypesprotobuf_unittest.OldOptionTypetvalues%protobuf_unittest.OldOptionType.valuei�
t
NewOptionTypesprotobuf_unittest.NewOptionTypes%protobuf_unittest.NewOptionType.valueit!TestMessageWithRequiredEnumOptions3protobuf_unittest.TestMessageWithRequiredEnumOptions��i�i�t
DESCRIPTORt
__module__s+google.protobuf.unittest_custom_options_pb2s��������$��;pdFileAnnotationNestedFileAnnotation"��;FileExtensionAnnotation*$��
EmbeddedMessageSetElementtTestServiceWithCustomOptionss.protobuf_unittest.TestServiceWithCustomOptionss	����ۀ�IiFi�tmethodstFoos2protobuf_unittest.TestServiceWithCustomOptions.Footcontaining_servicet
input_typetoutput_types�tAggregateServices"protobuf_unittest.AggregateServices��;ServiceAnnotationi�ip
tMethods)protobuf_unittest.AggregateService.Methods�Ȗ;MethodAnnotationt!TestServiceWithCustomOptions_StubtAggregateService_Stub(idi (idi (ii���(�tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
t_serviceRRtDefaultt_sym_dbt'google_dot_protobuf_dot_descriptor__pb2tFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_METHODOPT1tRegisterEnumDescriptortEnumTypeWrapperRt
_ParseOptionstEnumValueOptionstEnumOptionst_AGGREGATEENUMR"RRR#tFILE_OPT1_FIELD_NUMBERtFieldDescriptortFalsetTrueR$tMESSAGE_OPT1_FIELD_NUMBERR-tFIELD_OPT1_FIELD_NUMBERR.tFIELD_OPT2_FIELD_NUMBERR/tONEOF_OPT1_FIELD_NUMBERR0tENUM_OPT1_FIELD_NUMBERR1tENUM_VALUE_OPT1_FIELD_NUMBERR2tSERVICE_OPT1_FIELD_NUMBERR3tMETHOD_OPT1_FIELD_NUMBERR4tBOOL_OPT_FIELD_NUMBERR5tINT32_OPT_FIELD_NUMBERR6tINT64_OPT_FIELD_NUMBERR7tUINT32_OPT_FIELD_NUMBERR8tUINT64_OPT_FIELD_NUMBERR9tSINT32_OPT_FIELD_NUMBERR:tSINT64_OPT_FIELD_NUMBERR;tFIXED32_OPT_FIELD_NUMBERR<tFIXED64_OPT_FIELD_NUMBERR=tSFIXED32_OPT_FIELD_NUMBERR>tSFIXED64_OPT_FIELD_NUMBERR?tFLOAT_OPT_FIELD_NUMBERtfloatR@tDOUBLE_OPT_FIELD_NUMBERRAtSTRING_OPT_FIELD_NUMBERtdecodeRBtBYTES_OPT_FIELD_NUMBERRCtENUM_OPT_FIELD_NUMBERRDtMESSAGE_TYPE_OPT_FIELD_NUMBERREtQUUX_FIELD_NUMBERRFtCORGE_FIELD_NUMBERRGtGRAULT_FIELD_NUMBERRHtGARPLY_FIELD_NUMBERRItCOMPLEX_OPT1_FIELD_NUMBERRJtCOMPLEX_OPT2_FIELD_NUMBERRKtCOMPLEX_OPT3_FIELD_NUMBERRLtCOMPLEXOPT6_FIELD_NUMBERRMtFILEOPT_FIELD_NUMBERRNtMSGOPT_FIELD_NUMBERROtFIELDOPT_FIELD_NUMBERRPtENUMOPT_FIELD_NUMBERRQtENUMVALOPT_FIELD_NUMBERRRtSERVICEOPT_FIELD_NUMBERRStMETHODOPT_FIELD_NUMBERRTtREQUIRED_ENUM_OPT_FIELD_NUMBERRUt$_TESTMESSAGEWITHCUSTOMOPTIONS_ANENUMt(_DUMMYMESSAGECONTAININGENUM_TESTENUMTYPEt_NESTEDOPTIONTYPE_NESTEDENUMt_OLDOPTIONTYPE_TESTENUMt_NEWOPTIONTYPE_TESTENUMt
DescriptortFieldOptionstMessageOptionstOneofDescriptortOneofOptionst_TESTMESSAGEWITHCUSTOMOPTIONSt_CUSTOMOPTIONFOOREQUESTt_CUSTOMOPTIONFOORESPONSEt_CUSTOMOPTIONFOOCLIENTMESSAGEt_CUSTOMOPTIONFOOSERVERMESSAGEt_DUMMYMESSAGECONTAININGENUMt _DUMMYMESSAGEINVALIDASOPTIONTYPEt_CUSTOMOPTIONMININTEGERVALUESt_CUSTOMOPTIONMAXINTEGERVALUESt_CUSTOMOPTIONOTHERVALUESt_SETTINGREALSFROMPOSITIVEINTSt_SETTINGREALSFROMNEGATIVEINTSt_COMPLEXOPTIONTYPE1t&_COMPLEXOPTIONTYPE2_COMPLEXOPTIONTYPE4t_COMPLEXOPTIONTYPE2t&_COMPLEXOPTIONTYPE3_COMPLEXOPTIONTYPE5t_COMPLEXOPTIONTYPE3t_COMPLEXOPT6t_VARIOUSCOMPLEXOPTIONSt_AGGREGATEMESSAGESETt_AGGREGATEMESSAGESETELEMENTt
_AGGREGATEt_AGGREGATEMESSAGEt_NESTEDOPTIONTYPE_NESTEDMESSAGEt_NESTEDOPTIONTYPEt_OLDOPTIONTYPEt_NEWOPTIONTYPEt"_TESTMESSAGEWITHREQUIREDENUMOPTIONRtoneofs_by_nameRbtappendtfields_by_nametcontaining_oneofR)t_FILEOPTIONSR*tmessage_types_by_nametenum_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRatRegisterMessageRlRmRnRoRpRqRrRsRtRuRvRwRR|R�R�R�R�R�R�R�R�R�R�R�R�R�tFileOptionstRegisterExtensiontServiceOptionst
MethodOptionsthas_optionst_optionstvalues_by_nametServiceDescriptortMethodDescriptort_TESTSERVICEWITHCUSTOMOPTIONStRegisterServiceDescriptortservices_by_namet_AGGREGATESERVICEtGeneratedServiceTypetServiceR�tGeneratedServiceStubTypeR�R�R�(((sO/usr/lib/python2.7/site-packages/google/protobuf/unittest_custom_options_pb2.pyt<module>s�%					
			
																																														
				
			
			
				
		$			6																																																																									*			*			*																					






























































































			
	

	
													!	!((	!((	!	!	!	!	!	!	!	!(	!(	!	!((	!		'

		'

PK��\�`
,
,
protobuf/proto_builder.pyonu�[����
���hc@s�dZyddlmZWn!ek
r=ddlmZnXddlZddlZddlmZddlm	Z	d�Z
ddd�Zd�Z
dS(	sDynamic Protobuf class creator.i����(tOrderedDictN(tdescriptor_pb2(tmessage_factorycCs%|jj|�}|j|�}|S(s8Get a proto class from the MessageFactory by name.

  Args:
    factory: a MessageFactory instance.
    full_name: str, the fully qualified name of the proto type.
  Returns:
    A class, for the type identified by full_name.
  Raises:
    KeyError, if the proto is not found in the factory's descriptor pool.
  (tpooltFindMessageTypeByNametGetPrototype(tfactoryt	full_nametproto_descriptort	proto_cls((sA/usr/lib/python2.7/site-packages/google/protobuf/proto_builder.pyt_GetMessageFromFactory,sc
CsNtjd|�}|dk	rLyt||�}|SWqLtk
rHqLXn|j�}t|t�svt|�}nt	j
�}xF|D]>\}}|j|jd��|jt
|�jd��q�W|j�d}	|dkr%d|j�}yt||�}|SWq%tk
r!q%Xn|jjt|	||��t||�S(s�Create a Protobuf class whose fields are basic types.

  Note: this doesn't validate field names!

  Args:
    fields: dict of {name: field_type} mappings for each field in the proto. If
        this is an OrderedDict the order will be maintained, otherwise the
        fields will be sorted by name.
    full_name: optional str, the fully-qualified name of the proto type.
    pool: optional DescriptorPool instance.
  Returns:
    a class, the new protobuf class with a FileDescriptor.
  Rsutf-8s.protos6net.proto2.python.public.proto_builder.AnonymousProto_N(RtMessageFactorytNoneR
tKeyErrortitemst
isinstanceRtsortedthashlibtsha1tupdatetencodetstrt	hexdigestRtAddt_MakeFileDescriptorProto(
tfieldsRRRR	tfield_itemstfields_hashtf_nametf_typetproto_file_name((sA/usr/lib/python2.7/site-packages/google/protobuf/proto_builder.pytMakeSimpleProtoClass<s4
 

	cCs�|jdd�\}}tj�}tjj|jdd�|�|_||_|j	j
�}||_x\t|d�D]K\}\}}	|jj
�}
||
_||
_
tjj|
_|	|
_qyW|S(sAPopulate FileDescriptorProto for MessageFactory's DescriptorPool.t.it/(trsplitRtFileDescriptorPrototostpathtjointreplacetnametpackagetmessage_typetaddt	enumeratetfieldtnumbertFieldDescriptorPrototLABEL_OPTIONALtlabelttype(RRRR)R(t
file_protot
desc_prototf_numberRRtfield_proto((sA/usr/lib/python2.7/site-packages/google/protobuf/proto_builder.pyRts$		"		
(t__doc__tcollectionsRtImportErrortordereddictRR$tgoogle.protobufRRR
RRR(((sA/usr/lib/python2.7/site-packages/google/protobuf/proto_builder.pyt<module>s
	8PK��\�ڍ:����protobuf/map_unittest_pb2.pycnu�[����
���hc?@swmddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZdd
lmZejddddddded�dejejg�Zejdddddddedejddddddd dd!d�ejdd"dd#dd#d dd!d�ejdd$dd%dd%d dd!d�gd&dd dd'd(d)d*�	Zeje�eje�ZdZd#Zd%Z ejdd+dd,dddedejdd-ddddd dd!d�gd&dd dd'd.d)d/�	Z!eje!�ej"dd0dd1ddded&dd2ej#dd3dd4dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd?dd#dd%d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dGd)dH�Z'ej"ddIddJddded&dd2ej#dd3ddKdddd#d!dd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddLdd#dd%d!dd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dMd)dN�Z(ej"ddOddPddded&dd2ej#dd3ddQdddd#d!dRd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddSdd#dd%d!dRd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dTd)dU�Z)ej"ddVddWddded&dd2ej#dd3ddXdddd#d!dYd6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddZdd#dd%d!dYd6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd[d)d\�Z*ej"dd]dd^ddded&dd2ej#dd3dd_dddd#d!d`d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddadd#dd%d!d`d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dbd)dc�Z+ej"dddddeddded&dd2ej#dd3ddfdddd#d!dgd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddhdd#dd%d!dgd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'did)dj�Z,ej"ddkddlddded&dd2ej#dd3ddmdddd#d!dnd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddodd#dd%d!dnd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dpd)dq�Z-ej"ddrddsddded&dd2ej#dd3ddtdddd#d!dud6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddvdd#dd%d!dud6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dwd)dx�Z.ej"ddyddzddded&dd2ej#dd3dd{dddd#d!d|d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd}dd#dd%d!d|d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd~d)d�Z/ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d�d6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z0ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d%d6dud7d#d8e$d9e1d�d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z2ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d#d6d5d7d#d8e$d9e1d�d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z3ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d�d6dnd7d#d8e$d9e$d:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6dnd7d#d8e$d9e$d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z4ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z6ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9ed��d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z7ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z8ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z9ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z:ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z;ej"dd�dd�ddded&dd2ej#dd�dd�dddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd#dd%d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd%ddd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�ddddYd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�ddYdd5d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd5ddud!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dduddnd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�ddndd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�ddRd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�ddRdd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd|d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd|dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd`d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd`ddgd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�ddgdd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAe'e(e)e*e+e,e-e.e/e0e2e3e4e6e7e8e9e:e;gdBgd ddDe$dddEgdFgd'd�d)d��Z<ej"dd�dd�ddded&dd2ej#dd�dd�dddd#d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ddDe$dddEgdFgd'd�d)d��Z=ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z>ej"dd�dd�ddded&dd2ej#dd�dd�dddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAe>gdBgd ddDe$dddEgdFgd'd�d)d��Z?ej"ddddddded&dd2ej#dd3dddddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dddd#dd%d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dd)d�Z@ej"ddddddded&dd2ej#dd3dddddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd	dd#dd%d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd
d)d�ZAej"dddd
ddded&dd2ej#dddddddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dddddd#dd%d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAe@eAgdBgd ddDe$dddEgdFgd'dd)d�ZBej"ddddddded&dd2ej#dd3dddddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dddd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dd)d�ZCej"ddddddded&dd2ej#dddddddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAeCgdBgd ddDe$dddEgdFgd'dd)d�ZDej"dd0ddddded&dd2ej#dd3dddddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd dd#dd%d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dGd)dH�ZEej"ddIdd!ddded&dd2ej#dd3dd"dddd#d!dd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd#dd#dd%d!dd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dMd)dN�ZFej"ddOdd$ddded&dd2ej#dd3dd%dddd#d!dRd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd&dd#dd%d!dRd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dTd)dU�ZGej"ddVdd'ddded&dd2ej#dd3dd(dddd#d!dYd6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd)dd#dd%d!dYd6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd[d)d\�ZHej"dd]dd*ddded&dd2ej#dd3dd+dddd#d!d`d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd,dd#dd%d!d`d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dbd)dc�ZIej"ddddd-ddded&dd2ej#dd3dd.dddd#d!dgd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd/dd#dd%d!dgd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'did)dj�ZJej"ddkdd0ddded&dd2ej#dd3dd1dddd#d!dnd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd2dd#dd%d!dnd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dpd)dq�ZKej"ddrdd3ddded&dd2ej#dd3dd4dddd#d!dud6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd5dd#dd%d!dud6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dwd)dx�ZLej"ddydd6ddded&dd2ej#dd3dd7dddd#d!d|d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd8dd#dd%d!d|d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd~d)d�ZMej"dd�dd9ddded&dd2ej#dd3dd:dddd#d!d�d6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd;dd#dd%d!d�d6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZNej"dd�dd<ddded&dd2ej#dd3dd=dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd>dd#dd%d!d%d6dud7d#d8e$d9e1d�d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZOej"dd�dd?ddded&dd2ej#dd3dd@dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddAdd#dd%d!d#d6d5d7d#d8e$d9e1d�d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZPej"dd�ddBddded&dd2ej#dd3ddCdddd#d!d�d6dnd7d#d8e$d9e$d:dd;dd&dd<e$d=dd dde�ej#dd>ddDdd#dd%d!d�d6dnd7d#d8e$d9e$d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZQej"dd�ddEddded&dd2ej#dd3ddFdddd#d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�ej#dd>ddGdd#dd%d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZRej"dd�ddHddded&dd2ej#dd3ddIdddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddJdd#dd%d!d�d6d�d7d#d8e$d9ed��d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZSej"dd�ddKddded&dd2ej#dd3ddLdddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddMdd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZTej"dd�ddNddded&dd2ej#dd3ddOdddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddPdd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZUej"ddQddRddded&dd2ej#dd3ddSdddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddTdd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dUd)dV�ZVej"ddWddXddded&dd2ej#dd�ddYdddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddZdd#dd%d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd[dd%ddd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd\ddddYd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd]ddYdd5d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd^dd5ddud!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd_dduddnd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd`ddndd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddadd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddbdd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddcdd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddddd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddedd�ddRd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddfddRdd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddgdd�dd|d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddhdd|dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddidd�dd`d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#ddjddkdd`ddgd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVgdBgd ddDe$dddEgdFgd'dld)dV�ZWej"ddmddnddded&dd2ej#dd3ddodddd#d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�ej#dd>ddpdd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dqd)dr�ZXej"ddsddtddded&dd2ej#dd!ddudddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAeXgdBe!gd ddDe$dddEgdFgd'dvd)d/�ZYej"ddwddxddded&dd2ej#dd3ddydddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddzdd#dd%d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd{d)d|�ZZej"dd}dd~ddded&dd2ej#dddd�dddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAeZgdBgd ddDe$dddEgdFgd'd�d)d|�Z[ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z\ej"dd�dd�ddded&dd2ej#dd�dd�dddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAe\gdBgd ddDe$dddEgdFgd'd�d)d��Z]e<e'_^e<e(_^e<e)_^e<e*_^e<e+_^e<e,_^e<e-_^e<e._^e<e/_^e<e0_^e<e2_^e<e3_^e<e4_^e<e6_^e<e7_^ee8j_d>_`e<e8_^ejae9j_d>_be<e9_^ejae:j_d>_be<e:_^ejce;j_d>_be<e;_^e'e<j_d�_be(e<j_d�_be)e<j_d�_be*e<j_d�_be+e<j_d�_be,e<j_d�_be-e<j_d�_be.e<j_d�_be/e<j_d�_be0e<j_d�_be2e<j_d�_be3e<j_d�_be4e<j_d�_be6e<j_d�_be7e<j_d�_be8e<j_d�_be9e<j_d�_be:e<j_d�_be;e<j_d�_be<e=j_d�_bejce>j_d>_be?e>_^e>e?j_d�_beBe@_^eBeA_^e@eBj_d_beAeBj_d_bejdeCj_d>_beDeC_^eCeDj_d_beWeE_^eWeF_^eWeG_^eWeH_^eWeI_^eWeJ_^eWeK_^eWeL_^eWeM_^eWeN_^eWeO_^eWeP_^eWeQ_^eWeR_^eWeS_^eeTj_d>_`eWeT_^ejaeUj_d>_beWeU_^ejaeVj_d>_beWeV_^eEeWj_d�_beFeWj_d�_beGeWj_d�_beHeWj_d�_beIeWj_d�_beJeWj_d�_beKeWj_d�_beLeWj_d�_beMeWj_d�_beNeWj_d�_beOeWj_d�_bePeWj_d�_beQeWj_d�_beReWj_d�_beSeWj_d�_beTeWj_d�_beUeWj_d�_beVeWj_dj_beYeXj_d>_beYeX_^eXeYj_d!_beYe!_^e[eZ_^eZe[j_d_be]e\j_d>_be]e\_^e\e]j_d�_be<ejed�<e=ejed�<e?ejed�<eBejed<eDejed<eWejedW<eYejeds<e[ejed}<e]ejed�<eejfd<ejge�ejhd�e	jifejd0ejhd0e	jifejd�e'd�d���dIejhdIe	jifejd�e(d�d���dOejhdOe	jifejd�e)d�d���dVejhdVe	jifejd�e*d�d���d]ejhd]e	jifejd�e+d�d���ddejhdde	jifejd�e,d�d���dkejhdke	jifejd�e-d�d���drejhdre	jifejd�e.d�d���dyejhdye	jifejd�e/d�d���d�ejhd�e	jifejd�e0d�d���d�ejhd�e	jifejd�e2d�d���d�ejhd�e	jifejd�e3d�d���d�ejhd�e	jifejd�e4d�d���d�ejhd�e	jifejd�e6d�d���d�ejhd�e	jifejd�e7d�d���d�ejhd�e	jifejd�e8d�d���d�ejhd�e	jifejd�e9d�d���d�ejhd�e	jifejd�e:d�d���d�ejhd�e	jifejd�e;d�d���d�e<d�d���Zkejlek�ejlekjm�ejlekjn�ejlekjo�ejlekjp�ejlekjq�ejlekjr�ejlekjs�ejlekjt�ejlekju�ejlekjv�ejlekjw�ejlekjx�ejlekjy�ejlekjz�ejlekj{�ejlekj|�ejlekj}�ejlekj~�ejlekj�ejhd�e	jifejd�e=d�d���Z�ejle��ejhd�e	jifejd�ejhd�e	jifejd�e>d�d���d�e?d�d���Z�ejle��ejle�j��ejhde	jifejdejhde	jifejd�e@d�d���dejhde	jifejd�eAd�d���d�eBd�d���Z�ejle��ejle�j��ejle�j��ejhde	jifejdejhde	jifejd�eCd�d���d�eDd�d���Z�ejle��ejle�j��ejhdWe	jifejd0ejhd0e	jifejd�eEd�d���dIejhdIe	jifejd�eFd�d���dOejhdOe	jifejd�eGd�d���dVejhdVe	jifejd�eHd�d���d]ejhd]e	jifejd�eId�d���ddejhdde	jifejd�eJd�d���dkejhdke	jifejd�eKd�d���drejhdre	jifejd�eLd�d���dyejhdye	jifejd�eMd�d���d�ejhd�e	jifejd�eNd�d���d�ejhd�e	jifejd�eOd�d���d�ejhd�e	jifejd�ePd�d���d�ejhd�e	jifejd�eQd�d���d�ejhd�e	jifejd�eRd�d���d�ejhd�e	jifejd�eSd�d���d�ejhd�e	jifejd�eTd�d���d�ejhd�e	jifejd�eUd�d���dQejhdQe	jifejd�eVd�d���d�eWd�d���Z�ejle��ejle�jm�ejle�jn�ejle�jo�ejle�jp�ejle�jq�ejle�jr�ejle�js�ejle�jt�ejle�ju�ejle�jv�ejle�jw�ejle�jx�ejle�jy�ejle�jz�ejle�j{�ejle�j|�ejle�j}�ejle�j��ejhdse	jifejdmejhdme	jifejd�eXd�d���d�eYd�d���Z�ejle��ejle�j��ejhd}e	jifejdwejhdwe	jifejd�eZd�d���d�e[d�d���Z�ejle��ejle�j��ejhd�e	jifejd�ejhd�e	jifejd�e\d�d���d�e]d�d���Z�ejle��ejle�j��e�e_�ej%ej��ed���e_�e�e'_�ej%ej&�edC��e'_�e�e(_�ej%ej&�edC��e(_�e�e)_�ej%ej&�edC��e)_�e�e*_�ej%ej&�edC��e*_�e�e+_�ej%ej&�edC��e+_�e�e,_�ej%ej&�edC��e,_�e�e-_�ej%ej&�edC��e-_�e�e._�ej%ej&�edC��e._�e�e/_�ej%ej&�edC��e/_�e�e0_�ej%ej&�edC��e0_�e�e2_�ej%ej&�edC��e2_�e�e3_�ej%ej&�edC��e3_�e�e4_�ej%ej&�edC��e4_�e�e6_�ej%ej&�edC��e6_�e�e7_�ej%ej&�edC��e7_�e�e8_�ej%ej&�edC��e8_�e�e9_�ej%ej&�edC��e9_�e�e:_�ej%ej&�edC��e:_�e�e;_�ej%ej&�edC��e;_�e�e>_�ej%ej&�edC��e>_�e�e@_�ej%ej&�edC��e@_�e�eA_�ej%ej&�edC��eA_�e�eC_�ej%ej&�edC��eC_�e�eE_�ej%ej&�edC��eE_�e�eF_�ej%ej&�edC��eF_�e�eG_�ej%ej&�edC��eG_�e�eH_�ej%ej&�edC��eH_�e�eI_�ej%ej&�edC��eI_�e�eJ_�ej%ej&�edC��eJ_�e�eK_�ej%ej&�edC��eK_�e�eL_�ej%ej&�edC��eL_�e�eM_�ej%ej&�edC��eM_�e�eN_�ej%ej&�edC��eN_�e�eO_�ej%ej&�edC��eO_�e�eP_�ej%ej&�edC��eP_�e�eQ_�ej%ej&�edC��eQ_�e�eR_�ej%ej&�edC��eR_�e�eS_�ej%ej&�edC��eS_�e�eT_�ej%ej&�edC��eT_�e�eU_�ej%ej&�edC��eU_�e�eV_�ej%ej&�edC��eV_�e�eX_�ej%ej&�edC��eX_�e�eZ_�ej%ej&�edC��eZ_�e�e\_�ej%ej&�edC��e\_�dS(�i����NiicCs|S(N((tx((sD/usr/lib/python2.7/site-packages/google/protobuf/map_unittest_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sD/usr/lib/python2.7/site-packages/google/protobuf/map_unittest_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_pb2(tunittest_no_arena_pb2tnames"google/protobuf/map_unittest.prototpackagetprotobuf_unittesttsyntaxtproto3t
serialized_pbs}
"google/protobuf/map_unittest.protoprotobuf_unittestgoogle/protobuf/unittest.proto'google/protobuf/unittest_no_arena.proto"�
TestMapF
map_int32_int32 (2-.protobuf_unittest.TestMap.MapInt32Int32EntryF
map_int64_int64 (2-.protobuf_unittest.TestMap.MapInt64Int64EntryJ
map_uint32_uint32 (2/.protobuf_unittest.TestMap.MapUint32Uint32EntryJ
map_uint64_uint64 (2/.protobuf_unittest.TestMap.MapUint64Uint64EntryJ
map_sint32_sint32 (2/.protobuf_unittest.TestMap.MapSint32Sint32EntryJ
map_sint64_sint64 (2/.protobuf_unittest.TestMap.MapSint64Sint64EntryN
map_fixed32_fixed32 (21.protobuf_unittest.TestMap.MapFixed32Fixed32EntryN
map_fixed64_fixed64 (21.protobuf_unittest.TestMap.MapFixed64Fixed64EntryR
map_sfixed32_sfixed32	 (23.protobuf_unittest.TestMap.MapSfixed32Sfixed32EntryR
map_sfixed64_sfixed64
 (23.protobuf_unittest.TestMap.MapSfixed64Sfixed64EntryF
map_int32_float (2-.protobuf_unittest.TestMap.MapInt32FloatEntryH
map_int32_double (2..protobuf_unittest.TestMap.MapInt32DoubleEntryB

map_bool_bool
 (2+.protobuf_unittest.TestMap.MapBoolBoolEntryJ
map_string_string (2/.protobuf_unittest.TestMap.MapStringStringEntryF
map_int32_bytes (2-.protobuf_unittest.TestMap.MapInt32BytesEntryD
map_int32_enum (2,.protobuf_unittest.TestMap.MapInt32EnumEntryY
map_int32_foreign_message (26.protobuf_unittest.TestMap.MapInt32ForeignMessageEntry[
map_string_foreign_message (27.protobuf_unittest.TestMap.MapStringForeignMessageEntryM
map_int32_all_types (20.protobuf_unittest.TestMap.MapInt32AllTypesEntry4
MapInt32Int32Entry
key (
value (:84
MapInt64Int64Entry
key (
value (:86
MapUint32Uint32Entry
key (

value (
:86
MapUint64Uint64Entry
key (
value (:86
MapSint32Sint32Entry
key (
value (:86
MapSint64Sint64Entry
key (
value (:88
MapFixed32Fixed32Entry
key (
value (:88
MapFixed64Fixed64Entry
key (
value (:8:
MapSfixed32Sfixed32Entry
key (
value (:8:
MapSfixed64Sfixed64Entry
key (
value (:84
MapInt32FloatEntry
key (
value (:85
MapInt32DoubleEntry
key (
value (:82
MapBoolBoolEntry
key (
value (:86
MapStringStringEntry
key (	
value (	:84
MapInt32BytesEntry
key (
value (:8O
MapInt32EnumEntry
key ()
value (2.protobuf_unittest.MapEnum:8`
MapInt32ForeignMessageEntry
key (0
value (2!.protobuf_unittest.ForeignMessage:8a
MapStringForeignMessageEntry
key (	0
value (2!.protobuf_unittest.ForeignMessage:8X
MapInt32AllTypesEntry
key (.
value (2.protobuf_unittest.TestAllTypes:8"A
TestMapSubmessage,
test_map (2.protobuf_unittest.TestMap"�
TestMessageMapQ
map_int32_message (26.protobuf_unittest.TestMessageMap.MapInt32MessageEntryW
MapInt32MessageEntry
key (.
value (2.protobuf_unittest.TestAllTypes:8"�
TestSameTypeMap:
map1 (2,.protobuf_unittest.TestSameTypeMap.Map1Entry:
map2 (2,.protobuf_unittest.TestSameTypeMap.Map2Entry+
	Map1Entry
key (
value (:8+
	Map2Entry
key (
value (:8"�
TestRequiredMessageMapJ
	map_field (27.protobuf_unittest.TestRequiredMessageMap.MapFieldEntryP

MapFieldEntry
key (.
value (2.protobuf_unittest.TestRequired:8"�
TestArenaMapK
map_int32_int32 (22.protobuf_unittest.TestArenaMap.MapInt32Int32EntryK
map_int64_int64 (22.protobuf_unittest.TestArenaMap.MapInt64Int64EntryO
map_uint32_uint32 (24.protobuf_unittest.TestArenaMap.MapUint32Uint32EntryO
map_uint64_uint64 (24.protobuf_unittest.TestArenaMap.MapUint64Uint64EntryO
map_sint32_sint32 (24.protobuf_unittest.TestArenaMap.MapSint32Sint32EntryO
map_sint64_sint64 (24.protobuf_unittest.TestArenaMap.MapSint64Sint64EntryS
map_fixed32_fixed32 (26.protobuf_unittest.TestArenaMap.MapFixed32Fixed32EntryS
map_fixed64_fixed64 (26.protobuf_unittest.TestArenaMap.MapFixed64Fixed64EntryW
map_sfixed32_sfixed32	 (28.protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32EntryW
map_sfixed64_sfixed64
 (28.protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64EntryK
map_int32_float (22.protobuf_unittest.TestArenaMap.MapInt32FloatEntryM
map_int32_double (23.protobuf_unittest.TestArenaMap.MapInt32DoubleEntryG

map_bool_bool
 (20.protobuf_unittest.TestArenaMap.MapBoolBoolEntryO
map_string_string (24.protobuf_unittest.TestArenaMap.MapStringStringEntryK
map_int32_bytes (22.protobuf_unittest.TestArenaMap.MapInt32BytesEntryI
map_int32_enum (21.protobuf_unittest.TestArenaMap.MapInt32EnumEntry^
map_int32_foreign_message (2;.protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntryn
"map_int32_foreign_message_no_arena (2B.protobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry4
MapInt32Int32Entry
key (
value (:84
MapInt64Int64Entry
key (
value (:86
MapUint32Uint32Entry
key (

value (
:86
MapUint64Uint64Entry
key (
value (:86
MapSint32Sint32Entry
key (
value (:86
MapSint64Sint64Entry
key (
value (:88
MapFixed32Fixed32Entry
key (
value (:88
MapFixed64Fixed64Entry
key (
value (:8:
MapSfixed32Sfixed32Entry
key (
value (:8:
MapSfixed64Sfixed64Entry
key (
value (:84
MapInt32FloatEntry
key (
value (:85
MapInt32DoubleEntry
key (
value (:82
MapBoolBoolEntry
key (
value (:86
MapStringStringEntry
key (	
value (	:84
MapInt32BytesEntry
key (
value (:8O
MapInt32EnumEntry
key ()
value (2.protobuf_unittest.MapEnum:8`
MapInt32ForeignMessageEntry
key (0
value (2!.protobuf_unittest.ForeignMessage:8p
"MapInt32ForeignMessageNoArenaEntry
key (9
value (2*.protobuf_unittest_no_arena.ForeignMessage:8"�
MessageContainingEnumCalledTypeJ
type (2<.protobuf_unittest.MessageContainingEnumCalledType.TypeEntry_
	TypeEntry
key (	A
value (22.protobuf_unittest.MessageContainingEnumCalledType:8"
Type
TYPE_FOO"�
MessageContainingMapCalledEntryL
entry (2=.protobuf_unittest.MessageContainingMapCalledEntry.EntryEntry,

EntryEntry
key (
value (:8"�
TestRecursiveMapMessage<
a (21.protobuf_unittest.TestRecursiveMapMessage.AEntryT
AEntry
key (	9
value (2*.protobuf_unittest.TestRecursiveMapMessage:8*?
MapEnum
MAP_ENUM_FOO
MAP_ENUM_BAR
MAP_ENUM_BAZB�bproto3tdependenciestMapEnumt	full_namesprotobuf_unittest.MapEnumtfilenametfiletvaluestMAP_ENUM_FOOtindextnumbertoptionsttypetMAP_ENUM_BARitMAP_ENUM_BAZitcontaining_typetserialized_starti1tserialized_endiptTypes6protobuf_unittest.MessageContainingEnumCalledType.TypetTYPE_FOOi�i�tMapInt32Int32Entrys,protobuf_unittest.TestMap.MapInt32Int32Entrytfieldstkeys0protobuf_unittest.TestMap.MapInt32Int32Entry.keyitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetvalues2protobuf_unittest.TestMap.MapInt32Int32Entry.valuet
extensionstnested_typest
enum_typess8t
is_extendabletextension_rangestoneofsiMi�tMapInt64Int64Entrys,protobuf_unittest.TestMap.MapInt64Int64Entrys0protobuf_unittest.TestMap.MapInt64Int64Entry.keys2protobuf_unittest.TestMap.MapInt64Int64Entry.valuei�i�tMapUint32Uint32Entrys.protobuf_unittest.TestMap.MapUint32Uint32Entrys2protobuf_unittest.TestMap.MapUint32Uint32Entry.keyi
s4protobuf_unittest.TestMap.MapUint32Uint32Entry.valuei�i�tMapUint64Uint64Entrys.protobuf_unittest.TestMap.MapUint64Uint64Entrys2protobuf_unittest.TestMap.MapUint64Uint64Entry.keyis4protobuf_unittest.TestMap.MapUint64Uint64Entry.valuei�i'tMapSint32Sint32Entrys.protobuf_unittest.TestMap.MapSint32Sint32Entrys2protobuf_unittest.TestMap.MapSint32Sint32Entry.keyis4protobuf_unittest.TestMap.MapSint32Sint32Entry.valuei)i_tMapSint64Sint64Entrys.protobuf_unittest.TestMap.MapSint64Sint64Entrys2protobuf_unittest.TestMap.MapSint64Sint64Entry.keyis4protobuf_unittest.TestMap.MapSint64Sint64Entry.valueiai�tMapFixed32Fixed32Entrys0protobuf_unittest.TestMap.MapFixed32Fixed32Entrys4protobuf_unittest.TestMap.MapFixed32Fixed32Entry.keyis6protobuf_unittest.TestMap.MapFixed32Fixed32Entry.valuei�i�tMapFixed64Fixed64Entrys0protobuf_unittest.TestMap.MapFixed64Fixed64Entrys4protobuf_unittest.TestMap.MapFixed64Fixed64Entry.keyis6protobuf_unittest.TestMap.MapFixed64Fixed64Entry.valuei�itMapSfixed32Sfixed32Entrys2protobuf_unittest.TestMap.MapSfixed32Sfixed32Entrys6protobuf_unittest.TestMap.MapSfixed32Sfixed32Entry.keyis8protobuf_unittest.TestMap.MapSfixed32Sfixed32Entry.valuei
iGtMapSfixed64Sfixed64Entrys2protobuf_unittest.TestMap.MapSfixed64Sfixed64Entrys6protobuf_unittest.TestMap.MapSfixed64Sfixed64Entry.keyis8protobuf_unittest.TestMap.MapSfixed64Sfixed64Entry.valueiIi�tMapInt32FloatEntrys,protobuf_unittest.TestMap.MapInt32FloatEntrys0protobuf_unittest.TestMap.MapInt32FloatEntry.keys2protobuf_unittest.TestMap.MapInt32FloatEntry.valuei�i�tMapInt32DoubleEntrys-protobuf_unittest.TestMap.MapInt32DoubleEntrys1protobuf_unittest.TestMap.MapInt32DoubleEntry.keys3protobuf_unittest.TestMap.MapInt32DoubleEntry.valuei�i�tMapBoolBoolEntrys*protobuf_unittest.TestMap.MapBoolBoolEntrys.protobuf_unittest.TestMap.MapBoolBoolEntry.keyis0protobuf_unittest.TestMap.MapBoolBoolEntry.valuei�i$	tMapStringStringEntrys.protobuf_unittest.TestMap.MapStringStringEntrys2protobuf_unittest.TestMap.MapStringStringEntry.keyi	Rsutf-8s4protobuf_unittest.TestMap.MapStringStringEntry.valuei&	i\	tMapInt32BytesEntrys,protobuf_unittest.TestMap.MapInt32BytesEntrys0protobuf_unittest.TestMap.MapInt32BytesEntry.keys2protobuf_unittest.TestMap.MapInt32BytesEntry.valueii^	i�	tMapInt32EnumEntrys+protobuf_unittest.TestMap.MapInt32EnumEntrys/protobuf_unittest.TestMap.MapInt32EnumEntry.keys1protobuf_unittest.TestMap.MapInt32EnumEntry.valueii�	i�	tMapInt32ForeignMessageEntrys5protobuf_unittest.TestMap.MapInt32ForeignMessageEntrys9protobuf_unittest.TestMap.MapInt32ForeignMessageEntry.keys;protobuf_unittest.TestMap.MapInt32ForeignMessageEntry.valueii
i�	iE
tMapStringForeignMessageEntrys6protobuf_unittest.TestMap.MapStringForeignMessageEntrys:protobuf_unittest.TestMap.MapStringForeignMessageEntry.keys<protobuf_unittest.TestMap.MapStringForeignMessageEntry.valueiG
i�
tMapInt32AllTypesEntrys/protobuf_unittest.TestMap.MapInt32AllTypesEntrys3protobuf_unittest.TestMap.MapInt32AllTypesEntry.keys5protobuf_unittest.TestMap.MapInt32AllTypesEntry.valuei�
itTestMapsprotobuf_unittest.TestMaptmap_int32_int32s)protobuf_unittest.TestMap.map_int32_int32tmap_int64_int64s)protobuf_unittest.TestMap.map_int64_int64tmap_uint32_uint32s+protobuf_unittest.TestMap.map_uint32_uint32tmap_uint64_uint64s+protobuf_unittest.TestMap.map_uint64_uint64tmap_sint32_sint32s+protobuf_unittest.TestMap.map_sint32_sint32tmap_sint64_sint64s+protobuf_unittest.TestMap.map_sint64_sint64tmap_fixed32_fixed32s-protobuf_unittest.TestMap.map_fixed32_fixed32tmap_fixed64_fixed64s-protobuf_unittest.TestMap.map_fixed64_fixed64tmap_sfixed32_sfixed32s/protobuf_unittest.TestMap.map_sfixed32_sfixed32tmap_sfixed64_sfixed64s/protobuf_unittest.TestMap.map_sfixed64_sfixed64tmap_int32_floats)protobuf_unittest.TestMap.map_int32_floattmap_int32_doubles*protobuf_unittest.TestMap.map_int32_doublet
map_bool_bools'protobuf_unittest.TestMap.map_bool_booltmap_string_strings+protobuf_unittest.TestMap.map_string_stringtmap_int32_bytess)protobuf_unittest.TestMap.map_int32_bytestmap_int32_enums(protobuf_unittest.TestMap.map_int32_enumtmap_int32_foreign_messages3protobuf_unittest.TestMap.map_int32_foreign_messagetmap_string_foreign_messages4protobuf_unittest.TestMap.map_string_foreign_messagetmap_int32_all_typess-protobuf_unittest.TestMap.map_int32_all_typesii�tTestMapSubmessages#protobuf_unittest.TestMapSubmessagettest_maps,protobuf_unittest.TestMapSubmessage.test_mapiiEtMapInt32MessageEntrys5protobuf_unittest.TestMessageMap.MapInt32MessageEntrys9protobuf_unittest.TestMessageMap.MapInt32MessageEntry.keys;protobuf_unittest.TestMessageMap.MapInt32MessageEntry.valuei�itTestMessageMaps protobuf_unittest.TestMessageMaptmap_int32_messages2protobuf_unittest.TestMessageMap.map_int32_messageiHt	Map1Entrys+protobuf_unittest.TestSameTypeMap.Map1Entrys/protobuf_unittest.TestSameTypeMap.Map1Entry.keys1protobuf_unittest.TestSameTypeMap.Map1Entry.valuei�i�t	Map2Entrys+protobuf_unittest.TestSameTypeMap.Map2Entrys/protobuf_unittest.TestSameTypeMap.Map2Entry.keys1protobuf_unittest.TestSameTypeMap.Map2Entry.valuei�i�tTestSameTypeMaps!protobuf_unittest.TestSameTypeMaptmap1s&protobuf_unittest.TestSameTypeMap.map1tmap2s&protobuf_unittest.TestSameTypeMap.map2it
MapFieldEntrys6protobuf_unittest.TestRequiredMessageMap.MapFieldEntrys:protobuf_unittest.TestRequiredMessageMap.MapFieldEntry.keys<protobuf_unittest.TestRequiredMessageMap.MapFieldEntry.valueiS
i�
tTestRequiredMessageMaps(protobuf_unittest.TestRequiredMessageMapt	map_fields2protobuf_unittest.TestRequiredMessageMap.map_fieldi�s1protobuf_unittest.TestArenaMap.MapInt32Int32Entrys5protobuf_unittest.TestArenaMap.MapInt32Int32Entry.keys7protobuf_unittest.TestArenaMap.MapInt32Int32Entry.values1protobuf_unittest.TestArenaMap.MapInt64Int64Entrys5protobuf_unittest.TestArenaMap.MapInt64Int64Entry.keys7protobuf_unittest.TestArenaMap.MapInt64Int64Entry.values3protobuf_unittest.TestArenaMap.MapUint32Uint32Entrys7protobuf_unittest.TestArenaMap.MapUint32Uint32Entry.keys9protobuf_unittest.TestArenaMap.MapUint32Uint32Entry.values3protobuf_unittest.TestArenaMap.MapUint64Uint64Entrys7protobuf_unittest.TestArenaMap.MapUint64Uint64Entry.keys9protobuf_unittest.TestArenaMap.MapUint64Uint64Entry.values3protobuf_unittest.TestArenaMap.MapSint32Sint32Entrys7protobuf_unittest.TestArenaMap.MapSint32Sint32Entry.keys9protobuf_unittest.TestArenaMap.MapSint32Sint32Entry.values3protobuf_unittest.TestArenaMap.MapSint64Sint64Entrys7protobuf_unittest.TestArenaMap.MapSint64Sint64Entry.keys9protobuf_unittest.TestArenaMap.MapSint64Sint64Entry.values5protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entrys9protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entry.keys;protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entry.values5protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entrys9protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entry.keys;protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entry.values7protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entrys;protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entry.keys=protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entry.values7protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entrys;protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entry.keys=protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entry.values1protobuf_unittest.TestArenaMap.MapInt32FloatEntrys5protobuf_unittest.TestArenaMap.MapInt32FloatEntry.keys7protobuf_unittest.TestArenaMap.MapInt32FloatEntry.values2protobuf_unittest.TestArenaMap.MapInt32DoubleEntrys6protobuf_unittest.TestArenaMap.MapInt32DoubleEntry.keys8protobuf_unittest.TestArenaMap.MapInt32DoubleEntry.values/protobuf_unittest.TestArenaMap.MapBoolBoolEntrys3protobuf_unittest.TestArenaMap.MapBoolBoolEntry.keys5protobuf_unittest.TestArenaMap.MapBoolBoolEntry.values3protobuf_unittest.TestArenaMap.MapStringStringEntrys7protobuf_unittest.TestArenaMap.MapStringStringEntry.keys9protobuf_unittest.TestArenaMap.MapStringStringEntry.values1protobuf_unittest.TestArenaMap.MapInt32BytesEntrys5protobuf_unittest.TestArenaMap.MapInt32BytesEntry.keys7protobuf_unittest.TestArenaMap.MapInt32BytesEntry.values0protobuf_unittest.TestArenaMap.MapInt32EnumEntrys4protobuf_unittest.TestArenaMap.MapInt32EnumEntry.keys6protobuf_unittest.TestArenaMap.MapInt32EnumEntry.values:protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntrys>protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntry.keys@protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntry.valuet"MapInt32ForeignMessageNoArenaEntrysAprotobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntrysEprotobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry.keysGprotobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry.valuei�i�tTestArenaMapsprotobuf_unittest.TestArenaMaps.protobuf_unittest.TestArenaMap.map_int32_int32s.protobuf_unittest.TestArenaMap.map_int64_int64s0protobuf_unittest.TestArenaMap.map_uint32_uint32s0protobuf_unittest.TestArenaMap.map_uint64_uint64s0protobuf_unittest.TestArenaMap.map_sint32_sint32s0protobuf_unittest.TestArenaMap.map_sint64_sint64s2protobuf_unittest.TestArenaMap.map_fixed32_fixed32s2protobuf_unittest.TestArenaMap.map_fixed64_fixed64s4protobuf_unittest.TestArenaMap.map_sfixed32_sfixed32s4protobuf_unittest.TestArenaMap.map_sfixed64_sfixed64s.protobuf_unittest.TestArenaMap.map_int32_floats/protobuf_unittest.TestArenaMap.map_int32_doubles,protobuf_unittest.TestArenaMap.map_bool_bools0protobuf_unittest.TestArenaMap.map_string_strings.protobuf_unittest.TestArenaMap.map_int32_bytess-protobuf_unittest.TestArenaMap.map_int32_enums8protobuf_unittest.TestArenaMap.map_int32_foreign_messaget"map_int32_foreign_message_no_arenasAprotobuf_unittest.TestArenaMap.map_int32_foreign_message_no_arenai�
t	TypeEntrys;protobuf_unittest.MessageContainingEnumCalledType.TypeEntrys?protobuf_unittest.MessageContainingEnumCalledType.TypeEntry.keysAprotobuf_unittest.MessageContainingEnumCalledType.TypeEntry.valueiji�tMessageContainingEnumCalledTypes1protobuf_unittest.MessageContainingEnumCalledTypes6protobuf_unittest.MessageContainingEnumCalledType.typei�t
EntryEntrys<protobuf_unittest.MessageContainingMapCalledEntry.EntryEntrys@protobuf_unittest.MessageContainingMapCalledEntry.EntryEntry.keysBprotobuf_unittest.MessageContainingMapCalledEntry.EntryEntry.valueiSitMessageContainingMapCalledEntrys1protobuf_unittest.MessageContainingMapCalledEntrytentrys7protobuf_unittest.MessageContainingMapCalledEntry.entryi�tAEntrys0protobuf_unittest.TestRecursiveMapMessage.AEntrys4protobuf_unittest.TestRecursiveMapMessage.AEntry.keys6protobuf_unittest.TestRecursiveMapMessage.AEntry.valuei�i/tTestRecursiveMapMessages)protobuf_unittest.TestRecursiveMapMessagetas+protobuf_unittest.TestRecursiveMapMessage.ai�t
DESCRIPTORt
__module__s google.protobuf.map_unittest_pb2s�(�tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt%google_dot_protobuf_dot_unittest__pb2Rt0google_dot_protobuf_dot_unittest__no__arena__pb2tFileDescriptorRutEnumDescriptortNonetEnumValueDescriptort_MAPENUMtRegisterEnumDescriptortEnumTypeWrapperRRRRt%_MESSAGECONTAININGENUMCALLEDTYPE_TYPEt
DescriptortFieldDescriptortFalset
_ParseOptionstMessageOptionst_TESTMAP_MAPINT32INT32ENTRYt_TESTMAP_MAPINT64INT64ENTRYt_TESTMAP_MAPUINT32UINT32ENTRYt_TESTMAP_MAPUINT64UINT64ENTRYt_TESTMAP_MAPSINT32SINT32ENTRYt_TESTMAP_MAPSINT64SINT64ENTRYt_TESTMAP_MAPFIXED32FIXED32ENTRYt_TESTMAP_MAPFIXED64FIXED64ENTRYt!_TESTMAP_MAPSFIXED32SFIXED32ENTRYt!_TESTMAP_MAPSFIXED64SFIXED64ENTRYtfloatt_TESTMAP_MAPINT32FLOATENTRYt_TESTMAP_MAPINT32DOUBLEENTRYt_TESTMAP_MAPBOOLBOOLENTRYtdecodet_TESTMAP_MAPSTRINGSTRINGENTRYt_TESTMAP_MAPINT32BYTESENTRYt_TESTMAP_MAPINT32ENUMENTRYt$_TESTMAP_MAPINT32FOREIGNMESSAGEENTRYt%_TESTMAP_MAPSTRINGFOREIGNMESSAGEENTRYt_TESTMAP_MAPINT32ALLTYPESENTRYt_TESTMAPt_TESTMAPSUBMESSAGEt$_TESTMESSAGEMAP_MAPINT32MESSAGEENTRYt_TESTMESSAGEMAPt_TESTSAMETYPEMAP_MAP1ENTRYt_TESTSAMETYPEMAP_MAP2ENTRYt_TESTSAMETYPEMAPt%_TESTREQUIREDMESSAGEMAP_MAPFIELDENTRYt_TESTREQUIREDMESSAGEMAPt _TESTARENAMAP_MAPINT32INT32ENTRYt _TESTARENAMAP_MAPINT64INT64ENTRYt"_TESTARENAMAP_MAPUINT32UINT32ENTRYt"_TESTARENAMAP_MAPUINT64UINT64ENTRYt"_TESTARENAMAP_MAPSINT32SINT32ENTRYt"_TESTARENAMAP_MAPSINT64SINT64ENTRYt$_TESTARENAMAP_MAPFIXED32FIXED32ENTRYt$_TESTARENAMAP_MAPFIXED64FIXED64ENTRYt&_TESTARENAMAP_MAPSFIXED32SFIXED32ENTRYt&_TESTARENAMAP_MAPSFIXED64SFIXED64ENTRYt _TESTARENAMAP_MAPINT32FLOATENTRYt!_TESTARENAMAP_MAPINT32DOUBLEENTRYt_TESTARENAMAP_MAPBOOLBOOLENTRYt"_TESTARENAMAP_MAPSTRINGSTRINGENTRYt _TESTARENAMAP_MAPINT32BYTESENTRYt_TESTARENAMAP_MAPINT32ENUMENTRYt)_TESTARENAMAP_MAPINT32FOREIGNMESSAGEENTRYt0_TESTARENAMAP_MAPINT32FOREIGNMESSAGENOARENAENTRYt
_TESTARENAMAPt*_MESSAGECONTAININGENUMCALLEDTYPE_TYPEENTRYt _MESSAGECONTAININGENUMCALLEDTYPEt+_MESSAGECONTAININGMAPCALLEDENTRY_ENTRYENTRYt _MESSAGECONTAININGMAPCALLEDENTRYt_TESTRECURSIVEMAPMESSAGE_AENTRYt_TESTRECURSIVEMAPMESSAGER tfields_by_nameR-t_FOREIGNMESSAGER,t
_TESTALLTYPESt
_TESTREQUIREDtmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRItRegisterMessageR%R7R8R9R:R;R<R=R>R?R@RARBRCRDRERFRGRHR]R`R_RdRbRcRhRgRkRjRnRmRpRoRsRrtTruethas_optionstFileOptionst_options(((sD/usr/lib/python2.7/site-packages/google/protobuf/map_unittest_pb2.pyt<module>s�%						
			
																																																																																																?																																																																																																																											<																																																																							



















	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	PK��\����protobuf/wrappers_pb2.pycnu�[����
���hc-@s�
ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejddddddddddd d!d"dd#ed$ed�d%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d1d2d3�Zejdd4dd5dddedddejdddd6dddddd7d d8d"dd#ed$ed�d%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d9d2d:�Zejdd;dd<dddedddejdddd=ddddddd d7d"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d>d2d?�Zejdd@ddAdddedddejddddBddddddCd dCd"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0dDd2dE�ZejddFddGdddedddejddddHdddddd!d dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0dId2dJ�ZejddKddLdddedddejddddMddddddNd dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0dOd2dP�ZejddQddRdddedddejddddSddddddTd dUd"dd#ed$ed%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0dVd2dW�ZejddXddYdddedddejddddZdddddd[d d[d"dd#ed$ed\�jd]�d%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d^d2d_�Zejdd`ddadddedddejddddbddddddcd d[d"dd#ed$ed\�d%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0ddd2de�Zeej d<eej d4<eej d;<eej d@<eej dF<eej dK<eej dQ<eej dX<eej d`<ej!e�e	j"dej#fe$dfedgdh��Z%ej&e%�e	j"d4ej#fe$dfedgdh��Z'ej&e'�e	j"d;ej#fe$dfedgdh��Z(ej&e(�e	j"d@ej#fe$dfedgdh��Z)ej&e)�e	j"dFej#fe$dfedgdh��Z*ej&e*�e	j"dKej#fe$dfedgdh��Z+ej&e+�e	j"dQej#fe$dfedgdh��Z,ej&e,�e	j"dXej#fe$dfedgdh��Z-ej&e-�e	j"d`ej#fe$dfedgdh��Z.ej&e.�e/e_0ej1ej2�edi��e_3dS(ji����NiicCs|S(N((tx((s@/usr/lib/python2.7/site-packages/google/protobuf/wrappers_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s@/usr/lib/python2.7/site-packages/google/protobuf/wrappers_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/wrappers.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/wrappers.protogoogle.protobuf"
DoubleValue
value ("

FloatValue
value ("

Int64Value
value ("
UInt64Value
value ("

Int32Value
value ("
UInt32Value
value (
"
	BoolValue
value ("
StringValue
value (	"

BytesValue
value (B|
com.google.protobufB
WrappersProtoPZ*github.com/golang/protobuf/ptypes/wrappers��GPB�Google.Protobuf.WellKnownTypesbproto3tDoubleValuet	full_namesgoogle.protobuf.DoubleValuetfilenametfiletcontaining_typetfieldstvalues!google.protobuf.DoubleValue.valuetindextnumberittypetcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti3tserialized_endiOt
FloatValuesgoogle.protobuf.FloatValues google.protobuf.FloatValue.valueiiiQilt
Int64Valuesgoogle.protobuf.Int64Values google.protobuf.Int64Value.valueini�tUInt64Valuesgoogle.protobuf.UInt64Values!google.protobuf.UInt64Value.valueii�i�t
Int32Valuesgoogle.protobuf.Int32Values google.protobuf.Int32Value.valuei�i�tUInt32Valuesgoogle.protobuf.UInt32Values!google.protobuf.UInt32Value.valuei
i�i�t	BoolValuesgoogle.protobuf.BoolValuesgoogle.protobuf.BoolValue.valueiii�i�tStringValuesgoogle.protobuf.StringValues!google.protobuf.StringValue.valuei	Rsutf-8iit
BytesValuesgoogle.protobuf.BytesValues google.protobuf.BytesValue.valueiii9t
DESCRIPTORt
__module__sgoogle.protobuf.wrappers_pb2s|
com.google.protobufB
WrappersProtoPZ*github.com/golang/protobuf/ptypes/wrappers��GPB�Google.Protobuf.WellKnownTypes(4tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR2t
DescriptortNonetFieldDescriptortFalsetfloatt_DOUBLEVALUEt_FLOATVALUEt_INT64VALUEt_UINT64VALUEt_INT32VALUEt_UINT32VALUEt
_BOOLVALUEtdecodet_STRINGVALUEt_BYTESVALUEtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR*R+R,R-R.R/R0R1tTruethas_optionst
_ParseOptionstFileOptionst_options(((s@/usr/lib/python2.7/site-packages/google/protobuf/wrappers_pb2.pyt<module>s%																												


















	PK��\C' ���protobuf/any_test_pb2.pycnu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�Zejdddddddedddejdddddddd d!d"d#d d$d d%ed&dd'dd(dddd)ed*dd+dde�ejdd,dd-dd dd.d!d/d#d0d$d d%ed&dd'dd(dddd)ed*dd+dde�ejdd1dd2dd.ddd!d/d#d0d$dd%ed&gd'dd(dddd)ed*dd+dde�gd3gd4gd5gd+dd6eddd7gd8gd9d:d;d<�Zejejd,_ejejd1_eejd<eje�e	jdejfed=ed>d?��Z ej!e �dS(@i����NiicCs|S(N((tx((s@/usr/lib/python2.7/site-packages/google/protobuf/any_test_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s@/usr/lib/python2.7/site-packages/google/protobuf/any_test_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tany_pb2tnamesgoogle/protobuf/any_test.prototpackagetprotobuf_unittesttsyntaxtproto3t
serialized_pbs�
google/protobuf/any_test.protoprotobuf_unittestgoogle/protobuf/any.proto"y
TestAny
int32_value ('
	any_value (2.google.protobuf.Any0
repeated_any_value (2.google.protobuf.Anybproto3tdependenciestTestAnyt	full_namesprotobuf_unittest.TestAnytfilenametfiletcontaining_typetfieldstint32_values%protobuf_unittest.TestAny.int32_valuetindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst	any_values#protobuf_unittest.TestAny.any_valueiii
trepeated_any_values,protobuf_unittest.TestAny.repeated_any_valuet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiPtserialized_endi�t
DESCRIPTORt
__module__sgoogle.protobuf.any_test_pb2("tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbR
t google_dot_protobuf_dot_any__pb2tFileDescriptorR/t
DescriptortNonetFieldDescriptortFalset_TESTANYt_ANYtfields_by_nameR tmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessage(((s@/usr/lib/python2.7/site-packages/google/protobuf/any_test_pb2.pyt<module>sv%						

PK��\���E����!protobuf/unittest_no_arena_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest_no_arena.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import unittest_import_pb2 as google_dot_protobuf_dot_unittest__import__pb2
try:
  google_dot_protobuf_dot_unittest__import__public__pb2 = google_dot_protobuf_dot_unittest__import__pb2.google_dot_protobuf_dot_unittest__import__public__pb2
except AttributeError:
  google_dot_protobuf_dot_unittest__import__public__pb2 = google_dot_protobuf_dot_unittest__import__pb2.google.protobuf.unittest_import_public_pb2
from google.protobuf import unittest_arena_pb2 as google_dot_protobuf_dot_unittest__arena__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest_no_arena.proto',
  package='protobuf_unittest_no_arena',
  syntax='proto2',
  serialized_pb=_b('\n\'google/protobuf/unittest_no_arena.proto\x12\x1aprotobuf_unittest_no_arena\x1a%google/protobuf/unittest_import.proto\x1a$google/protobuf/unittest_arena.proto\"\xd0\x1a\n\x0cTestAllTypes\x12\x16\n\x0eoptional_int32\x18\x01 \x01(\x05\x12\x16\n\x0eoptional_int64\x18\x02 \x01(\x03\x12\x17\n\x0foptional_uint32\x18\x03 \x01(\r\x12\x17\n\x0foptional_uint64\x18\x04 \x01(\x04\x12\x17\n\x0foptional_sint32\x18\x05 \x01(\x11\x12\x17\n\x0foptional_sint64\x18\x06 \x01(\x12\x12\x18\n\x10optional_fixed32\x18\x07 \x01(\x07\x12\x18\n\x10optional_fixed64\x18\x08 \x01(\x06\x12\x19\n\x11optional_sfixed32\x18\t \x01(\x0f\x12\x19\n\x11optional_sfixed64\x18\n \x01(\x10\x12\x16\n\x0eoptional_float\x18\x0b \x01(\x02\x12\x17\n\x0foptional_double\x18\x0c \x01(\x01\x12\x15\n\roptional_bool\x18\r \x01(\x08\x12\x17\n\x0foptional_string\x18\x0e \x01(\t\x12\x16\n\x0eoptional_bytes\x18\x0f \x01(\x0c\x12M\n\roptionalgroup\x18\x10 \x01(\n26.protobuf_unittest_no_arena.TestAllTypes.OptionalGroup\x12W\n\x17optional_nested_message\x18\x12 \x01(\x0b\x32\x36.protobuf_unittest_no_arena.TestAllTypes.NestedMessage\x12L\n\x18optional_foreign_message\x18\x13 \x01(\x0b\x32*.protobuf_unittest_no_arena.ForeignMessage\x12H\n\x17optional_import_message\x18\x14 \x01(\x0b\x32\'.protobuf_unittest_import.ImportMessage\x12Q\n\x14optional_nested_enum\x18\x15 \x01(\x0e\x32\x33.protobuf_unittest_no_arena.TestAllTypes.NestedEnum\x12\x46\n\x15optional_foreign_enum\x18\x16 \x01(\x0e\x32\'.protobuf_unittest_no_arena.ForeignEnum\x12\x42\n\x14optional_import_enum\x18\x17 \x01(\x0e\x32$.protobuf_unittest_import.ImportEnum\x12!\n\x15optional_string_piece\x18\x18 \x01(\tB\x02\x08\x02\x12\x19\n\roptional_cord\x18\x19 \x01(\tB\x02\x08\x01\x12U\n\x1eoptional_public_import_message\x18\x1a \x01(\x0b\x32-.protobuf_unittest_import.PublicImportMessage\x12T\n\x10optional_message\x18\x1b \x01(\x0b\x32\x36.protobuf_unittest_no_arena.TestAllTypes.NestedMessageB\x02(\x01\x12\x16\n\x0erepeated_int32\x18\x1f \x03(\x05\x12\x16\n\x0erepeated_int64\x18  \x03(\x03\x12\x17\n\x0frepeated_uint32\x18! \x03(\r\x12\x17\n\x0frepeated_uint64\x18\" \x03(\x04\x12\x17\n\x0frepeated_sint32\x18# \x03(\x11\x12\x17\n\x0frepeated_sint64\x18$ \x03(\x12\x12\x18\n\x10repeated_fixed32\x18% \x03(\x07\x12\x18\n\x10repeated_fixed64\x18& \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\' \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18( \x03(\x10\x12\x16\n\x0erepeated_float\x18) \x03(\x02\x12\x17\n\x0frepeated_double\x18* \x03(\x01\x12\x15\n\rrepeated_bool\x18+ \x03(\x08\x12\x17\n\x0frepeated_string\x18, \x03(\t\x12\x16\n\x0erepeated_bytes\x18- \x03(\x0c\x12M\n\rrepeatedgroup\x18. \x03(\n26.protobuf_unittest_no_arena.TestAllTypes.RepeatedGroup\x12W\n\x17repeated_nested_message\x18\x30 \x03(\x0b\x32\x36.protobuf_unittest_no_arena.TestAllTypes.NestedMessage\x12L\n\x18repeated_foreign_message\x18\x31 \x03(\x0b\x32*.protobuf_unittest_no_arena.ForeignMessage\x12H\n\x17repeated_import_message\x18\x32 \x03(\x0b\x32\'.protobuf_unittest_import.ImportMessage\x12Q\n\x14repeated_nested_enum\x18\x33 \x03(\x0e\x32\x33.protobuf_unittest_no_arena.TestAllTypes.NestedEnum\x12\x46\n\x15repeated_foreign_enum\x18\x34 \x03(\x0e\x32\'.protobuf_unittest_no_arena.ForeignEnum\x12\x42\n\x14repeated_import_enum\x18\x35 \x03(\x0e\x32$.protobuf_unittest_import.ImportEnum\x12!\n\x15repeated_string_piece\x18\x36 \x03(\tB\x02\x08\x02\x12\x19\n\rrepeated_cord\x18\x37 \x03(\tB\x02\x08\x01\x12Y\n\x15repeated_lazy_message\x18\x39 \x03(\x0b\x32\x36.protobuf_unittest_no_arena.TestAllTypes.NestedMessageB\x02(\x01\x12\x19\n\rdefault_int32\x18= \x01(\x05:\x02\x34\x31\x12\x19\n\rdefault_int64\x18> \x01(\x03:\x02\x34\x32\x12\x1a\n\x0e\x64\x65\x66\x61ult_uint32\x18? \x01(\r:\x02\x34\x33\x12\x1a\n\x0e\x64\x65\x66\x61ult_uint64\x18@ \x01(\x04:\x02\x34\x34\x12\x1b\n\x0e\x64\x65\x66\x61ult_sint32\x18\x41 \x01(\x11:\x03-45\x12\x1a\n\x0e\x64\x65\x66\x61ult_sint64\x18\x42 \x01(\x12:\x02\x34\x36\x12\x1b\n\x0f\x64\x65\x66\x61ult_fixed32\x18\x43 \x01(\x07:\x02\x34\x37\x12\x1b\n\x0f\x64\x65\x66\x61ult_fixed64\x18\x44 \x01(\x06:\x02\x34\x38\x12\x1c\n\x10\x64\x65\x66\x61ult_sfixed32\x18\x45 \x01(\x0f:\x02\x34\x39\x12\x1d\n\x10\x64\x65\x66\x61ult_sfixed64\x18\x46 \x01(\x10:\x03-50\x12\x1b\n\rdefault_float\x18G \x01(\x02:\x04\x35\x31.5\x12\x1d\n\x0e\x64\x65\x66\x61ult_double\x18H \x01(\x01:\x05\x35\x32\x30\x30\x30\x12\x1a\n\x0c\x64\x65\x66\x61ult_bool\x18I \x01(\x08:\x04true\x12\x1d\n\x0e\x64\x65\x66\x61ult_string\x18J \x01(\t:\x05hello\x12\x1c\n\rdefault_bytes\x18K \x01(\x0c:\x05world\x12U\n\x13\x64\x65\x66\x61ult_nested_enum\x18Q \x01(\x0e\x32\x33.protobuf_unittest_no_arena.TestAllTypes.NestedEnum:\x03\x42\x41R\x12R\n\x14\x64\x65\x66\x61ult_foreign_enum\x18R \x01(\x0e\x32\'.protobuf_unittest_no_arena.ForeignEnum:\x0b\x46OREIGN_BAR\x12M\n\x13\x64\x65\x66\x61ult_import_enum\x18S \x01(\x0e\x32$.protobuf_unittest_import.ImportEnum:\nIMPORT_BAR\x12%\n\x14\x64\x65\x66\x61ult_string_piece\x18T \x01(\t:\x03\x61\x62\x63\x42\x02\x08\x02\x12\x1d\n\x0c\x64\x65\x66\x61ult_cord\x18U \x01(\t:\x03\x31\x32\x33\x42\x02\x08\x01\x12\x16\n\x0coneof_uint32\x18o \x01(\rH\x00\x12V\n\x14oneof_nested_message\x18p \x01(\x0b\x32\x36.protobuf_unittest_no_arena.TestAllTypes.NestedMessageH\x00\x12\x16\n\x0coneof_string\x18q \x01(\tH\x00\x12\x15\n\x0boneof_bytes\x18r \x01(\x0cH\x00\x12_\n\x19lazy_oneof_nested_message\x18s \x01(\x0b\x32\x36.protobuf_unittest_no_arena.TestAllTypes.NestedMessageB\x02(\x01H\x00\x1a\x1b\n\rNestedMessage\x12\n\n\x02\x62\x62\x18\x01 \x01(\x05\x1a\x1a\n\rOptionalGroup\x12\t\n\x01\x61\x18\x11 \x01(\x05\x1a\x1a\n\rRepeatedGroup\x12\t\n\x01\x61\x18/ \x01(\x05\"9\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02\x12\x07\n\x03\x42\x41Z\x10\x03\x12\x10\n\x03NEG\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x42\r\n\x0boneof_field\"\x1b\n\x0e\x46oreignMessage\x12\t\n\x01\x63\x18\x01 \x01(\x05\"P\n\x12TestNoArenaMessage\x12:\n\rarena_message\x18\x01 \x01(\x0b\x32#.proto2_arena_unittest.ArenaMessage*@\n\x0b\x46oreignEnum\x12\x0f\n\x0b\x46OREIGN_FOO\x10\x04\x12\x0f\n\x0b\x46OREIGN_BAR\x10\x05\x12\x0f\n\x0b\x46OREIGN_BAZ\x10\x06\x42%B\rUnittestProtoH\x01\x80\x01\x01\x88\x01\x01\x90\x01\x01\xf8\x01\x00\xa2\x02\x05NOARN')
  ,
  dependencies=[google_dot_protobuf_dot_unittest__import__pb2.DESCRIPTOR,google_dot_protobuf_dot_unittest__arena__pb2.DESCRIPTOR,])

_FOREIGNENUM = _descriptor.EnumDescriptor(
  name='ForeignEnum',
  full_name='protobuf_unittest_no_arena.ForeignEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_FOO', index=0, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_BAR', index=1, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_BAZ', index=2, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3670,
  serialized_end=3734,
)
_sym_db.RegisterEnumDescriptor(_FOREIGNENUM)

ForeignEnum = enum_type_wrapper.EnumTypeWrapper(_FOREIGNENUM)
FOREIGN_FOO = 4
FOREIGN_BAR = 5
FOREIGN_BAZ = 6


_TESTALLTYPES_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='protobuf_unittest_no_arena.TestAllTypes.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOO', index=0, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR', index=1, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAZ', index=2, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NEG', index=3, number=-1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3485,
  serialized_end=3542,
)
_sym_db.RegisterEnumDescriptor(_TESTALLTYPES_NESTEDENUM)


_TESTALLTYPES_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='protobuf_unittest_no_arena.TestAllTypes.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bb', full_name='protobuf_unittest_no_arena.TestAllTypes.NestedMessage.bb', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3400,
  serialized_end=3427,
)

_TESTALLTYPES_OPTIONALGROUP = _descriptor.Descriptor(
  name='OptionalGroup',
  full_name='protobuf_unittest_no_arena.TestAllTypes.OptionalGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest_no_arena.TestAllTypes.OptionalGroup.a', index=0,
      number=17, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3429,
  serialized_end=3455,
)

_TESTALLTYPES_REPEATEDGROUP = _descriptor.Descriptor(
  name='RepeatedGroup',
  full_name='protobuf_unittest_no_arena.TestAllTypes.RepeatedGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest_no_arena.TestAllTypes.RepeatedGroup.a', index=0,
      number=47, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3457,
  serialized_end=3483,
)

_TESTALLTYPES = _descriptor.Descriptor(
  name='TestAllTypes',
  full_name='protobuf_unittest_no_arena.TestAllTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_int32', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_int32', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_int64', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_int64', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint32', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_uint32', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint64', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_uint64', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sint32', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_sint32', index=4,
      number=5, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sint64', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_sint64', index=5,
      number=6, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_fixed32', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_fixed32', index=6,
      number=7, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_fixed64', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_fixed64', index=7,
      number=8, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sfixed32', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_sfixed32', index=8,
      number=9, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sfixed64', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_sfixed64', index=9,
      number=10, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_float', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_float', index=10,
      number=11, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_double', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_double', index=11,
      number=12, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bool', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_bool', index=12,
      number=13, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_string', index=13,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bytes', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_bytes', index=14,
      number=15, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optionalgroup', full_name='protobuf_unittest_no_arena.TestAllTypes.optionalgroup', index=15,
      number=16, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_message', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_nested_message', index=16,
      number=18, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_foreign_message', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_foreign_message', index=17,
      number=19, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_import_message', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_import_message', index=18,
      number=20, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_enum', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_nested_enum', index=19,
      number=21, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_foreign_enum', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_foreign_enum', index=20,
      number=22, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=4,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_import_enum', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_import_enum', index=21,
      number=23, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=7,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string_piece', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_string_piece', index=22,
      number=24, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_cord', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_cord', index=23,
      number=25, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_public_import_message', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_public_import_message', index=24,
      number=26, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_message', full_name='protobuf_unittest_no_arena.TestAllTypes.optional_message', index=25,
      number=27, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int32', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_int32', index=26,
      number=31, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_int64', index=27,
      number=32, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_uint32', index=28,
      number=33, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_uint64', index=29,
      number=34, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint32', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_sint32', index=30,
      number=35, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint64', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_sint64', index=31,
      number=36, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed32', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_fixed32', index=32,
      number=37, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed64', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_fixed64', index=33,
      number=38, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed32', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_sfixed32', index=34,
      number=39, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed64', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_sfixed64', index=35,
      number=40, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_float', index=36,
      number=41, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_double', index=37,
      number=42, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_bool', index=38,
      number=43, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_string', index=39,
      number=44, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bytes', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_bytes', index=40,
      number=45, type=12, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeatedgroup', full_name='protobuf_unittest_no_arena.TestAllTypes.repeatedgroup', index=41,
      number=46, type=10, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_message', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_nested_message', index=42,
      number=48, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_foreign_message', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_foreign_message', index=43,
      number=49, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_import_message', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_import_message', index=44,
      number=50, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_enum', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_nested_enum', index=45,
      number=51, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_foreign_enum', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_foreign_enum', index=46,
      number=52, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_import_enum', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_import_enum', index=47,
      number=53, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string_piece', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_string_piece', index=48,
      number=54, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_cord', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_cord', index=49,
      number=55, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_lazy_message', full_name='protobuf_unittest_no_arena.TestAllTypes.repeated_lazy_message', index=50,
      number=57, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_int32', full_name='protobuf_unittest_no_arena.TestAllTypes.default_int32', index=51,
      number=61, type=5, cpp_type=1, label=1,
      has_default_value=True, default_value=41,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_int64', full_name='protobuf_unittest_no_arena.TestAllTypes.default_int64', index=52,
      number=62, type=3, cpp_type=2, label=1,
      has_default_value=True, default_value=42,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_uint32', full_name='protobuf_unittest_no_arena.TestAllTypes.default_uint32', index=53,
      number=63, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=43,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_uint64', full_name='protobuf_unittest_no_arena.TestAllTypes.default_uint64', index=54,
      number=64, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=44,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_sint32', full_name='protobuf_unittest_no_arena.TestAllTypes.default_sint32', index=55,
      number=65, type=17, cpp_type=1, label=1,
      has_default_value=True, default_value=-45,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_sint64', full_name='protobuf_unittest_no_arena.TestAllTypes.default_sint64', index=56,
      number=66, type=18, cpp_type=2, label=1,
      has_default_value=True, default_value=46,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_fixed32', full_name='protobuf_unittest_no_arena.TestAllTypes.default_fixed32', index=57,
      number=67, type=7, cpp_type=3, label=1,
      has_default_value=True, default_value=47,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_fixed64', full_name='protobuf_unittest_no_arena.TestAllTypes.default_fixed64', index=58,
      number=68, type=6, cpp_type=4, label=1,
      has_default_value=True, default_value=48,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_sfixed32', full_name='protobuf_unittest_no_arena.TestAllTypes.default_sfixed32', index=59,
      number=69, type=15, cpp_type=1, label=1,
      has_default_value=True, default_value=49,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_sfixed64', full_name='protobuf_unittest_no_arena.TestAllTypes.default_sfixed64', index=60,
      number=70, type=16, cpp_type=2, label=1,
      has_default_value=True, default_value=-50,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_float', full_name='protobuf_unittest_no_arena.TestAllTypes.default_float', index=61,
      number=71, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(51.5),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_double', full_name='protobuf_unittest_no_arena.TestAllTypes.default_double', index=62,
      number=72, type=1, cpp_type=5, label=1,
      has_default_value=True, default_value=float(52000),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_bool', full_name='protobuf_unittest_no_arena.TestAllTypes.default_bool', index=63,
      number=73, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_string', full_name='protobuf_unittest_no_arena.TestAllTypes.default_string', index=64,
      number=74, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("hello").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_bytes', full_name='protobuf_unittest_no_arena.TestAllTypes.default_bytes', index=65,
      number=75, type=12, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("world"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_nested_enum', full_name='protobuf_unittest_no_arena.TestAllTypes.default_nested_enum', index=66,
      number=81, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=2,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_foreign_enum', full_name='protobuf_unittest_no_arena.TestAllTypes.default_foreign_enum', index=67,
      number=82, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=5,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_import_enum', full_name='protobuf_unittest_no_arena.TestAllTypes.default_import_enum', index=68,
      number=83, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=8,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_string_piece', full_name='protobuf_unittest_no_arena.TestAllTypes.default_string_piece', index=69,
      number=84, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("abc").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_cord', full_name='protobuf_unittest_no_arena.TestAllTypes.default_cord', index=70,
      number=85, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("123").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_uint32', full_name='protobuf_unittest_no_arena.TestAllTypes.oneof_uint32', index=71,
      number=111, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_nested_message', full_name='protobuf_unittest_no_arena.TestAllTypes.oneof_nested_message', index=72,
      number=112, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_string', full_name='protobuf_unittest_no_arena.TestAllTypes.oneof_string', index=73,
      number=113, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_bytes', full_name='protobuf_unittest_no_arena.TestAllTypes.oneof_bytes', index=74,
      number=114, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='lazy_oneof_nested_message', full_name='protobuf_unittest_no_arena.TestAllTypes.lazy_oneof_nested_message', index=75,
      number=115, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTALLTYPES_NESTEDMESSAGE, _TESTALLTYPES_OPTIONALGROUP, _TESTALLTYPES_REPEATEDGROUP, ],
  enum_types=[
    _TESTALLTYPES_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='oneof_field', full_name='protobuf_unittest_no_arena.TestAllTypes.oneof_field',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=149,
  serialized_end=3557,
)


_FOREIGNMESSAGE = _descriptor.Descriptor(
  name='ForeignMessage',
  full_name='protobuf_unittest_no_arena.ForeignMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='c', full_name='protobuf_unittest_no_arena.ForeignMessage.c', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3559,
  serialized_end=3586,
)


_TESTNOARENAMESSAGE = _descriptor.Descriptor(
  name='TestNoArenaMessage',
  full_name='protobuf_unittest_no_arena.TestNoArenaMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='arena_message', full_name='protobuf_unittest_no_arena.TestNoArenaMessage.arena_message', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3588,
  serialized_end=3668,
)

_TESTALLTYPES_NESTEDMESSAGE.containing_type = _TESTALLTYPES
_TESTALLTYPES_OPTIONALGROUP.containing_type = _TESTALLTYPES
_TESTALLTYPES_REPEATEDGROUP.containing_type = _TESTALLTYPES
_TESTALLTYPES.fields_by_name['optionalgroup'].message_type = _TESTALLTYPES_OPTIONALGROUP
_TESTALLTYPES.fields_by_name['optional_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['optional_foreign_message'].message_type = _FOREIGNMESSAGE
_TESTALLTYPES.fields_by_name['optional_import_message'].message_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTMESSAGE
_TESTALLTYPES.fields_by_name['optional_nested_enum'].enum_type = _TESTALLTYPES_NESTEDENUM
_TESTALLTYPES.fields_by_name['optional_foreign_enum'].enum_type = _FOREIGNENUM
_TESTALLTYPES.fields_by_name['optional_import_enum'].enum_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTENUM
_TESTALLTYPES.fields_by_name['optional_public_import_message'].message_type = google_dot_protobuf_dot_unittest__import__public__pb2._PUBLICIMPORTMESSAGE
_TESTALLTYPES.fields_by_name['optional_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['repeatedgroup'].message_type = _TESTALLTYPES_REPEATEDGROUP
_TESTALLTYPES.fields_by_name['repeated_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['repeated_foreign_message'].message_type = _FOREIGNMESSAGE
_TESTALLTYPES.fields_by_name['repeated_import_message'].message_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTMESSAGE
_TESTALLTYPES.fields_by_name['repeated_nested_enum'].enum_type = _TESTALLTYPES_NESTEDENUM
_TESTALLTYPES.fields_by_name['repeated_foreign_enum'].enum_type = _FOREIGNENUM
_TESTALLTYPES.fields_by_name['repeated_import_enum'].enum_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTENUM
_TESTALLTYPES.fields_by_name['repeated_lazy_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['default_nested_enum'].enum_type = _TESTALLTYPES_NESTEDENUM
_TESTALLTYPES.fields_by_name['default_foreign_enum'].enum_type = _FOREIGNENUM
_TESTALLTYPES.fields_by_name['default_import_enum'].enum_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTENUM
_TESTALLTYPES.fields_by_name['oneof_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['lazy_oneof_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES_NESTEDENUM.containing_type = _TESTALLTYPES
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_uint32'])
_TESTALLTYPES.fields_by_name['oneof_uint32'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_nested_message'])
_TESTALLTYPES.fields_by_name['oneof_nested_message'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_string'])
_TESTALLTYPES.fields_by_name['oneof_string'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_bytes'])
_TESTALLTYPES.fields_by_name['oneof_bytes'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['lazy_oneof_nested_message'])
_TESTALLTYPES.fields_by_name['lazy_oneof_nested_message'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTNOARENAMESSAGE.fields_by_name['arena_message'].message_type = google_dot_protobuf_dot_unittest__arena__pb2._ARENAMESSAGE
DESCRIPTOR.message_types_by_name['TestAllTypes'] = _TESTALLTYPES
DESCRIPTOR.message_types_by_name['ForeignMessage'] = _FOREIGNMESSAGE
DESCRIPTOR.message_types_by_name['TestNoArenaMessage'] = _TESTNOARENAMESSAGE
DESCRIPTOR.enum_types_by_name['ForeignEnum'] = _FOREIGNENUM
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestAllTypes = _reflection.GeneratedProtocolMessageType('TestAllTypes', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPES_NESTEDMESSAGE,
    __module__ = 'google.protobuf.unittest_no_arena_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest_no_arena.TestAllTypes.NestedMessage)
    ))
  ,

  OptionalGroup = _reflection.GeneratedProtocolMessageType('OptionalGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPES_OPTIONALGROUP,
    __module__ = 'google.protobuf.unittest_no_arena_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest_no_arena.TestAllTypes.OptionalGroup)
    ))
  ,

  RepeatedGroup = _reflection.GeneratedProtocolMessageType('RepeatedGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPES_REPEATEDGROUP,
    __module__ = 'google.protobuf.unittest_no_arena_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest_no_arena.TestAllTypes.RepeatedGroup)
    ))
  ,
  DESCRIPTOR = _TESTALLTYPES,
  __module__ = 'google.protobuf.unittest_no_arena_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest_no_arena.TestAllTypes)
  ))
_sym_db.RegisterMessage(TestAllTypes)
_sym_db.RegisterMessage(TestAllTypes.NestedMessage)
_sym_db.RegisterMessage(TestAllTypes.OptionalGroup)
_sym_db.RegisterMessage(TestAllTypes.RepeatedGroup)

ForeignMessage = _reflection.GeneratedProtocolMessageType('ForeignMessage', (_message.Message,), dict(
  DESCRIPTOR = _FOREIGNMESSAGE,
  __module__ = 'google.protobuf.unittest_no_arena_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest_no_arena.ForeignMessage)
  ))
_sym_db.RegisterMessage(ForeignMessage)

TestNoArenaMessage = _reflection.GeneratedProtocolMessageType('TestNoArenaMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTNOARENAMESSAGE,
  __module__ = 'google.protobuf.unittest_no_arena_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest_no_arena.TestNoArenaMessage)
  ))
_sym_db.RegisterMessage(TestNoArenaMessage)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('B\rUnittestProtoH\001\200\001\001\210\001\001\220\001\001\370\001\000\242\002\005NOARN'))
_TESTALLTYPES.fields_by_name['optional_string_piece'].has_options = True
_TESTALLTYPES.fields_by_name['optional_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPES.fields_by_name['optional_cord'].has_options = True
_TESTALLTYPES.fields_by_name['optional_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTALLTYPES.fields_by_name['optional_message'].has_options = True
_TESTALLTYPES.fields_by_name['optional_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
_TESTALLTYPES.fields_by_name['repeated_string_piece'].has_options = True
_TESTALLTYPES.fields_by_name['repeated_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPES.fields_by_name['repeated_cord'].has_options = True
_TESTALLTYPES.fields_by_name['repeated_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTALLTYPES.fields_by_name['repeated_lazy_message'].has_options = True
_TESTALLTYPES.fields_by_name['repeated_lazy_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
_TESTALLTYPES.fields_by_name['default_string_piece'].has_options = True
_TESTALLTYPES.fields_by_name['default_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPES.fields_by_name['default_cord'].has_options = True
_TESTALLTYPES.fields_by_name['default_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTALLTYPES.fields_by_name['lazy_oneof_nested_message'].has_options = True
_TESTALLTYPES.fields_by_name['lazy_oneof_nested_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
# @@protoc_insertion_point(module_scope)
PK��\��m�cUcUprotobuf/type_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/type.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from google.protobuf import source_context_pb2 as google_dot_protobuf_dot_source__context__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/type.proto',
  package='google.protobuf',
  syntax='proto3',
  serialized_pb=_b('\n\x1agoogle/protobuf/type.proto\x12\x0fgoogle.protobuf\x1a\x19google/protobuf/any.proto\x1a$google/protobuf/source_context.proto\"\xd7\x01\n\x04Type\x12\x0c\n\x04name\x18\x01 \x01(\t\x12&\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x16.google.protobuf.Field\x12\x0e\n\x06oneofs\x18\x03 \x03(\t\x12(\n\x07options\x18\x04 \x03(\x0b\x32\x17.google.protobuf.Option\x12\x36\n\x0esource_context\x18\x05 \x01(\x0b\x32\x1e.google.protobuf.SourceContext\x12\'\n\x06syntax\x18\x06 \x01(\x0e\x32\x17.google.protobuf.Syntax\"\xd5\x05\n\x05\x46ield\x12)\n\x04kind\x18\x01 \x01(\x0e\x32\x1b.google.protobuf.Field.Kind\x12\x37\n\x0b\x63\x61rdinality\x18\x02 \x01(\x0e\x32\".google.protobuf.Field.Cardinality\x12\x0e\n\x06number\x18\x03 \x01(\x05\x12\x0c\n\x04name\x18\x04 \x01(\t\x12\x10\n\x08type_url\x18\x06 \x01(\t\x12\x13\n\x0boneof_index\x18\x07 \x01(\x05\x12\x0e\n\x06packed\x18\x08 \x01(\x08\x12(\n\x07options\x18\t \x03(\x0b\x32\x17.google.protobuf.Option\x12\x11\n\tjson_name\x18\n \x01(\t\x12\x15\n\rdefault_value\x18\x0b \x01(\t\"\xc8\x02\n\x04Kind\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"t\n\x0b\x43\x61rdinality\x12\x17\n\x13\x43\x41RDINALITY_UNKNOWN\x10\x00\x12\x18\n\x14\x43\x41RDINALITY_OPTIONAL\x10\x01\x12\x18\n\x14\x43\x41RDINALITY_REQUIRED\x10\x02\x12\x18\n\x14\x43\x41RDINALITY_REPEATED\x10\x03\"\xce\x01\n\x04\x45num\x12\x0c\n\x04name\x18\x01 \x01(\t\x12-\n\tenumvalue\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.EnumValue\x12(\n\x07options\x18\x03 \x03(\x0b\x32\x17.google.protobuf.Option\x12\x36\n\x0esource_context\x18\x04 \x01(\x0b\x32\x1e.google.protobuf.SourceContext\x12\'\n\x06syntax\x18\x05 \x01(\x0e\x32\x17.google.protobuf.Syntax\"S\n\tEnumValue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x05\x12(\n\x07options\x18\x03 \x03(\x0b\x32\x17.google.protobuf.Option\";\n\x06Option\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any*.\n\x06Syntax\x12\x11\n\rSYNTAX_PROTO2\x10\x00\x12\x11\n\rSYNTAX_PROTO3\x10\x01\x42}\n\x13\x63om.google.protobufB\tTypeProtoP\x01Z/google.golang.org/genproto/protobuf/ptype;ptype\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_source__context__pb2.DESCRIPTOR,])

_SYNTAX = _descriptor.EnumDescriptor(
  name='Syntax',
  full_name='google.protobuf.Syntax',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='SYNTAX_PROTO2', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SYNTAX_PROTO3', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1413,
  serialized_end=1459,
)
_sym_db.RegisterEnumDescriptor(_SYNTAX)

Syntax = enum_type_wrapper.EnumTypeWrapper(_SYNTAX)
SYNTAX_PROTO2 = 0
SYNTAX_PROTO3 = 1


_FIELD_KIND = _descriptor.EnumDescriptor(
  name='Kind',
  full_name='google.protobuf.Field.Kind',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='TYPE_UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_DOUBLE', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_FLOAT', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_INT64', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_UINT64', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_INT32', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_FIXED64', index=6, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_FIXED32', index=7, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_BOOL', index=8, number=8,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_STRING', index=9, number=9,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_GROUP', index=10, number=10,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_MESSAGE', index=11, number=11,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_BYTES', index=12, number=12,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_UINT32', index=13, number=13,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_ENUM', index=14, number=14,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_SFIXED32', index=15, number=15,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_SFIXED64', index=16, number=16,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_SINT32', index=17, number=17,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_SINT64', index=18, number=18,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=610,
  serialized_end=938,
)
_sym_db.RegisterEnumDescriptor(_FIELD_KIND)

_FIELD_CARDINALITY = _descriptor.EnumDescriptor(
  name='Cardinality',
  full_name='google.protobuf.Field.Cardinality',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='CARDINALITY_UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CARDINALITY_OPTIONAL', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CARDINALITY_REQUIRED', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CARDINALITY_REPEATED', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=940,
  serialized_end=1056,
)
_sym_db.RegisterEnumDescriptor(_FIELD_CARDINALITY)


_TYPE = _descriptor.Descriptor(
  name='Type',
  full_name='google.protobuf.Type',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.Type.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='fields', full_name='google.protobuf.Type.fields', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneofs', full_name='google.protobuf.Type.oneofs', index=2,
      number=3, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.Type.options', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='source_context', full_name='google.protobuf.Type.source_context', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='syntax', full_name='google.protobuf.Type.syntax', index=5,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=113,
  serialized_end=328,
)


_FIELD = _descriptor.Descriptor(
  name='Field',
  full_name='google.protobuf.Field',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='kind', full_name='google.protobuf.Field.kind', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='cardinality', full_name='google.protobuf.Field.cardinality', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='number', full_name='google.protobuf.Field.number', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.Field.name', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type_url', full_name='google.protobuf.Field.type_url', index=4,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_index', full_name='google.protobuf.Field.oneof_index', index=5,
      number=7, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed', full_name='google.protobuf.Field.packed', index=6,
      number=8, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.Field.options', index=7,
      number=9, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='json_name', full_name='google.protobuf.Field.json_name', index=8,
      number=10, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_value', full_name='google.protobuf.Field.default_value', index=9,
      number=11, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FIELD_KIND,
    _FIELD_CARDINALITY,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=331,
  serialized_end=1056,
)


_ENUM = _descriptor.Descriptor(
  name='Enum',
  full_name='google.protobuf.Enum',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.Enum.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='enumvalue', full_name='google.protobuf.Enum.enumvalue', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.Enum.options', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='source_context', full_name='google.protobuf.Enum.source_context', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='syntax', full_name='google.protobuf.Enum.syntax', index=4,
      number=5, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1059,
  serialized_end=1265,
)


_ENUMVALUE = _descriptor.Descriptor(
  name='EnumValue',
  full_name='google.protobuf.EnumValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.EnumValue.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='number', full_name='google.protobuf.EnumValue.number', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.EnumValue.options', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1267,
  serialized_end=1350,
)


_OPTION = _descriptor.Descriptor(
  name='Option',
  full_name='google.protobuf.Option',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.Option.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.Option.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1352,
  serialized_end=1411,
)

_TYPE.fields_by_name['fields'].message_type = _FIELD
_TYPE.fields_by_name['options'].message_type = _OPTION
_TYPE.fields_by_name['source_context'].message_type = google_dot_protobuf_dot_source__context__pb2._SOURCECONTEXT
_TYPE.fields_by_name['syntax'].enum_type = _SYNTAX
_FIELD.fields_by_name['kind'].enum_type = _FIELD_KIND
_FIELD.fields_by_name['cardinality'].enum_type = _FIELD_CARDINALITY
_FIELD.fields_by_name['options'].message_type = _OPTION
_FIELD_KIND.containing_type = _FIELD
_FIELD_CARDINALITY.containing_type = _FIELD
_ENUM.fields_by_name['enumvalue'].message_type = _ENUMVALUE
_ENUM.fields_by_name['options'].message_type = _OPTION
_ENUM.fields_by_name['source_context'].message_type = google_dot_protobuf_dot_source__context__pb2._SOURCECONTEXT
_ENUM.fields_by_name['syntax'].enum_type = _SYNTAX
_ENUMVALUE.fields_by_name['options'].message_type = _OPTION
_OPTION.fields_by_name['value'].message_type = google_dot_protobuf_dot_any__pb2._ANY
DESCRIPTOR.message_types_by_name['Type'] = _TYPE
DESCRIPTOR.message_types_by_name['Field'] = _FIELD
DESCRIPTOR.message_types_by_name['Enum'] = _ENUM
DESCRIPTOR.message_types_by_name['EnumValue'] = _ENUMVALUE
DESCRIPTOR.message_types_by_name['Option'] = _OPTION
DESCRIPTOR.enum_types_by_name['Syntax'] = _SYNTAX
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Type = _reflection.GeneratedProtocolMessageType('Type', (_message.Message,), dict(
  DESCRIPTOR = _TYPE,
  __module__ = 'google.protobuf.type_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Type)
  ))
_sym_db.RegisterMessage(Type)

Field = _reflection.GeneratedProtocolMessageType('Field', (_message.Message,), dict(
  DESCRIPTOR = _FIELD,
  __module__ = 'google.protobuf.type_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Field)
  ))
_sym_db.RegisterMessage(Field)

Enum = _reflection.GeneratedProtocolMessageType('Enum', (_message.Message,), dict(
  DESCRIPTOR = _ENUM,
  __module__ = 'google.protobuf.type_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Enum)
  ))
_sym_db.RegisterMessage(Enum)

EnumValue = _reflection.GeneratedProtocolMessageType('EnumValue', (_message.Message,), dict(
  DESCRIPTOR = _ENUMVALUE,
  __module__ = 'google.protobuf.type_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.EnumValue)
  ))
_sym_db.RegisterMessage(EnumValue)

Option = _reflection.GeneratedProtocolMessageType('Option', (_message.Message,), dict(
  DESCRIPTOR = _OPTION,
  __module__ = 'google.protobuf.type_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Option)
  ))
_sym_db.RegisterMessage(Option)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.google.protobufB\tTypeProtoP\001Z/google.golang.org/genproto/protobuf/ptype;ptype\370\001\001\242\002\003GPB\252\002\036Google.Protobuf.WellKnownTypes'))
# @@protoc_insertion_point(module_scope)
PK��\B��

*protobuf/unittest_mset_wire_format_pb2.pycnu�[����
���hc-@sddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddgdgdgdgdejej�ed��deddd d@gd#gd$d%d&d'�Zejdd(dd)dddedddejdd*dd+d,dd-d.d/d0d1d2d3d.d4ed5dd6dd7dddd8ed9dddde�gdgdgdgdddeddd gd#gd$d:d&d;�Zeejd*_eejd<eejd(<eje�e	jdejfe d<ed=d>��Z!ej"e!�e	jd(ejfe d<ed=d>��Z#ej"e#�ee_$ejej%�ed?��e_&ee_$ejej�ed��e_&dS(Ai����NiicCs|S(N((tx((sQ/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_wire_format_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_wire_format_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames/google/protobuf/unittest_mset_wire_format.prototpackagetproto2_wireformat_unittesttsyntaxtproto2t
serialized_pbs�
/google/protobuf/unittest_mset_wire_format.protoproto2_wireformat_unittest"
TestMessageSet*����:"d
!TestMessageSetWireFormatContainer?
message_set (2*.proto2_wireformat_unittest.TestMessageSetB)H��!Google.ProtocolBuffers.TestProtostTestMessageSett	full_names)proto2_wireformat_unittest.TestMessageSettfilenametfiletcontaining_typetfieldst
extensionstnested_typest
enum_typestoptionsst
is_extendabletextension_rangesii���toneofstserialized_startiOtserialized_endimt!TestMessageSetWireFormatContainers<proto2_wireformat_unittest.TestMessageSetWireFormatContainertmessage_setsHproto2_wireformat_unittest.TestMessageSetWireFormatContainer.message_settindextnumberittypeitcpp_typei
tlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopeioi�t
DESCRIPTORt
__module__s-google.protobuf.unittest_mset_wire_format_pb2s)H��!Google.ProtocolBuffers.TestProtos(ii���('tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR,t
DescriptortNonet
_ParseOptionstMessageOptionstTruet_TESTMESSAGESETtFieldDescriptortFalset"_TESTMESSAGESETWIREFORMATCONTAINERtfields_by_nameR(tmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageRthas_optionstFileOptionst_options(((sQ/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_wire_format_pb2.pyt<module>s�%							




	!	PK��\O��=��protobuf/empty_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/empty.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/empty.proto',
  package='google.protobuf',
  syntax='proto3',
  serialized_pb=_b('\n\x1bgoogle/protobuf/empty.proto\x12\x0fgoogle.protobuf\"\x07\n\x05\x45mptyBv\n\x13\x63om.google.protobufB\nEmptyProtoP\x01Z\'github.com/golang/protobuf/ptypes/empty\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3')
)




_EMPTY = _descriptor.Descriptor(
  name='Empty',
  full_name='google.protobuf.Empty',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=48,
  serialized_end=55,
)

DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), dict(
  DESCRIPTOR = _EMPTY,
  __module__ = 'google.protobuf.empty_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Empty)
  ))
_sym_db.RegisterMessage(Empty)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.google.protobufB\nEmptyProtoP\001Z\'github.com/golang/protobuf/ptypes/empty\370\001\001\242\002\003GPB\252\002\036Google.Protobuf.WellKnownTypes'))
# @@protoc_insertion_point(module_scope)
PK��\Q�tbbprotobuf/__init__.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Copyright 2007 Google Inc. All Rights Reserved.

__version__ = '3.5.0'

if __name__ != '__main__':
  try:
    __import__('pkg_resources').declare_namespace(__name__)
  except ImportError:
    __path__ = __import__('pkgutil').extend_path(__path__, __name__)
PK��\i�MMprotobuf/message_factory.pycnu�[����
���hc@shdZdZddlmZddlmZddlmZdefd��YZe�Zd�Z	d	S(
soProvides a factory class for generating dynamic messages.

The easiest way to use this class is if you have access to the FileDescriptor
protos containing the messages you want to create you can just do the following:

message_classes = message_factory.GetMessages(iterable_of_file_descriptors)
my_proto_instance = message_classes['some.proto.package.MessageName']()
s"matthewtoia@google.com (Matt Toia)i����(tdescriptor_pool(tmessage(t
reflectiontMessageFactorycBs,eZdZdd�Zd�Zd�ZRS(s@Factory for creating Proto2 messages from descriptors in a pool.cCs"|ptj�|_i|_dS(sInitializes a new factory.N(RtDescriptorPooltpoolt_classes(tselfR((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyt__init__2scCs	||jkr�|j}ttkr<|jjdd�}ntj|tjfi|d6dd6�}||j|<x-|j
D]"}|jr||j|j�q|q|WxY|j
jD]H}|j|jkr�|j|j�n|j|j}|j|�q�Wn|j|S(sDBuilds a proto2 message class based on the passed in descriptor.

    Passing a descriptor with a fully qualified name matching a previous
    invocation will cause the same class to be returned.

    Args:
      descriptor: The descriptor to build from.

    Returns:
      A class describing the passed in descriptor.
    tasciitignoret
DESCRIPTORt
__module__N(RtnametstrtbytestencodeRtGeneratedProtocolMessageTypeRtMessagetNonetfieldstmessage_typetGetPrototypeRt
extensionstcontaining_typetRegisterExtension(Rt
descriptortdescriptor_nametresult_classtfieldt	extensiontextended_class((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyR9s$		
	cCs�i}x�|D]�}|jj|�}x-|jj�D]}|j|�||j<q5WxY|jj�D]H}|j|jkr�|j|j�n|j|j}|j	|�qeWq
W|S(s�Gets all the messages from a specified file.

    This will find and resolve dependencies, failing if the descriptor
    pool cannot satisfy them.

    Args:
      files: The file names to extract messages from.

    Returns:
      A dictionary mapping proto names to the message classes. This will include
      any dependent messages as well as any messages defined in the same file as
      a specified message.
    (
RtFindFileByNametmessage_types_by_nametvaluesRt	full_nametextensions_by_nameRRR(Rtfilestresultt	file_namet	file_desctdescRR((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pytGetMessagesYs
N(t__name__Rt__doc__RRRR*(((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyR/s	 csfd�|D����fd��x�rB��j�d�q%Wtjg|D]}|j^qP�S(s^Builds a dictionary of all the messages available in a set of files.

  Args:
    file_protos: Iterable of FileDescriptorProto to build messages out of.

  Returns:
    A dictionary mapping proto names to the message classes. This will include
    any dependent messages as well as any messages defined in the same file as
    a specified message.
  cSsi|]}||j�qS((R
(t.0t
file_proto((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pys
<dictcomp>�s	csJx3|jD](}|�kr
��j|��q
q
Wtjj|�dS(N(t
dependencytpopt_FACTORYRtAdd(R.R/(t_AddFiletfile_by_name(sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyR3�si(tpopitemR1R*R
(tfile_protosR.((R3R4sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyR*�s

	N(
R,t
__author__tgoogle.protobufRRRtobjectRR1R*(((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyt<module>&sO	PK��\C' ���protobuf/any_test_pb2.pyonu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�Zejdddddddedddejdddddddd d!d"d#d d$d d%ed&dd'dd(dddd)ed*dd+dde�ejdd,dd-dd dd.d!d/d#d0d$d d%ed&dd'dd(dddd)ed*dd+dde�ejdd1dd2dd.ddd!d/d#d0d$dd%ed&gd'dd(dddd)ed*dd+dde�gd3gd4gd5gd+dd6eddd7gd8gd9d:d;d<�Zejejd,_ejejd1_eejd<eje�e	jdejfed=ed>d?��Z ej!e �dS(@i����NiicCs|S(N((tx((s@/usr/lib/python2.7/site-packages/google/protobuf/any_test_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s@/usr/lib/python2.7/site-packages/google/protobuf/any_test_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tany_pb2tnamesgoogle/protobuf/any_test.prototpackagetprotobuf_unittesttsyntaxtproto3t
serialized_pbs�
google/protobuf/any_test.protoprotobuf_unittestgoogle/protobuf/any.proto"y
TestAny
int32_value ('
	any_value (2.google.protobuf.Any0
repeated_any_value (2.google.protobuf.Anybproto3tdependenciestTestAnyt	full_namesprotobuf_unittest.TestAnytfilenametfiletcontaining_typetfieldstint32_values%protobuf_unittest.TestAny.int32_valuetindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst	any_values#protobuf_unittest.TestAny.any_valueiii
trepeated_any_values,protobuf_unittest.TestAny.repeated_any_valuet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiPtserialized_endi�t
DESCRIPTORt
__module__sgoogle.protobuf.any_test_pb2("tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbR
t google_dot_protobuf_dot_any__pb2tFileDescriptorR/t
DescriptortNonetFieldDescriptortFalset_TESTANYt_ANYtfields_by_nameR tmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessage(((s@/usr/lib/python2.7/site-packages/google/protobuf/any_test_pb2.pyt<module>sv%						

PK��\�O��protobuf/api_pb2.pyonu�[����
���hc3@s�
ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZddlmZejd
dddddded�dejejg�Zejd
ddddddedddejd
d
dddddd d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
d.dd/dd dd0d!d1d#d2d$dd%ed&gd)dd*dddd+ed,dd-dde�ejd
d-dd3dd0ddd!d1d#d2d$dd%ed&gd)dd*dddd+ed,dd-dde�ejd
d4dd5dddd6d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
d7dd8dd6dd9d!d1d#d2d$d d%ed&dd)dd*dddd+ed,dd-dde�ejd
d:dd;dd9dd<d!d1d#d2d$dd%ed&gd)dd*dddd+ed,dd-dde�ejd
ddd=dd<dd>d!d?d#d@d$d d%ed&dd)dd*dddd+ed,dd-dde�gdAgdBgdCgd-ddDedddEgdFgdGdHdIdJ�Zejd
dKddLdddedddejd
d
ddMdddd d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
dNddOdd dd0d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
dPddQdd0ddd!d@d#d>d$d d%ed&ed)dd*dddd+ed,dd-dde�ejd
dRddSdddd6d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
dTddUdd6dd9d!d@d#d>d$d d%ed&ed)dd*dddd+ed,dd-dde�ejd
d-ddVdd9dd<d!d1d#d2d$dd%ed&gd)dd*dddd+ed,dd-dde�ejd
dddWdd<dd>d!d?d#d@d$d d%ed&dd)dd*dddd+ed,dd-dde�gdAgdBgdCgd-ddDedddEgdFgdGdXdIdY�Zejd
dZdd[dddedddejd
d
dd\dddd d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
d]dd^dd dd0d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�gdAgdBgdCgd-ddDedddEgdFgdGd_dId`�Zeejd._ejejd-_ej ejd7_eejd:_ej!ejd_"ejejd-_ej!ejd_"eej#d<eej#dK<eej#dZ<ej$e�e	j%dej&fe'daedbdc��Z(ej)e(�e	j%dKej&fe'daedbdc��Z*ej)e*�e	j%dZej&fe'daedbdc��Z+ej)e+�e,e_-ej.ej/�edd��e_0dS(ei����NiicCs|S(N((tx((s;/usr/lib/python2.7/site-packages/google/protobuf/api_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s;/usr/lib/python2.7/site-packages/google/protobuf/api_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tsource_context_pb2(ttype_pb2tnamesgoogle/protobuf/api.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/api.protogoogle.protobuf$google/protobuf/source_context.protogoogle/protobuf/type.proto"�
Api
name (	(
methods (2.google.protobuf.Method(
options (2.google.protobuf.Option
version (	6
source_context (2.google.protobuf.SourceContext&
mixins (2.google.protobuf.Mixin'
syntax (2.google.protobuf.Syntax"�
Method
name (	
request_type_url (	
request_streaming (
response_type_url (	
response_streaming ((
options (2.google.protobuf.Option'
syntax (2.google.protobuf.Syntax"#
Mixin
name (	
root (	Bu
com.google.protobufBApiProtoPZ+google.golang.org/genproto/protobuf/api;api�GPB�Google.Protobuf.WellKnownTypesbproto3tdependenciestApit	full_namesgoogle.protobuf.Apitfilenametfiletcontaining_typetfieldssgoogle.protobuf.Api.nametindextnumberittypei	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetoptionstmethodssgoogle.protobuf.Api.methodsiii
sgoogle.protobuf.Api.optionstversionsgoogle.protobuf.Api.versionitsource_contexts"google.protobuf.Api.source_contextitmixinssgoogle.protobuf.Api.mixinsisgoogle.protobuf.Api.syntaxiiit
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiqtserialized_endirtMethodsgoogle.protobuf.Methodsgoogle.protobuf.Method.nametrequest_type_urls'google.protobuf.Method.request_type_urltrequest_streamings(google.protobuf.Method.request_streamingtresponse_type_urls(google.protobuf.Method.response_type_urltresponse_streamings)google.protobuf.Method.response_streamingsgoogle.protobuf.Method.optionssgoogle.protobuf.Method.syntaxiuiJtMixinsgoogle.protobuf.Mixinsgoogle.protobuf.Mixin.nametrootsgoogle.protobuf.Mixin.rootiLiot
DESCRIPTORt
__module__sgoogle.protobuf.api_pb2su
com.google.protobufBApiProtoPZ+google.golang.org/genproto/protobuf/api;api�GPB�Google.Protobuf.WellKnownTypes(1tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbR
t,google_dot_protobuf_dot_source__context__pb2Rt!google_dot_protobuf_dot_type__pb2tFileDescriptorR7t
DescriptortNonetFieldDescriptortFalsetdecodet_APIt_METHODt_MIXINtfields_by_nameRt_OPTIONt_SOURCECONTEXTt_SYNTAXR tmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR0R5tTruethas_optionst
_ParseOptionstFileOptionst_options(((s;/usr/lib/python2.7/site-packages/google/protobuf/api_pb2.pyt<module>s�%																							






	PK��\�Ɨo��protobuf/reflection.pycnu�[����
���hc@s�dZdZddlmZddlmZej�dkrQddlmZ	nddlm
Z	e	jZiZd�Z
d	�Zd
S(s
Contains a metaclass and helper functions used to create
protocol message classes from Descriptor objects at runtime.

Recall that a metaclass is the "type" of a class.
(A class is to a metaclass what an instance is to a class.)

In this case, we use the GeneratedProtocolMessageType metaclass
to inject all the useful functionality into the classes
output by the protocol compiler at compile-time.

The upshot of all this is that the real implementation
details for ALL pure-Python protocol buffers are *here in
this file*.
s#robinson@google.com (Will Robinson)i����(tapi_implementation(tmessagetcpp(tcpp_message(tpython_messagecCs&t|�}|�}|j|�|S(s�Generate a new Message instance from this Descriptor and a byte string.

  Args:
    descriptor: Protobuf Descriptor object
    byte_str: Serialized protocol buffer byte string

  Returns:
    Newly created protobuf Message object.
  (t	MakeClasstParseFromString(t
descriptortbyte_strtresult_classtnew_msg((s>/usr/lib/python2.7/site-packages/google/protobuf/reflection.pytParseMessageCs
	
cCs�|tkrt|Si}x-|jj�D]\}}t|�||<q*W||tj<tt|j�tj	f|�}|t|<|S(s�Construct a class object for a protobuf described by descriptor.

  Composite descriptors are handled by defining the new class as a member of the
  parent class, recursing as deep as necessary.
  This is the dynamic equivalent to:

  class Parent(message.Message):
    __metaclass__ = GeneratedProtocolMessageType
    DESCRIPTOR = descriptor
    class Child(message.Message):
      __metaclass__ = GeneratedProtocolMessageType
      DESCRIPTOR = descriptor.nested_types[0]

  Sample usage:
    file_descriptor = descriptor_pb2.FileDescriptorProto()
    file_descriptor.ParseFromString(proto2_string)
    msg_descriptor = descriptor.MakeDescriptor(file_descriptor.message_type[0])
    msg_class = reflection.MakeClass(msg_descriptor)
    msg = msg_class()

  Args:
    descriptor: A descriptor.Descriptor object describing the protobuf.
  Returns:
    The Message class object described by the descriptor.
  (
tMESSAGE_CLASS_CACHEtnested_types_by_nametitemsRtGeneratedProtocolMessageTypet_DESCRIPTOR_KEYtstrtnameRtMessage(Rt
attributesRtnested_typetresult((s>/usr/lib/python2.7/site-packages/google/protobuf/reflection.pyRSs

N(t__doc__t
__author__tgoogle.protobuf.internalRtgoogle.protobufRtTypetgoogle.protobuf.pyextRtmessage_implRRRRR(((s>/usr/lib/python2.7/site-packages/google/protobuf/reflection.pyt<module>.s		PK��\��ö��protobuf/empty_pb2.pyonu�[����
���hc!@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddgdgdgdgdddedddgd gd!d"d#d$�Zeejd<eje�e	jdejfed%ed&d'��Zeje�ee_ejej�ed(��e_ dS()i����NiicCs|S(N((tx((s=/usr/lib/python2.7/site-packages/google/protobuf/empty_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s=/usr/lib/python2.7/site-packages/google/protobuf/empty_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/empty.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/empty.protogoogle.protobuf"
EmptyBv
com.google.protobufB
EmptyProtoPZ'github.com/golang/protobuf/ptypes/empty��GPB�Google.Protobuf.WellKnownTypesbproto3tEmptyt	full_namesgoogle.protobuf.Emptytfilenametfiletcontaining_typetfieldst
extensionstnested_typest
enum_typestoptionst
is_extendabletextension_rangestoneofstserialized_starti0tserialized_endi7t
DESCRIPTORt
__module__sgoogle.protobuf.empty_pb2sv
com.google.protobufB
EmptyProtoPZ'github.com/golang/protobuf/ptypes/empty��GPB�Google.Protobuf.WellKnownTypes(!tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorRt
DescriptortNonetFalset_EMPTYtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((s=/usr/lib/python2.7/site-packages/google/protobuf/empty_pb2.pyt<module>sJ%			


	PK��\���	�	protobuf/source_context_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/source_context.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/source_context.proto',
  package='google.protobuf',
  syntax='proto3',
  serialized_pb=_b('\n$google/protobuf/source_context.proto\x12\x0fgoogle.protobuf\"\"\n\rSourceContext\x12\x11\n\tfile_name\x18\x01 \x01(\tB\x95\x01\n\x13\x63om.google.protobufB\x12SourceContextProtoP\x01ZAgoogle.golang.org/genproto/protobuf/source_context;source_context\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3')
)




_SOURCECONTEXT = _descriptor.Descriptor(
  name='SourceContext',
  full_name='google.protobuf.SourceContext',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='file_name', full_name='google.protobuf.SourceContext.file_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=57,
  serialized_end=91,
)

DESCRIPTOR.message_types_by_name['SourceContext'] = _SOURCECONTEXT
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

SourceContext = _reflection.GeneratedProtocolMessageType('SourceContext', (_message.Message,), dict(
  DESCRIPTOR = _SOURCECONTEXT,
  __module__ = 'google.protobuf.source_context_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.SourceContext)
  ))
_sym_db.RegisterMessage(SourceContext)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.google.protobufB\022SourceContextProtoP\001ZAgoogle.golang.org/genproto/protobuf/source_context;source_context\242\002\003GPB\252\002\036Google.Protobuf.WellKnownTypes'))
# @@protoc_insertion_point(module_scope)
PK��\lu�p
�
�%protobuf/test_messages_proto3_pb2.pyonu�[����
���hc�@s�addlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZdd
lmZddlmZddlmZddlmZddlmZejddddddded�dejejejejejejg�Zejddddddded ej!dd!d"dd#dd$dd%d�ej!dd&d"d'd#d'd$dd%d�ej!dd(d"d)d#d)d$dd%d�gd*dd$dd+d,d-d.�	Z"ej#e"�ej$e"�Z%dZ&d'Z'd)Z(ejdd/dd0ddded ej!dd1d"dd#dd$dd%d�ej!dd2d"d'd#d'd$dd%d�ej!dd3d"d)d#d)d$dd%d�ej!dd4d"dd#dd$dd%d�gd*dd$dd+d5d-d6�	Z)ej#e)�ej*dd7dd8ddded*dd9ej+dd:dd;d"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddEddFd"d'd#d)d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ddLe,dddMgdNgd+dOd-dP�Z-ej*ddQddRddded*dd9ej+ddSddTd"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUddVd"d'd#d)d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+dXd-dY�Z0ej*ddZdd[ddded*dd9ej+ddSdd\d"dd#d'd%dd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd]d"d'd#d)d%dd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d^d-d_�Z1ej*dd`ddaddded*dd9ej+ddSddbd"dd#d'd%dcd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdddd"d'd#d)d%dcd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+ded-df�Z2ej*ddgddhddded*dd9ej+ddSddid"dd#d'd%djd=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUddkd"d'd#d)d%djd=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+dld-dm�Z3ej*ddnddoddded*dd9ej+ddSddpd"dd#d'd%dqd=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUddrd"d'd#d)d%dqd=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+dsd-dt�Z4ej*dduddvddded*dd9ej+ddSddwd"dd#d'd%dxd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUddyd"d'd#d)d%dxd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+dzd-d{�Z5ej*dd|dd}ddded*dd9ej+ddSdd~d"dd#d'd%dd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%dd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z6ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z7ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z8ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z9ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d)d=d�d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z;ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d'd=d<d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z<ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=dd>d'd?e,d@e,dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=dd>d'd?e,d@e,dAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z=ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z?ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d�d>d'd?e,d@ed��dAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z@ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��ZAej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��ZBej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d�d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��ZCej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d�d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��ZDej*dd�dd�ddded*dd9ej+dd�dd�d"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d'd#d)d%dd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d)d#dd%dcd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dd#djd%djd=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"djd#d<d%dqd=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d<d#d�d%dxd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#dd%dd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dd#d�d%d�d=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%d�d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#dHd%d�d=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dHd#dGd%d)d=d�d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dGd#d�d%d'd=d<d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#dcd%d�d=dd>d'd?e,d@e,dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dcd#d�d%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%d�d=d�d>d'd?e,d@ed��dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#dxd%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dqd#d�d%d�d=d�d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dxd#d�d%d�d=d�d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�ddd"d�d#dd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$ej.ejE�ed��de�ej+ddddd"dd#dd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$ej.ejE�ed��de�ej+dddd	d"d�d#d
d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddddd"d�d#d
d%d<d=d'd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dd=d)d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dcd=dd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%djd=djd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dqd=d'd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"d
d#dd%dxd=d)d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dddd d"d!d#d"d%dd=dd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd#dd$d"d%d#d&d%d�d=djd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd'dd(d"d)d#d*d%d�d=d'd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd+dd,d"d
d#d-d%d�d=d)d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd.dd/d"dd#d0d%d)d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd1dd2d"dd#d3d%d'd=d<d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd4dd5d"dd#d6d%d�d=dd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd7dd8d"dd#d9d%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd:dd;d"dd#d<d%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd=dd>d"d"d#d?d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd@ddAd"d&d#dBd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddCddDd"d*d#dEd%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddFddGd"d-d#dHd%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddIddJd"d0d#dKd%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$ej.ejE�ed��de�ej+ddLddMd"d3d#dNd%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$ej.ejE�ed��de�ej+ddOddPd"d6d#dQd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddRddSd"d9d#dTd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddUddVd"d<d#dWd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddXddYd"dZd#d[d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd\dd]d"d^d#d_d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd`ddad"d?d#dbd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddcdddd"dBd#ded%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddfddgd"dhd#did%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddjddkd"dEd#dld%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddmddnd"dHd#dod%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddpddqd"drd#dsd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddtddud"dKd#dvd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddwddxd"dNd#dyd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddzdd{d"dQd#d|d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd}dd~d"dTd#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dWd#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d[d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d_d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dbd#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"ded#d�d%dcd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"did#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dld#d�d%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dod#d�d%d�d=d�d>d'd?e,d@ed��dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dsd#d�d%d�d=dd>d'd?e,d@e,dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dvd#d�d%djd=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dyd#d�d%d)d=d�d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d|d#d�d%d'd=d<d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dd#d�d%d�d=d�d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�ddd"dd#dd%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"d	d#d
d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"d
d#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dddd d"d!d#d"d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd#dd$d"d%d#d&d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd'dd(d"d)d#d*d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd+dd,d"d-d#d.d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd/dd0d"d1d#d2d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd3dd4d"d5d#d6d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd7dd8d"d9d#d:d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd;dd<d"d=d#d>d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd?dd@d"dAd#dBd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddCddDd"d�d#dEd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddFddGd"d�d#dHd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddIddJd"d�d#dKd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddLddMd"d�d#dNd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddOddPd"d�d#dQd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddRddSd"d�d#dTd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUddVd"d�d#dWd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddXddYd"d�d#dZd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gwdIgdJe-e0e1e2e3e4e5e6e7e8e9e;e<e=e?e@eAeBeCeDgdKe)gd$ddLe,dddMgdNejFdd[dd\d"dd*dd9g�gd+d]d-d^�ZGej*dd_dd`ddded*dd9ej+ddaddbd"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ddLe,dddMgdNgd+dcd-dd�ZHeGe-jIdE_JeGe-_KeGe0_KeGe1_KeGe2_KeGe3_KeGe4_KeGe5_KeGe6_KeGe7_KeGe8_KeGe9_KeGe;_KeGe<_KeGe=_KeGe?_KeGe@_Ke-eAjIdU_JeGeA_KeHeBjIdU_JeGeB_Ke)eCjIdU_LeGeC_Ke"eDjIdU_LeGeD_Ke-eGjId�_JeHeGjId�_Je)eGjId�_Le"eGjId�_LeGeGjId_Je-eGjId=_JeHeGjId@_Je)eGjIdC_Le"eGjIdF_Le0eGjIdO_Je1eGjIdR_Je2eGjIdU_Je3eGjIdX_Je4eGjId\_Je5eGjId`_Je6eGjIdc_Je7eGjIdf_Je8eGjIdj_Je9eGjIdm_Je;eGjIdp_Je<eGjIdt_Je=eGjIdw_Je?eGjIdz_Je@eGjId}_JeAeGjId�_JeBeGjId�_JeCeGjId�_JeDeGjId�_Je-eGjId�_Je)eGjId�_LejMeGjId�_JejNeGjId�_JejOeGjId�_JejPeGjId�_JejQeGjId�_JejReGjId�_JejSeGjId�_JejTeGjId�_JejUeGjId�_JejMeGjId�_JejNeGjId�_JejOeGjId�_JejPeGjId�_JejQeGjId�_JejReGjId�_JejSeGjId�_JejTeGjId�_JejUeGjId�_JejVeGjId�_JejWeGjId�_JejXeGjId�_JejYeGjId�_JejZeGjId�_Jej[eGjId�_JejVeGjId_JejWeGjId_JejXeGjId_JejYeGjId_JejZeGjId_Jej[eGjId_JeGe)_KeGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGej`d�<eHej`d_<e"ejad<ejbe�ejcd�e	jdfeed7ejcd7e	jdfeedee-dfdg��dQejcdQe	jdfeedee0dfdg��dZejcdZe	jdfeedee1dfdg��d`ejcd`e	jdfeedee2dfdg��dgejcdge	jdfeedee3dfdg��dnejcdne	jdfeedee4dfdg��duejcdue	jdfeedee5dfdg��d|ejcd|e	jdfeedee6dfdg��d�ejcd�e	jdfeedee7dfdg��d�ejcd�e	jdfeedee8dfdg��d�ejcd�e	jdfeedee9dfdg��d�ejcd�e	jdfeedee;dfdg��d�ejcd�e	jdfeedee<dfdg��d�ejcd�e	jdfeedee=dfdg��d�ejcd�e	jdfeedee?dfdg��d�ejcd�e	jdfeedee@dfdg��d�ejcd�e	jdfeedeeAdfdg��d�ejcd�e	jdfeedeeBdfdg��d�ejcd�e	jdfeedeeCdfdg��d�ejcd�e	jdfeedeeDdfdg��deeGdfdg��Zfejgef�ejgefjh�ejgefji�ejgefjj�ejgefjk�ejgefjl�ejgefjm�ejgefjn�ejgefjo�ejgefjp�ejgefjq�ejgefjr�ejgefjs�ejgefjt�ejgefju�ejgefjv�ejgefjw�ejgefjx�ejgefjy�ejgefjz�ejgefj{�ejcd_e	jdfeedeeHdfdg��Z|ejge|�e}e_~ej.ej�edh��e_�e}e0_~ej.ej/�edW��e0_�e}e1_~ej.ej/�edW��e1_�e}e2_~ej.ej/�edW��e2_�e}e3_~ej.ej/�edW��e3_�e}e4_~ej.ej/�edW��e4_�e}e5_~ej.ej/�edW��e5_�e}e6_~ej.ej/�edW��e6_�e}e7_~ej.ej/�edW��e7_�e}e8_~ej.ej/�edW��e8_�e}e9_~ej.ej/�edW��e9_�e}e;_~ej.ej/�edW��e;_�e}e<_~ej.ej/�edW��e<_�e}e=_~ej.ej/�edW��e=_�e}e?_~ej.ej/�edW��e?_�e}e@_~ej.ej/�edW��e@_�e}eA_~ej.ej/�edW��eA_�e}eB_~ej.ej/�edW��eB_�e}eC_~ej.ej/�edW��eC_�e}eD_~ej.ej/�edW��eD_�e}eGjId�_~ej.ejE�ed��eGjId�_�e}eGjId_~ej.ejE�ed��eGjId_�e}eGjIdI_~ej.ejE�ed��eGjIdI_�e}eGjIdL_~ej.ejE�ed��eGjIdL_�dS(ii����NiicCs|S(N((tx((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto3_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto3_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tany_pb2(tduration_pb2(tfield_mask_pb2(t
struct_pb2(t
timestamp_pb2(twrappers_pb2tnames*google/protobuf/test_messages_proto3.prototpackagesprotobuf_test_messages.proto3tsyntaxtproto3t
serialized_pbs_
*google/protobuf/test_messages_proto3.protoprotobuf_test_messages.proto3google/protobuf/any.protogoogle/protobuf/duration.proto google/protobuf/field_mask.protogoogle/protobuf/struct.protogoogle/protobuf/timestamp.protogoogle/protobuf/wrappers.proto"�;
TestAllTypesProto3
optional_int32 (
optional_int64 (
optional_uint32 (

optional_uint64 (
optional_sint32 (
optional_sint64 (
optional_fixed32 (
optional_fixed64 (
optional_sfixed32	 (
optional_sfixed64
 (
optional_float (
optional_double (

optional_bool
 (
optional_string (	
optional_bytes (`
optional_nested_message (2?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessageO
optional_foreign_message (2-.protobuf_test_messages.proto3.ForeignMessageZ
optional_nested_enum (2<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnumI
optional_foreign_enum (2*.protobuf_test_messages.proto3.ForeignEnum!
optional_string_piece (	B

optional_cord (	BL
recursive_message (21.protobuf_test_messages.proto3.TestAllTypesProto3
repeated_int32 (
repeated_int64  (
repeated_uint32! (

repeated_uint64" (
repeated_sint32# (
repeated_sint64$ (
repeated_fixed32% (
repeated_fixed64& (
repeated_sfixed32' (
repeated_sfixed64( (
repeated_float) (
repeated_double* (

repeated_bool+ (
repeated_string, (	
repeated_bytes- (`
repeated_nested_message0 (2?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessageO
repeated_foreign_message1 (2-.protobuf_test_messages.proto3.ForeignMessageZ
repeated_nested_enum3 (2<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnumI
repeated_foreign_enum4 (2*.protobuf_test_messages.proto3.ForeignEnum!
repeated_string_piece6 (	B

repeated_cord7 (	B]
map_int32_int328 (2D.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry]
map_int64_int649 (2D.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entrya
map_uint32_uint32: (2F.protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entrya
map_uint64_uint64; (2F.protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entrya
map_sint32_sint32< (2F.protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entrya
map_sint64_sint64= (2F.protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entrye
map_fixed32_fixed32> (2H.protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entrye
map_fixed64_fixed64? (2H.protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entryi
map_sfixed32_sfixed32@ (2J.protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entryi
map_sfixed64_sfixed64A (2J.protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry]
map_int32_floatB (2D.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry_
map_int32_doubleC (2E.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntryY

map_bool_boolD (2B.protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntrya
map_string_stringE (2F.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry_
map_string_bytesF (2E.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntryp
map_string_nested_messageG (2M.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntryr
map_string_foreign_messageH (2N.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntryj
map_string_nested_enumI (2J.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntryl
map_string_foreign_enumJ (2K.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry
oneof_uint32o (
H_
oneof_nested_messagep (2?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessageH
oneof_stringq (	H
oneof_bytesr (H

oneof_bools (H
oneof_uint64t (H
oneof_floatu (H
oneof_doublev (HR

oneof_enumw (2<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnumH:
optional_bool_wrapper� (2.google.protobuf.BoolValue<
optional_int32_wrapper� (2.google.protobuf.Int32Value<
optional_int64_wrapper� (2.google.protobuf.Int64Value>
optional_uint32_wrapper� (2.google.protobuf.UInt32Value>
optional_uint64_wrapper� (2.google.protobuf.UInt64Value<
optional_float_wrapper� (2.google.protobuf.FloatValue>
optional_double_wrapper� (2.google.protobuf.DoubleValue>
optional_string_wrapper� (2.google.protobuf.StringValue<
optional_bytes_wrapper� (2.google.protobuf.BytesValue:
repeated_bool_wrapper� (2.google.protobuf.BoolValue<
repeated_int32_wrapper� (2.google.protobuf.Int32Value<
repeated_int64_wrapper� (2.google.protobuf.Int64Value>
repeated_uint32_wrapper� (2.google.protobuf.UInt32Value>
repeated_uint64_wrapper� (2.google.protobuf.UInt64Value<
repeated_float_wrapper� (2.google.protobuf.FloatValue>
repeated_double_wrapper� (2.google.protobuf.DoubleValue>
repeated_string_wrapper� (2.google.protobuf.StringValue<
repeated_bytes_wrapper� (2.google.protobuf.BytesValue5
optional_duration� (2.google.protobuf.Duration7
optional_timestamp� (2.google.protobuf.Timestamp8
optional_field_mask� (2.google.protobuf.FieldMask1
optional_struct� (2.google.protobuf.Struct+
optional_any� (2.google.protobuf.Any/
optional_value� (2.google.protobuf.Value5
repeated_duration� (2.google.protobuf.Duration7
repeated_timestamp� (2.google.protobuf.Timestamp7
repeated_fieldmask� (2.google.protobuf.FieldMask1
repeated_struct� (2.google.protobuf.Struct+
repeated_any� (2.google.protobuf.Any/
repeated_value� (2.google.protobuf.Value

fieldname1� (
field_name2� (
_field_name3� (

field__name4_� (
field0name5� (

field_0_name6� (

fieldName7� (

FieldName8� (
field_Name9� (
Field_Name10� (
FIELD_NAME11� (
FIELD_name12� (
__field_name13� (
__Field_name14� (

field__name15� (

field__Name16� (
field_name17__� (
Field_name18__� (b

NestedMessage	
a (F
corecursive (21.protobuf_test_messages.proto3.TestAllTypesProto34
MapInt32Int32Entry
key (
value (:84
MapInt64Int64Entry
key (
value (:86
MapUint32Uint32Entry
key (

value (
:86
MapUint64Uint64Entry
key (
value (:86
MapSint32Sint32Entry
key (
value (:86
MapSint64Sint64Entry
key (
value (:88
MapFixed32Fixed32Entry
key (
value (:88
MapFixed64Fixed64Entry
key (
value (:8:
MapSfixed32Sfixed32Entry
key (
value (:8:
MapSfixed64Sfixed64Entry
key (
value (:84
MapInt32FloatEntry
key (
value (:85
MapInt32DoubleEntry
key (
value (:82
MapBoolBoolEntry
key (
value (:86
MapStringStringEntry
key (	
value (	:85
MapStringBytesEntry
key (	
value (:8~
MapStringNestedMessageEntry
key (	N
value (2?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage:8m
MapStringForeignMessageEntry
key (	<
value (2-.protobuf_test_messages.proto3.ForeignMessage:8x
MapStringNestedEnumEntry
key (	K
value (2<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum:8g
MapStringForeignEnumEntry
key (	9
value (2*.protobuf_test_messages.proto3.ForeignEnum:8"9

NestedEnum
FOO
BAR
BAZ
NEG���������B
oneof_fieldJ��"
ForeignMessage	
c (*@
ForeignEnum
FOREIGN_FOO
FOREIGN_BAR
FOREIGN_BAZB8
(com.google.protobuf_test_messages.proto3H��Proto3bproto3tdependenciestForeignEnumt	full_names)protobuf_test_messages.proto3.ForeignEnumtfilenametfiletvaluestFOREIGN_FOOtindextnumbertoptionsttypetFOREIGN_BARitFOREIGN_BAZitcontaining_typetserialized_starti�tserialized_endit
NestedEnums;protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnumtFOOtBARtBAZtNEGini�t
NestedMessages>protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessagetfieldstas@protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.aitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetcorecursivesJprotobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.corecursiveii
t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi�iRtMapInt32Int32EntrysCprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32EntrytkeysGprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry.keytvaluesIprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry.values8iTi�tMapInt64Int64EntrysCprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64EntrysGprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry.keysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry.valuei�i�tMapUint32Uint32EntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry.keyi
sKprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry.valuei�i�tMapUint64Uint64EntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry.keyisKprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry.valuei�i.tMapSint32Sint32EntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry.keyisKprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry.valuei0iftMapSint64Sint64EntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry.keyisKprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry.valueihi�tMapFixed32Fixed32EntrysGprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32EntrysKprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry.keyisMprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry.valuei�i�tMapFixed64Fixed64EntrysGprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64EntrysKprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry.keyisMprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry.valuei�itMapSfixed32Sfixed32EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32EntrysMprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry.keyisOprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry.valueiiNtMapSfixed64Sfixed64EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64EntrysMprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry.keyisOprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry.valueiPi�tMapInt32FloatEntrysCprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntrysGprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry.keysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry.valuei�i�tMapInt32DoubleEntrysDprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntrysHprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry.keysJprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry.valuei�i�tMapBoolBoolEntrysAprotobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry.keyisGprotobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry.valuei�i+tMapStringStringEntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry.keyi	Rsutf-8sKprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry.valuei-ictMapStringBytesEntrysDprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntrysHprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry.keysJprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry.valueiiei�tMapStringNestedMessageEntrysLprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntrysPprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.keysRprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.valuei�itMapStringForeignMessageEntrysMprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntrysQprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.keysSprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.valueii�tMapStringNestedEnumEntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntrysMprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.keysOprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.valueii�itMapStringForeignEnumEntrysJprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntrysNprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.keysPprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.valueiiltTestAllTypesProto3s0protobuf_test_messages.proto3.TestAllTypesProto3toptional_int32s?protobuf_test_messages.proto3.TestAllTypesProto3.optional_int32toptional_int64s?protobuf_test_messages.proto3.TestAllTypesProto3.optional_int64toptional_uint32s@protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint32toptional_uint64s@protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint64toptional_sint32s@protobuf_test_messages.proto3.TestAllTypesProto3.optional_sint32toptional_sint64s@protobuf_test_messages.proto3.TestAllTypesProto3.optional_sint64toptional_fixed32sAprotobuf_test_messages.proto3.TestAllTypesProto3.optional_fixed32toptional_fixed64sAprotobuf_test_messages.proto3.TestAllTypesProto3.optional_fixed64toptional_sfixed32sBprotobuf_test_messages.proto3.TestAllTypesProto3.optional_sfixed32toptional_sfixed64sBprotobuf_test_messages.proto3.TestAllTypesProto3.optional_sfixed64toptional_floats?protobuf_test_messages.proto3.TestAllTypesProto3.optional_floattoptional_doubles@protobuf_test_messages.proto3.TestAllTypesProto3.optional_doublet
optional_bools>protobuf_test_messages.proto3.TestAllTypesProto3.optional_booltoptional_strings@protobuf_test_messages.proto3.TestAllTypesProto3.optional_stringtoptional_bytess?protobuf_test_messages.proto3.TestAllTypesProto3.optional_bytestoptional_nested_messagesHprotobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_messagetoptional_foreign_messagesIprotobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_messageitoptional_nested_enumsEprotobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_enumitoptional_foreign_enumsFprotobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_enumitoptional_string_piecesFprotobuf_test_messages.proto3.TestAllTypesProto3.optional_string_pieceist
optional_cords>protobuf_test_messages.proto3.TestAllTypesProto3.optional_cordiistrecursive_messagesBprotobuf_test_messages.proto3.TestAllTypesProto3.recursive_messageitrepeated_int32s?protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int32itrepeated_int64s?protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int64ii trepeated_uint32s@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint32i!trepeated_uint64s@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint64i"trepeated_sint32s@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_sint32ii#trepeated_sint64s@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_sint64i$trepeated_fixed32sAprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_fixed32ii%trepeated_fixed64sAprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_fixed64ii&trepeated_sfixed32sBprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_sfixed32ii'trepeated_sfixed64sBprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_sfixed64i(trepeated_floats?protobuf_test_messages.proto3.TestAllTypesProto3.repeated_floati)trepeated_doubles@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_doublei*t
repeated_bools>protobuf_test_messages.proto3.TestAllTypesProto3.repeated_booli+trepeated_strings@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_stringi,trepeated_bytess?protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bytesi-trepeated_nested_messagesHprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_messagei0trepeated_foreign_messagesIprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_messagei1trepeated_nested_enumsEprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_enumi3trepeated_foreign_enumsFprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_enumi4trepeated_string_piecesFprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_string_piecei6t
repeated_cords>protobuf_test_messages.proto3.TestAllTypesProto3.repeated_cordi7tmap_int32_int32s@protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_int32i8tmap_int64_int64s@protobuf_test_messages.proto3.TestAllTypesProto3.map_int64_int64i9tmap_uint32_uint32sBprotobuf_test_messages.proto3.TestAllTypesProto3.map_uint32_uint32i:tmap_uint64_uint64sBprotobuf_test_messages.proto3.TestAllTypesProto3.map_uint64_uint64i.i;tmap_sint32_sint32sBprotobuf_test_messages.proto3.TestAllTypesProto3.map_sint32_sint32i/i<tmap_sint64_sint64sBprotobuf_test_messages.proto3.TestAllTypesProto3.map_sint64_sint64i=tmap_fixed32_fixed32sDprotobuf_test_messages.proto3.TestAllTypesProto3.map_fixed32_fixed32i>tmap_fixed64_fixed64sDprotobuf_test_messages.proto3.TestAllTypesProto3.map_fixed64_fixed64i2i?tmap_sfixed32_sfixed32sFprotobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed32_sfixed32i@tmap_sfixed64_sfixed64sFprotobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed64_sfixed64iAtmap_int32_floats@protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_floati5iBtmap_int32_doublesAprotobuf_test_messages.proto3.TestAllTypesProto3.map_int32_doubleiCt
map_bool_bools>protobuf_test_messages.proto3.TestAllTypesProto3.map_bool_booliDtmap_string_stringsBprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_stringiEtmap_string_bytessAprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_bytesiFtmap_string_nested_messagesJprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_messageiGtmap_string_foreign_messagesKprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_messageiHtmap_string_nested_enumsGprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_enumiItmap_string_foreign_enumsHprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_enumiJtoneof_uint32s=protobuf_test_messages.proto3.TestAllTypesProto3.oneof_uint32iotoneof_nested_messagesEprotobuf_test_messages.proto3.TestAllTypesProto3.oneof_nested_messageiptoneof_strings=protobuf_test_messages.proto3.TestAllTypesProto3.oneof_stringiqtoneof_bytess<protobuf_test_messages.proto3.TestAllTypesProto3.oneof_bytesirt
oneof_bools;protobuf_test_messages.proto3.TestAllTypesProto3.oneof_boolistoneof_uint64s=protobuf_test_messages.proto3.TestAllTypesProto3.oneof_uint64ittoneof_floats<protobuf_test_messages.proto3.TestAllTypesProto3.oneof_floatiutoneof_doubles=protobuf_test_messages.proto3.TestAllTypesProto3.oneof_doubleivt
oneof_enums;protobuf_test_messages.proto3.TestAllTypesProto3.oneof_enumiwtoptional_bool_wrappersFprotobuf_test_messages.proto3.TestAllTypesProto3.optional_bool_wrapperi�toptional_int32_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.optional_int32_wrapperi�toptional_int64_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.optional_int64_wrapperi�toptional_uint32_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.optional_uint32_wrapperi�toptional_uint64_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.optional_uint64_wrapperiKi�toptional_float_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.optional_float_wrapperiLi�toptional_double_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.optional_double_wrapperiMi�toptional_string_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.optional_string_wrapperiNi�toptional_bytes_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.optional_bytes_wrapperiOi�trepeated_bool_wrappersFprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_bool_wrapperiPi�trepeated_int32_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_int32_wrapperiQi�trepeated_int64_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_int64_wrapperiRi�trepeated_uint32_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint32_wrapperiSi�trepeated_uint64_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint64_wrapperiTi�trepeated_float_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_float_wrapperiUi�trepeated_double_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_double_wrapperiVi�trepeated_string_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_string_wrapperiWi�trepeated_bytes_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_bytes_wrapperiXi�toptional_durationsBprotobuf_test_messages.proto3.TestAllTypesProto3.optional_durationiYi-toptional_timestampsCprotobuf_test_messages.proto3.TestAllTypesProto3.optional_timestampiZi.toptional_field_masksDprotobuf_test_messages.proto3.TestAllTypesProto3.optional_field_maski[i/toptional_structs@protobuf_test_messages.proto3.TestAllTypesProto3.optional_structi\i0toptional_anys=protobuf_test_messages.proto3.TestAllTypesProto3.optional_anyi]i1toptional_values?protobuf_test_messages.proto3.TestAllTypesProto3.optional_valuei^i2trepeated_durationsBprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_durationi_i7trepeated_timestampsCprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_timestampi`i8trepeated_fieldmasksCprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_fieldmaskiai9trepeated_structs@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_structibiDtrepeated_anys=protobuf_test_messages.proto3.TestAllTypesProto3.repeated_anyici;trepeated_values?protobuf_test_messages.proto3.TestAllTypesProto3.repeated_valueidi<t
fieldname1s;protobuf_test_messages.proto3.TestAllTypesProto3.fieldname1iei�tfield_name2s<protobuf_test_messages.proto3.TestAllTypesProto3.field_name2ifi�t_field_name3s=protobuf_test_messages.proto3.TestAllTypesProto3._field_name3igi�t
field__name4_s>protobuf_test_messages.proto3.TestAllTypesProto3.field__name4_ihi�tfield0name5s<protobuf_test_messages.proto3.TestAllTypesProto3.field0name5iii�t
field_0_name6s>protobuf_test_messages.proto3.TestAllTypesProto3.field_0_name6iji�t
fieldName7s;protobuf_test_messages.proto3.TestAllTypesProto3.fieldName7iki�t
FieldName8s;protobuf_test_messages.proto3.TestAllTypesProto3.FieldName8ili�tfield_Name9s<protobuf_test_messages.proto3.TestAllTypesProto3.field_Name9imi�tField_Name10s=protobuf_test_messages.proto3.TestAllTypesProto3.Field_Name10ini�tFIELD_NAME11s=protobuf_test_messages.proto3.TestAllTypesProto3.FIELD_NAME11i�tFIELD_name12s=protobuf_test_messages.proto3.TestAllTypesProto3.FIELD_name12i�t__field_name13s?protobuf_test_messages.proto3.TestAllTypesProto3.__field_name13i�t__Field_name14s?protobuf_test_messages.proto3.TestAllTypesProto3.__Field_name14i�t
field__name15s>protobuf_test_messages.proto3.TestAllTypesProto3.field__name15i�t
field__Name16s>protobuf_test_messages.proto3.TestAllTypesProto3.field__Name16i�tfield_name17__s?protobuf_test_messages.proto3.TestAllTypesProto3.field_name17__i�tField_name18__s?protobuf_test_messages.proto3.TestAllTypesProto3.Field_name18__i�toneof_fields<protobuf_test_messages.proto3.TestAllTypesProto3.oneof_fieldi
i�tForeignMessages,protobuf_test_messages.proto3.ForeignMessagetcs.protobuf_test_messages.proto3.ForeignMessage.ci�i�t
DESCRIPTORt
__module__s(google.protobuf.test_messages_proto3_pb2s8
(com.google.protobuf_test_messages.proto3H��Proto3(�tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt google_dot_protobuf_dot_any__pb2Rt%google_dot_protobuf_dot_duration__pb2R
t(google_dot_protobuf_dot_field__mask__pb2Rt#google_dot_protobuf_dot_struct__pb2Rt&google_dot_protobuf_dot_timestamp__pb2Rt%google_dot_protobuf_dot_wrappers__pb2tFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_FOREIGNENUMtRegisterEnumDescriptortEnumTypeWrapperRRR!R"t_TESTALLTYPESPROTO3_NESTEDENUMt
DescriptortFieldDescriptortFalset!_TESTALLTYPESPROTO3_NESTEDMESSAGEt
_ParseOptionstMessageOptionst&_TESTALLTYPESPROTO3_MAPINT32INT32ENTRYt&_TESTALLTYPESPROTO3_MAPINT64INT64ENTRYt(_TESTALLTYPESPROTO3_MAPUINT32UINT32ENTRYt(_TESTALLTYPESPROTO3_MAPUINT64UINT64ENTRYt(_TESTALLTYPESPROTO3_MAPSINT32SINT32ENTRYt(_TESTALLTYPESPROTO3_MAPSINT64SINT64ENTRYt*_TESTALLTYPESPROTO3_MAPFIXED32FIXED32ENTRYt*_TESTALLTYPESPROTO3_MAPFIXED64FIXED64ENTRYt,_TESTALLTYPESPROTO3_MAPSFIXED32SFIXED32ENTRYt,_TESTALLTYPESPROTO3_MAPSFIXED64SFIXED64ENTRYtfloatt&_TESTALLTYPESPROTO3_MAPINT32FLOATENTRYt'_TESTALLTYPESPROTO3_MAPINT32DOUBLEENTRYt$_TESTALLTYPESPROTO3_MAPBOOLBOOLENTRYtdecodet(_TESTALLTYPESPROTO3_MAPSTRINGSTRINGENTRYt'_TESTALLTYPESPROTO3_MAPSTRINGBYTESENTRYt/_TESTALLTYPESPROTO3_MAPSTRINGNESTEDMESSAGEENTRYt0_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNMESSAGEENTRYt,_TESTALLTYPESPROTO3_MAPSTRINGNESTEDENUMENTRYt-_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNENUMENTRYtFieldOptionstOneofDescriptort_TESTALLTYPESPROTO3t_FOREIGNMESSAGEtfields_by_nameR2R#R3t
_BOOLVALUEt_INT32VALUEt_INT64VALUEt_UINT32VALUEt_UINT64VALUEt_FLOATVALUEt_DOUBLEVALUEt_STRINGVALUEt_BYTESVALUEt	_DURATIONt
_TIMESTAMPt
_FIELDMASKt_STRUCTt_ANYt_VALUEtoneofs_by_nameR,tappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRRtRegisterMessageR+R=R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQR�tTruethas_optionstFileOptionst_options(((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto3_pb2.pyt<module>s%	-					
						
																																																																																																					$	$																					$	$																																																																												B																											





	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!(((PK��\W8�yy protobuf/descriptor_database.pyonu�[����
���hc@s[dZdZdefd��YZdefd��YZdefd��YZd�Zd	S(
s*Provides a container for DescriptorProtos.s"matthewtoia@google.com (Matt Toia)tErrorcBseZRS((t__name__t
__module__(((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyR$st,DescriptorDatabaseConflictingDefinitionErrorcBseZdZRS(sGRaised when a proto is added with the same name & different descriptor.(RRt__doc__(((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyR(stDescriptorDatabasecBs2eZdZd�Zd�Zd�Zd�ZRS(sEA container accepting FileDescriptorProtos and maps DescriptorProtos.cCsi|_i|_dS(N(t_file_desc_protos_by_filet_file_desc_protos_by_symbol(tself((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyt__init__/s	cs1�j}||jkr(�|j|<n&|j|�krNtd|��n�j}x:�jD]/}|jj�fd�t||�D��qaWx0�jD]%}�|jdj	||jf�<q�Wx0�j
D]%}�|jdj	||jf�<q�Wx0�jD]%}�|jdj	||jf�<qWdS(sMAdds the FileDescriptorProto and its types to this database.

    Args:
      file_desc_proto: The FileDescriptorProto to add.
    Raises:
      DescriptorDatabaseConflictingDefinitionError: if an attempt is made to
        add a proto with the same name but different definition than an
        exisiting proto in the database.
    s0%s already added, but with different descriptor.c3s|]}|�fVqdS(N((t.0tname(tfile_desc_proto(sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pys	<genexpr>Hst.N(RRRtpackagetmessage_typeRtupdatet_ExtractSymbolst	enum_typetjoint	extensiontservice(RRt
proto_nameRtmessagetenumRR((RsG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pytAdd3s 
			$##cCs|j|S(s�Finds the file descriptor proto by file name.

    Typically the file name is a relative path ending to a .proto file. The
    proto with the given name will have to have been added to this database
    using the Add method or else an error will be raised.

    Args:
      name: The file name to find.

    Returns:
      The file descriptor proto matching the name.

    Raises:
      KeyError if no file by the given name was added.
    (R(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pytFindFileByNameSscCsGy|j|SWn1tk
rB|jd�\}}}|j|SXdS(s�Finds the file descriptor proto containing the specified symbol.

    The symbol should be a fully qualified name including the file descriptor's
    package and any containing messages. Some examples:

    'some.package.name.Message'
    'some.package.name.Message.NestedEnum'
    'some.package.name.Message.some_field'

    The file descriptor proto containing the specified symbol must be added to
    this database using the Add method or else an error will be raised.

    Args:
      symbol: The fully qualified symbol name.

    Returns:
      The file descriptor proto containing the symbol.

    Raises:
      KeyError if no file contains the specified symbol.
    R
N(RtKeyErrort
rpartition(Rtsymbolt	top_levelt_((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pytFindFileContainingSymbolfs

(RRRR	RRR (((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyR,s
		 	ccs�|r|d|jn|j}|Vx0|jD]%}xt||�D]}|VqEWq/Wx(|jD]}dj||jf�VqbWdS(s�Pulls out all the symbols from a descriptor proto.

  Args:
    desc_proto: The proto to extract symbols from.
    package: The package containing the descriptor type.

  Yields:
    The fully qualified name found in the descriptor.
  R
N(Rtnested_typeRRR(t
desc_protoRtmessage_nameR!RR((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyR�s
 
N(Rt
__author__t	ExceptionRRtobjectRR(((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyt<module>s
\PK��\�ā&��protobuf/symbol_database.pycnu�[����
���hc@sadZddlmZddlmZdejfd��YZedej��Zd�ZdS(	sRA database of Python protocol buffer generated symbols.

SymbolDatabase is the MessageFactory for messages generated at compile time,
and makes it easy to create new instances of a registered type, given only the
type's protocol buffer symbol name.

Example usage:

  db = symbol_database.SymbolDatabase()

  # Register symbols of interest, from one or multiple files.
  db.RegisterFileDescriptor(my_proto_pb2.DESCRIPTOR)
  db.RegisterMessage(my_proto_pb2.MyMessage)
  db.RegisterEnumDescriptor(my_proto_pb2.MyEnum.DESCRIPTOR)

  # The database can be used as a MessageFactory, to generate types based on
  # their name:
  types = db.GetMessages(['my_proto.proto'])
  my_message_instance = types['MyMessage']()

  # The database's underlying descriptor pool can be queried, so it's not
  # necessary to know a type's filename to be able to generate it:
  filename = db.pool.FindFileContainingSymbol('MyMessage')
  my_message_instance = db.GetMessages([filename])['MyMessage']()

  # This functionality is also provided directly via a convenience method:
  my_message_instance = db.GetSymbol('MyMessage')()
i����(tdescriptor_pool(tmessage_factorytSymbolDatabasecBsMeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(s'A database of Python generated symbols.cCs'|j}||j|<|j|�|S(s�Registers the given message type in the local database.

    Calls to GetSymbol() and GetMessages() will return messages registered here.

    Args:
      message: a message.Message, to be registered.

    Returns:
      The provided message.
    (t
DESCRIPTORt_classestRegisterMessageDescriptor(tselftmessagetdesc((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytRegisterMessageDs	

cCs|jj|�dS(s�Registers the given message descriptor in the local database.

    Args:
      message_descriptor: a descriptor.MessageDescriptor.
    N(tpoolt
AddDescriptor(Rtmessage_descriptor((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pyRUscCs|jj|�|S(s�Registers the given enum descriptor in the local database.

    Args:
      enum_descriptor: a descriptor.EnumDescriptor.

    Returns:
      The provided descriptor.
    (R
tAddEnumDescriptor(Rtenum_descriptor((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytRegisterEnumDescriptor]s	cCs|jj|�dS(s�Registers the given service descriptor in the local database.

    Args:
      service_descriptor: a descriptor.ServiceDescriptor.

    Returns:
      The provided descriptor.
    N(R
tAddServiceDescriptor(Rtservice_descriptor((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytRegisterServiceDescriptoris	cCs|jj|�dS(s�Registers the given file descriptor in the local database.

    Args:
      file_descriptor: a descriptor.FileDescriptor.

    Returns:
      The provided descriptor.
    N(R
tAddFileDescriptor(Rtfile_descriptor((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytRegisterFileDescriptorts	cCs|j|jj|�S(sxTries to find a symbol in the local database.

    Currently, this method only returns message.Message instances, however, if
    may be extended in future to support other symbol types.

    Args:
      symbol: A str, a protocol buffer symbol.

    Returns:
      A Python class corresponding to the symbol.

    Raises:
      KeyError: if the symbol could not be found.
    (RR
tFindMessageTypeByName(Rtsymbol((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pyt	GetSymbolscs��fd��i}x}|D]u}|jj|�}xZ|jj�D]I}x@�|�D]2}y|j|||j<WqWtk
r�qWXqWWqDWqW|S(sGets all registered messages from a specified file.

    Only messages already created and registered will be returned; (this is the
    case for imported _pb2 modules)
    But unlike MessageFactory, this version also returns already defined nested
    messages, but does not register any message extensions.

    Args:
      files: The file names to extract messages from.

    Returns:
      A dictionary mapping proto names to the message classes.

    Raises:
      KeyError: if a file could not be found.
    c3s9|Vx-|jD]"}x�|�D]}|Vq"WqWdS(sCWalk a message Descriptor and recursively yields all message names.N(tnested_types(Rtmsg_desctnested_desc(t_GetAllMessages(sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pyR�s(R
tFindFileByNametmessage_types_by_nametvaluesRt	full_nametKeyError(Rtfilestresultt	file_namet	file_descRR((RsC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytGetMessages�s

(
t__name__t
__module__t__doc__R	RRRRRR&(((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pyRAs						R
cCstS(s#Returns the default SymbolDatabase.(t_DEFAULT(((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytDefault�sN(R)tgoogle.protobufRRtMessageFactoryRR+R*(((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pyt<module>:s
wPK��\zQ��/�/�$protobuf/test_messages_proto3_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/test_messages_proto3.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/test_messages_proto3.proto',
  package='protobuf_test_messages.proto3',
  syntax='proto3',
  serialized_pb=_b('\n*google/protobuf/test_messages_proto3.proto\x12\x1dprotobuf_test_messages.proto3\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb4;\n\x12TestAllTypesProto3\x12\x16\n\x0eoptional_int32\x18\x01 \x01(\x05\x12\x16\n\x0eoptional_int64\x18\x02 \x01(\x03\x12\x17\n\x0foptional_uint32\x18\x03 \x01(\r\x12\x17\n\x0foptional_uint64\x18\x04 \x01(\x04\x12\x17\n\x0foptional_sint32\x18\x05 \x01(\x11\x12\x17\n\x0foptional_sint64\x18\x06 \x01(\x12\x12\x18\n\x10optional_fixed32\x18\x07 \x01(\x07\x12\x18\n\x10optional_fixed64\x18\x08 \x01(\x06\x12\x19\n\x11optional_sfixed32\x18\t \x01(\x0f\x12\x19\n\x11optional_sfixed64\x18\n \x01(\x10\x12\x16\n\x0eoptional_float\x18\x0b \x01(\x02\x12\x17\n\x0foptional_double\x18\x0c \x01(\x01\x12\x15\n\roptional_bool\x18\r \x01(\x08\x12\x17\n\x0foptional_string\x18\x0e \x01(\t\x12\x16\n\x0eoptional_bytes\x18\x0f \x01(\x0c\x12`\n\x17optional_nested_message\x18\x12 \x01(\x0b\x32?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage\x12O\n\x18optional_foreign_message\x18\x13 \x01(\x0b\x32-.protobuf_test_messages.proto3.ForeignMessage\x12Z\n\x14optional_nested_enum\x18\x15 \x01(\x0e\x32<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum\x12I\n\x15optional_foreign_enum\x18\x16 \x01(\x0e\x32*.protobuf_test_messages.proto3.ForeignEnum\x12!\n\x15optional_string_piece\x18\x18 \x01(\tB\x02\x08\x02\x12\x19\n\roptional_cord\x18\x19 \x01(\tB\x02\x08\x01\x12L\n\x11recursive_message\x18\x1b \x01(\x0b\x32\x31.protobuf_test_messages.proto3.TestAllTypesProto3\x12\x16\n\x0erepeated_int32\x18\x1f \x03(\x05\x12\x16\n\x0erepeated_int64\x18  \x03(\x03\x12\x17\n\x0frepeated_uint32\x18! \x03(\r\x12\x17\n\x0frepeated_uint64\x18\" \x03(\x04\x12\x17\n\x0frepeated_sint32\x18# \x03(\x11\x12\x17\n\x0frepeated_sint64\x18$ \x03(\x12\x12\x18\n\x10repeated_fixed32\x18% \x03(\x07\x12\x18\n\x10repeated_fixed64\x18& \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\' \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18( \x03(\x10\x12\x16\n\x0erepeated_float\x18) \x03(\x02\x12\x17\n\x0frepeated_double\x18* \x03(\x01\x12\x15\n\rrepeated_bool\x18+ \x03(\x08\x12\x17\n\x0frepeated_string\x18, \x03(\t\x12\x16\n\x0erepeated_bytes\x18- \x03(\x0c\x12`\n\x17repeated_nested_message\x18\x30 \x03(\x0b\x32?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage\x12O\n\x18repeated_foreign_message\x18\x31 \x03(\x0b\x32-.protobuf_test_messages.proto3.ForeignMessage\x12Z\n\x14repeated_nested_enum\x18\x33 \x03(\x0e\x32<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum\x12I\n\x15repeated_foreign_enum\x18\x34 \x03(\x0e\x32*.protobuf_test_messages.proto3.ForeignEnum\x12!\n\x15repeated_string_piece\x18\x36 \x03(\tB\x02\x08\x02\x12\x19\n\rrepeated_cord\x18\x37 \x03(\tB\x02\x08\x01\x12]\n\x0fmap_int32_int32\x18\x38 \x03(\x0b\x32\x44.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry\x12]\n\x0fmap_int64_int64\x18\x39 \x03(\x0b\x32\x44.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry\x12\x61\n\x11map_uint32_uint32\x18: \x03(\x0b\x32\x46.protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry\x12\x61\n\x11map_uint64_uint64\x18; \x03(\x0b\x32\x46.protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry\x12\x61\n\x11map_sint32_sint32\x18< \x03(\x0b\x32\x46.protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry\x12\x61\n\x11map_sint64_sint64\x18= \x03(\x0b\x32\x46.protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry\x12\x65\n\x13map_fixed32_fixed32\x18> \x03(\x0b\x32H.protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry\x12\x65\n\x13map_fixed64_fixed64\x18? \x03(\x0b\x32H.protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry\x12i\n\x15map_sfixed32_sfixed32\x18@ \x03(\x0b\x32J.protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry\x12i\n\x15map_sfixed64_sfixed64\x18\x41 \x03(\x0b\x32J.protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry\x12]\n\x0fmap_int32_float\x18\x42 \x03(\x0b\x32\x44.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry\x12_\n\x10map_int32_double\x18\x43 \x03(\x0b\x32\x45.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry\x12Y\n\rmap_bool_bool\x18\x44 \x03(\x0b\x32\x42.protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry\x12\x61\n\x11map_string_string\x18\x45 \x03(\x0b\x32\x46.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry\x12_\n\x10map_string_bytes\x18\x46 \x03(\x0b\x32\x45.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry\x12p\n\x19map_string_nested_message\x18G \x03(\x0b\x32M.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry\x12r\n\x1amap_string_foreign_message\x18H \x03(\x0b\x32N.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry\x12j\n\x16map_string_nested_enum\x18I \x03(\x0b\x32J.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry\x12l\n\x17map_string_foreign_enum\x18J \x03(\x0b\x32K.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry\x12\x16\n\x0coneof_uint32\x18o \x01(\rH\x00\x12_\n\x14oneof_nested_message\x18p \x01(\x0b\x32?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessageH\x00\x12\x16\n\x0coneof_string\x18q \x01(\tH\x00\x12\x15\n\x0boneof_bytes\x18r \x01(\x0cH\x00\x12\x14\n\noneof_bool\x18s \x01(\x08H\x00\x12\x16\n\x0coneof_uint64\x18t \x01(\x04H\x00\x12\x15\n\x0boneof_float\x18u \x01(\x02H\x00\x12\x16\n\x0coneof_double\x18v \x01(\x01H\x00\x12R\n\noneof_enum\x18w \x01(\x0e\x32<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnumH\x00\x12:\n\x15optional_bool_wrapper\x18\xc9\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\x16optional_int32_wrapper\x18\xca\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12<\n\x16optional_int64_wrapper\x18\xcb\x01 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12>\n\x17optional_uint32_wrapper\x18\xcc\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12>\n\x17optional_uint64_wrapper\x18\xcd\x01 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12<\n\x16optional_float_wrapper\x18\xce\x01 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12>\n\x17optional_double_wrapper\x18\xcf\x01 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12>\n\x17optional_string_wrapper\x18\xd0\x01 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12<\n\x16optional_bytes_wrapper\x18\xd1\x01 \x01(\x0b\x32\x1b.google.protobuf.BytesValue\x12:\n\x15repeated_bool_wrapper\x18\xd3\x01 \x03(\x0b\x32\x1a.google.protobuf.BoolValue\x12<\n\x16repeated_int32_wrapper\x18\xd4\x01 \x03(\x0b\x32\x1b.google.protobuf.Int32Value\x12<\n\x16repeated_int64_wrapper\x18\xd5\x01 \x03(\x0b\x32\x1b.google.protobuf.Int64Value\x12>\n\x17repeated_uint32_wrapper\x18\xd6\x01 \x03(\x0b\x32\x1c.google.protobuf.UInt32Value\x12>\n\x17repeated_uint64_wrapper\x18\xd7\x01 \x03(\x0b\x32\x1c.google.protobuf.UInt64Value\x12<\n\x16repeated_float_wrapper\x18\xd8\x01 \x03(\x0b\x32\x1b.google.protobuf.FloatValue\x12>\n\x17repeated_double_wrapper\x18\xd9\x01 \x03(\x0b\x32\x1c.google.protobuf.DoubleValue\x12>\n\x17repeated_string_wrapper\x18\xda\x01 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12<\n\x16repeated_bytes_wrapper\x18\xdb\x01 \x03(\x0b\x32\x1b.google.protobuf.BytesValue\x12\x35\n\x11optional_duration\x18\xad\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x12optional_timestamp\x18\xae\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x38\n\x13optional_field_mask\x18\xaf\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x31\n\x0foptional_struct\x18\xb0\x02 \x01(\x0b\x32\x17.google.protobuf.Struct\x12+\n\x0coptional_any\x18\xb1\x02 \x01(\x0b\x32\x14.google.protobuf.Any\x12/\n\x0eoptional_value\x18\xb2\x02 \x01(\x0b\x32\x16.google.protobuf.Value\x12\x35\n\x11repeated_duration\x18\xb7\x02 \x03(\x0b\x32\x19.google.protobuf.Duration\x12\x37\n\x12repeated_timestamp\x18\xb8\x02 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x12repeated_fieldmask\x18\xb9\x02 \x03(\x0b\x32\x1a.google.protobuf.FieldMask\x12\x31\n\x0frepeated_struct\x18\xc4\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\x12+\n\x0crepeated_any\x18\xbb\x02 \x03(\x0b\x32\x14.google.protobuf.Any\x12/\n\x0erepeated_value\x18\xbc\x02 \x03(\x0b\x32\x16.google.protobuf.Value\x12\x13\n\nfieldname1\x18\x91\x03 \x01(\x05\x12\x14\n\x0b\x66ield_name2\x18\x92\x03 \x01(\x05\x12\x15\n\x0c_field_name3\x18\x93\x03 \x01(\x05\x12\x16\n\rfield__name4_\x18\x94\x03 \x01(\x05\x12\x14\n\x0b\x66ield0name5\x18\x95\x03 \x01(\x05\x12\x16\n\rfield_0_name6\x18\x96\x03 \x01(\x05\x12\x13\n\nfieldName7\x18\x97\x03 \x01(\x05\x12\x13\n\nFieldName8\x18\x98\x03 \x01(\x05\x12\x14\n\x0b\x66ield_Name9\x18\x99\x03 \x01(\x05\x12\x15\n\x0c\x46ield_Name10\x18\x9a\x03 \x01(\x05\x12\x15\n\x0c\x46IELD_NAME11\x18\x9b\x03 \x01(\x05\x12\x15\n\x0c\x46IELD_name12\x18\x9c\x03 \x01(\x05\x12\x17\n\x0e__field_name13\x18\x9d\x03 \x01(\x05\x12\x17\n\x0e__Field_name14\x18\x9e\x03 \x01(\x05\x12\x16\n\rfield__name15\x18\x9f\x03 \x01(\x05\x12\x16\n\rfield__Name16\x18\xa0\x03 \x01(\x05\x12\x17\n\x0e\x66ield_name17__\x18\xa1\x03 \x01(\x05\x12\x17\n\x0e\x46ield_name18__\x18\xa2\x03 \x01(\x05\x1a\x62\n\rNestedMessage\x12\t\n\x01\x61\x18\x01 \x01(\x05\x12\x46\n\x0b\x63orecursive\x18\x02 \x01(\x0b\x32\x31.protobuf_test_messages.proto3.TestAllTypesProto3\x1a\x34\n\x12MapInt32Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12MapInt64Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapUint32Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapUint64Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x36\n\x14MapSint32Sint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x11\x12\r\n\x05value\x18\x02 \x01(\x11:\x02\x38\x01\x1a\x36\n\x14MapSint64Sint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x12\x12\r\n\x05value\x18\x02 \x01(\x12:\x02\x38\x01\x1a\x38\n\x16MapFixed32Fixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x07\x12\r\n\x05value\x18\x02 \x01(\x07:\x02\x38\x01\x1a\x38\n\x16MapFixed64Fixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x06\x12\r\n\x05value\x18\x02 \x01(\x06:\x02\x38\x01\x1a:\n\x18MapSfixed32Sfixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x0f\x12\r\n\x05value\x18\x02 \x01(\x0f:\x02\x38\x01\x1a:\n\x18MapSfixed64Sfixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x10\x12\r\n\x05value\x18\x02 \x01(\x10:\x02\x38\x01\x1a\x34\n\x12MapInt32FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x35\n\x13MapInt32DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1a\x32\n\x10MapBoolBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapStringStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MapStringBytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a~\n\x1bMapStringNestedMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12N\n\x05value\x18\x02 \x01(\x0b\x32?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage:\x02\x38\x01\x1am\n\x1cMapStringForeignMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12<\n\x05value\x18\x02 \x01(\x0b\x32-.protobuf_test_messages.proto3.ForeignMessage:\x02\x38\x01\x1ax\n\x18MapStringNestedEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12K\n\x05value\x18\x02 \x01(\x0e\x32<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum:\x02\x38\x01\x1ag\n\x19MapStringForeignEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0e\x32*.protobuf_test_messages.proto3.ForeignEnum:\x02\x38\x01\"9\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x00\x12\x07\n\x03\x42\x41R\x10\x01\x12\x07\n\x03\x42\x41Z\x10\x02\x12\x10\n\x03NEG\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x42\r\n\x0boneof_fieldJ\x06\x08\xf5\x03\x10\xff\x03\"\x1b\n\x0e\x46oreignMessage\x12\t\n\x01\x63\x18\x01 \x01(\x05*@\n\x0b\x46oreignEnum\x12\x0f\n\x0b\x46OREIGN_FOO\x10\x00\x12\x0f\n\x0b\x46OREIGN_BAR\x10\x01\x12\x0f\n\x0b\x46OREIGN_BAZ\x10\x02\x42\x38\n(com.google.protobuf_test_messages.proto3H\x01\xf8\x01\x01\xa2\x02\x06Proto3b\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,])

_FOREIGNENUM = _descriptor.EnumDescriptor(
  name='ForeignEnum',
  full_name='protobuf_test_messages.proto3.ForeignEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_FOO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_BAR', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_BAZ', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=7901,
  serialized_end=7965,
)
_sym_db.RegisterEnumDescriptor(_FOREIGNENUM)

ForeignEnum = enum_type_wrapper.EnumTypeWrapper(_FOREIGNENUM)
FOREIGN_FOO = 0
FOREIGN_BAR = 1
FOREIGN_BAZ = 2


_TESTALLTYPESPROTO3_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAZ', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NEG', index=3, number=-1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=7790,
  serialized_end=7847,
)
_sym_db.RegisterEnumDescriptor(_TESTALLTYPESPROTO3_NESTEDENUM)


_TESTALLTYPESPROTO3_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.a', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='corecursive', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.corecursive', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6384,
  serialized_end=6482,
)

_TESTALLTYPESPROTO3_MAPINT32INT32ENTRY = _descriptor.Descriptor(
  name='MapInt32Int32Entry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6484,
  serialized_end=6536,
)

_TESTALLTYPESPROTO3_MAPINT64INT64ENTRY = _descriptor.Descriptor(
  name='MapInt64Int64Entry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry.key', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry.value', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6538,
  serialized_end=6590,
)

_TESTALLTYPESPROTO3_MAPUINT32UINT32ENTRY = _descriptor.Descriptor(
  name='MapUint32Uint32Entry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry.key', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry.value', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6592,
  serialized_end=6646,
)

_TESTALLTYPESPROTO3_MAPUINT64UINT64ENTRY = _descriptor.Descriptor(
  name='MapUint64Uint64Entry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry.key', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry.value', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6648,
  serialized_end=6702,
)

_TESTALLTYPESPROTO3_MAPSINT32SINT32ENTRY = _descriptor.Descriptor(
  name='MapSint32Sint32Entry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry.key', index=0,
      number=1, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry.value', index=1,
      number=2, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6704,
  serialized_end=6758,
)

_TESTALLTYPESPROTO3_MAPSINT64SINT64ENTRY = _descriptor.Descriptor(
  name='MapSint64Sint64Entry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry.key', index=0,
      number=1, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry.value', index=1,
      number=2, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6760,
  serialized_end=6814,
)

_TESTALLTYPESPROTO3_MAPFIXED32FIXED32ENTRY = _descriptor.Descriptor(
  name='MapFixed32Fixed32Entry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry.key', index=0,
      number=1, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry.value', index=1,
      number=2, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6816,
  serialized_end=6872,
)

_TESTALLTYPESPROTO3_MAPFIXED64FIXED64ENTRY = _descriptor.Descriptor(
  name='MapFixed64Fixed64Entry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry.key', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry.value', index=1,
      number=2, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6874,
  serialized_end=6930,
)

_TESTALLTYPESPROTO3_MAPSFIXED32SFIXED32ENTRY = _descriptor.Descriptor(
  name='MapSfixed32Sfixed32Entry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry.key', index=0,
      number=1, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry.value', index=1,
      number=2, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6932,
  serialized_end=6990,
)

_TESTALLTYPESPROTO3_MAPSFIXED64SFIXED64ENTRY = _descriptor.Descriptor(
  name='MapSfixed64Sfixed64Entry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry.key', index=0,
      number=1, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry.value', index=1,
      number=2, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6992,
  serialized_end=7050,
)

_TESTALLTYPESPROTO3_MAPINT32FLOATENTRY = _descriptor.Descriptor(
  name='MapInt32FloatEntry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry.value', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7052,
  serialized_end=7104,
)

_TESTALLTYPESPROTO3_MAPINT32DOUBLEENTRY = _descriptor.Descriptor(
  name='MapInt32DoubleEntry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry.value', index=1,
      number=2, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7106,
  serialized_end=7159,
)

_TESTALLTYPESPROTO3_MAPBOOLBOOLENTRY = _descriptor.Descriptor(
  name='MapBoolBoolEntry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry.key', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry.value', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7161,
  serialized_end=7211,
)

_TESTALLTYPESPROTO3_MAPSTRINGSTRINGENTRY = _descriptor.Descriptor(
  name='MapStringStringEntry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry.value', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7213,
  serialized_end=7267,
)

_TESTALLTYPESPROTO3_MAPSTRINGBYTESENTRY = _descriptor.Descriptor(
  name='MapStringBytesEntry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry.value', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7269,
  serialized_end=7322,
)

_TESTALLTYPESPROTO3_MAPSTRINGNESTEDMESSAGEENTRY = _descriptor.Descriptor(
  name='MapStringNestedMessageEntry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7324,
  serialized_end=7450,
)

_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNMESSAGEENTRY = _descriptor.Descriptor(
  name='MapStringForeignMessageEntry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7452,
  serialized_end=7561,
)

_TESTALLTYPESPROTO3_MAPSTRINGNESTEDENUMENTRY = _descriptor.Descriptor(
  name='MapStringNestedEnumEntry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7563,
  serialized_end=7683,
)

_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNENUMENTRY = _descriptor.Descriptor(
  name='MapStringForeignEnumEntry',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7685,
  serialized_end=7788,
)

_TESTALLTYPESPROTO3 = _descriptor.Descriptor(
  name='TestAllTypesProto3',
  full_name='protobuf_test_messages.proto3.TestAllTypesProto3',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_int32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_int32', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_int64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_int64', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint32', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint64', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sint32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_sint32', index=4,
      number=5, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sint64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_sint64', index=5,
      number=6, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_fixed32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_fixed32', index=6,
      number=7, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_fixed64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_fixed64', index=7,
      number=8, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sfixed32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_sfixed32', index=8,
      number=9, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sfixed64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_sfixed64', index=9,
      number=10, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_float', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_float', index=10,
      number=11, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_double', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_double', index=11,
      number=12, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bool', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_bool', index=12,
      number=13, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_string', index=13,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bytes', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_bytes', index=14,
      number=15, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_message', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_message', index=15,
      number=18, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_foreign_message', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_message', index=16,
      number=19, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_enum', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_enum', index=17,
      number=21, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_foreign_enum', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_enum', index=18,
      number=22, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string_piece', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_string_piece', index=19,
      number=24, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_cord', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_cord', index=20,
      number=25, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='recursive_message', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.recursive_message', index=21,
      number=27, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int32', index=22,
      number=31, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int64', index=23,
      number=32, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint32', index=24,
      number=33, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint64', index=25,
      number=34, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_sint32', index=26,
      number=35, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_sint64', index=27,
      number=36, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_fixed32', index=28,
      number=37, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_fixed64', index=29,
      number=38, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_sfixed32', index=30,
      number=39, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_sfixed64', index=31,
      number=40, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_float', index=32,
      number=41, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_double', index=33,
      number=42, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bool', index=34,
      number=43, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_string', index=35,
      number=44, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bytes', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bytes', index=36,
      number=45, type=12, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_message', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_message', index=37,
      number=48, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_foreign_message', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_message', index=38,
      number=49, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_enum', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_enum', index=39,
      number=51, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_foreign_enum', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_enum', index=40,
      number=52, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string_piece', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_string_piece', index=41,
      number=54, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_cord', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_cord', index=42,
      number=55, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_int32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_int32', index=43,
      number=56, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int64_int64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_int64_int64', index=44,
      number=57, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_uint32_uint32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_uint32_uint32', index=45,
      number=58, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_uint64_uint64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_uint64_uint64', index=46,
      number=59, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sint32_sint32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_sint32_sint32', index=47,
      number=60, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sint64_sint64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_sint64_sint64', index=48,
      number=61, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_fixed32_fixed32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_fixed32_fixed32', index=49,
      number=62, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_fixed64_fixed64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_fixed64_fixed64', index=50,
      number=63, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sfixed32_sfixed32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed32_sfixed32', index=51,
      number=64, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sfixed64_sfixed64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed64_sfixed64', index=52,
      number=65, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_float', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_float', index=53,
      number=66, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_double', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_double', index=54,
      number=67, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_bool_bool', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_bool_bool', index=55,
      number=68, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_string', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_string_string', index=56,
      number=69, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_bytes', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_string_bytes', index=57,
      number=70, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_nested_message', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_message', index=58,
      number=71, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_foreign_message', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_message', index=59,
      number=72, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_nested_enum', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_enum', index=60,
      number=73, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_foreign_enum', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_enum', index=61,
      number=74, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_uint32', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.oneof_uint32', index=62,
      number=111, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_nested_message', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.oneof_nested_message', index=63,
      number=112, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_string', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.oneof_string', index=64,
      number=113, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_bytes', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.oneof_bytes', index=65,
      number=114, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_bool', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.oneof_bool', index=66,
      number=115, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_uint64', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.oneof_uint64', index=67,
      number=116, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_float', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.oneof_float', index=68,
      number=117, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_double', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.oneof_double', index=69,
      number=118, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_enum', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.oneof_enum', index=70,
      number=119, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bool_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_bool_wrapper', index=71,
      number=201, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_int32_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_int32_wrapper', index=72,
      number=202, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_int64_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_int64_wrapper', index=73,
      number=203, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint32_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint32_wrapper', index=74,
      number=204, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint64_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint64_wrapper', index=75,
      number=205, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_float_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_float_wrapper', index=76,
      number=206, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_double_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_double_wrapper', index=77,
      number=207, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_string_wrapper', index=78,
      number=208, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bytes_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_bytes_wrapper', index=79,
      number=209, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bool_wrapper', index=80,
      number=211, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int32_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int32_wrapper', index=81,
      number=212, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int64_wrapper', index=82,
      number=213, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint32_wrapper', index=83,
      number=214, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint64_wrapper', index=84,
      number=215, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_float_wrapper', index=85,
      number=216, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_double_wrapper', index=86,
      number=217, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_string_wrapper', index=87,
      number=218, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bytes_wrapper', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bytes_wrapper', index=88,
      number=219, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_duration', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_duration', index=89,
      number=301, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_timestamp', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_timestamp', index=90,
      number=302, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_field_mask', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_field_mask', index=91,
      number=303, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_struct', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_struct', index=92,
      number=304, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_any', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_any', index=93,
      number=305, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.optional_value', index=94,
      number=306, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_duration', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_duration', index=95,
      number=311, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_timestamp', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_timestamp', index=96,
      number=312, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fieldmask', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_fieldmask', index=97,
      number=313, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_struct', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_struct', index=98,
      number=324, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_any', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_any', index=99,
      number=315, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_value', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.repeated_value', index=100,
      number=316, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='fieldname1', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.fieldname1', index=101,
      number=401, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field_name2', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.field_name2', index=102,
      number=402, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='_field_name3', full_name='protobuf_test_messages.proto3.TestAllTypesProto3._field_name3', index=103,
      number=403, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field__name4_', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.field__name4_', index=104,
      number=404, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field0name5', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.field0name5', index=105,
      number=405, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field_0_name6', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.field_0_name6', index=106,
      number=406, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='fieldName7', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.fieldName7', index=107,
      number=407, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='FieldName8', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.FieldName8', index=108,
      number=408, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field_Name9', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.field_Name9', index=109,
      number=409, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='Field_Name10', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.Field_Name10', index=110,
      number=410, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='FIELD_NAME11', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.FIELD_NAME11', index=111,
      number=411, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='FIELD_name12', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.FIELD_name12', index=112,
      number=412, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='__field_name13', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.__field_name13', index=113,
      number=413, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='__Field_name14', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.__Field_name14', index=114,
      number=414, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field__name15', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.field__name15', index=115,
      number=415, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field__Name16', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.field__Name16', index=116,
      number=416, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field_name17__', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.field_name17__', index=117,
      number=417, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='Field_name18__', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.Field_name18__', index=118,
      number=418, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTALLTYPESPROTO3_NESTEDMESSAGE, _TESTALLTYPESPROTO3_MAPINT32INT32ENTRY, _TESTALLTYPESPROTO3_MAPINT64INT64ENTRY, _TESTALLTYPESPROTO3_MAPUINT32UINT32ENTRY, _TESTALLTYPESPROTO3_MAPUINT64UINT64ENTRY, _TESTALLTYPESPROTO3_MAPSINT32SINT32ENTRY, _TESTALLTYPESPROTO3_MAPSINT64SINT64ENTRY, _TESTALLTYPESPROTO3_MAPFIXED32FIXED32ENTRY, _TESTALLTYPESPROTO3_MAPFIXED64FIXED64ENTRY, _TESTALLTYPESPROTO3_MAPSFIXED32SFIXED32ENTRY, _TESTALLTYPESPROTO3_MAPSFIXED64SFIXED64ENTRY, _TESTALLTYPESPROTO3_MAPINT32FLOATENTRY, _TESTALLTYPESPROTO3_MAPINT32DOUBLEENTRY, _TESTALLTYPESPROTO3_MAPBOOLBOOLENTRY, _TESTALLTYPESPROTO3_MAPSTRINGSTRINGENTRY, _TESTALLTYPESPROTO3_MAPSTRINGBYTESENTRY, _TESTALLTYPESPROTO3_MAPSTRINGNESTEDMESSAGEENTRY, _TESTALLTYPESPROTO3_MAPSTRINGFOREIGNMESSAGEENTRY, _TESTALLTYPESPROTO3_MAPSTRINGNESTEDENUMENTRY, _TESTALLTYPESPROTO3_MAPSTRINGFOREIGNENUMENTRY, ],
  enum_types=[
    _TESTALLTYPESPROTO3_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='oneof_field', full_name='protobuf_test_messages.proto3.TestAllTypesProto3.oneof_field',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=266,
  serialized_end=7870,
)


_FOREIGNMESSAGE = _descriptor.Descriptor(
  name='ForeignMessage',
  full_name='protobuf_test_messages.proto3.ForeignMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='c', full_name='protobuf_test_messages.proto3.ForeignMessage.c', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7872,
  serialized_end=7899,
)

_TESTALLTYPESPROTO3_NESTEDMESSAGE.fields_by_name['corecursive'].message_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_NESTEDMESSAGE.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPINT32INT32ENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPINT64INT64ENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPUINT32UINT32ENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPUINT64UINT64ENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPSINT32SINT32ENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPSINT64SINT64ENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPFIXED32FIXED32ENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPFIXED64FIXED64ENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPSFIXED32SFIXED32ENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPSFIXED64SFIXED64ENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPINT32FLOATENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPINT32DOUBLEENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPBOOLBOOLENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPSTRINGSTRINGENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPSTRINGBYTESENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPSTRINGNESTEDMESSAGEENTRY.fields_by_name['value'].message_type = _TESTALLTYPESPROTO3_NESTEDMESSAGE
_TESTALLTYPESPROTO3_MAPSTRINGNESTEDMESSAGEENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNMESSAGEENTRY.fields_by_name['value'].message_type = _FOREIGNMESSAGE
_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNMESSAGEENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPSTRINGNESTEDENUMENTRY.fields_by_name['value'].enum_type = _TESTALLTYPESPROTO3_NESTEDENUM
_TESTALLTYPESPROTO3_MAPSTRINGNESTEDENUMENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNENUMENTRY.fields_by_name['value'].enum_type = _FOREIGNENUM
_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNENUMENTRY.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3.fields_by_name['optional_nested_message'].message_type = _TESTALLTYPESPROTO3_NESTEDMESSAGE
_TESTALLTYPESPROTO3.fields_by_name['optional_foreign_message'].message_type = _FOREIGNMESSAGE
_TESTALLTYPESPROTO3.fields_by_name['optional_nested_enum'].enum_type = _TESTALLTYPESPROTO3_NESTEDENUM
_TESTALLTYPESPROTO3.fields_by_name['optional_foreign_enum'].enum_type = _FOREIGNENUM
_TESTALLTYPESPROTO3.fields_by_name['recursive_message'].message_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3.fields_by_name['repeated_nested_message'].message_type = _TESTALLTYPESPROTO3_NESTEDMESSAGE
_TESTALLTYPESPROTO3.fields_by_name['repeated_foreign_message'].message_type = _FOREIGNMESSAGE
_TESTALLTYPESPROTO3.fields_by_name['repeated_nested_enum'].enum_type = _TESTALLTYPESPROTO3_NESTEDENUM
_TESTALLTYPESPROTO3.fields_by_name['repeated_foreign_enum'].enum_type = _FOREIGNENUM
_TESTALLTYPESPROTO3.fields_by_name['map_int32_int32'].message_type = _TESTALLTYPESPROTO3_MAPINT32INT32ENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_int64_int64'].message_type = _TESTALLTYPESPROTO3_MAPINT64INT64ENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_uint32_uint32'].message_type = _TESTALLTYPESPROTO3_MAPUINT32UINT32ENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_uint64_uint64'].message_type = _TESTALLTYPESPROTO3_MAPUINT64UINT64ENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_sint32_sint32'].message_type = _TESTALLTYPESPROTO3_MAPSINT32SINT32ENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_sint64_sint64'].message_type = _TESTALLTYPESPROTO3_MAPSINT64SINT64ENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_fixed32_fixed32'].message_type = _TESTALLTYPESPROTO3_MAPFIXED32FIXED32ENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_fixed64_fixed64'].message_type = _TESTALLTYPESPROTO3_MAPFIXED64FIXED64ENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_sfixed32_sfixed32'].message_type = _TESTALLTYPESPROTO3_MAPSFIXED32SFIXED32ENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_sfixed64_sfixed64'].message_type = _TESTALLTYPESPROTO3_MAPSFIXED64SFIXED64ENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_int32_float'].message_type = _TESTALLTYPESPROTO3_MAPINT32FLOATENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_int32_double'].message_type = _TESTALLTYPESPROTO3_MAPINT32DOUBLEENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_bool_bool'].message_type = _TESTALLTYPESPROTO3_MAPBOOLBOOLENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_string_string'].message_type = _TESTALLTYPESPROTO3_MAPSTRINGSTRINGENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_string_bytes'].message_type = _TESTALLTYPESPROTO3_MAPSTRINGBYTESENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_string_nested_message'].message_type = _TESTALLTYPESPROTO3_MAPSTRINGNESTEDMESSAGEENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_string_foreign_message'].message_type = _TESTALLTYPESPROTO3_MAPSTRINGFOREIGNMESSAGEENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_string_nested_enum'].message_type = _TESTALLTYPESPROTO3_MAPSTRINGNESTEDENUMENTRY
_TESTALLTYPESPROTO3.fields_by_name['map_string_foreign_enum'].message_type = _TESTALLTYPESPROTO3_MAPSTRINGFOREIGNENUMENTRY
_TESTALLTYPESPROTO3.fields_by_name['oneof_nested_message'].message_type = _TESTALLTYPESPROTO3_NESTEDMESSAGE
_TESTALLTYPESPROTO3.fields_by_name['oneof_enum'].enum_type = _TESTALLTYPESPROTO3_NESTEDENUM
_TESTALLTYPESPROTO3.fields_by_name['optional_bool_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
_TESTALLTYPESPROTO3.fields_by_name['optional_int32_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE
_TESTALLTYPESPROTO3.fields_by_name['optional_int64_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_TESTALLTYPESPROTO3.fields_by_name['optional_uint32_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._UINT32VALUE
_TESTALLTYPESPROTO3.fields_by_name['optional_uint64_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._UINT64VALUE
_TESTALLTYPESPROTO3.fields_by_name['optional_float_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._FLOATVALUE
_TESTALLTYPESPROTO3.fields_by_name['optional_double_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE
_TESTALLTYPESPROTO3.fields_by_name['optional_string_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_TESTALLTYPESPROTO3.fields_by_name['optional_bytes_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE
_TESTALLTYPESPROTO3.fields_by_name['repeated_bool_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
_TESTALLTYPESPROTO3.fields_by_name['repeated_int32_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE
_TESTALLTYPESPROTO3.fields_by_name['repeated_int64_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_TESTALLTYPESPROTO3.fields_by_name['repeated_uint32_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._UINT32VALUE
_TESTALLTYPESPROTO3.fields_by_name['repeated_uint64_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._UINT64VALUE
_TESTALLTYPESPROTO3.fields_by_name['repeated_float_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._FLOATVALUE
_TESTALLTYPESPROTO3.fields_by_name['repeated_double_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE
_TESTALLTYPESPROTO3.fields_by_name['repeated_string_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_TESTALLTYPESPROTO3.fields_by_name['repeated_bytes_wrapper'].message_type = google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE
_TESTALLTYPESPROTO3.fields_by_name['optional_duration'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
_TESTALLTYPESPROTO3.fields_by_name['optional_timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_TESTALLTYPESPROTO3.fields_by_name['optional_field_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK
_TESTALLTYPESPROTO3.fields_by_name['optional_struct'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
_TESTALLTYPESPROTO3.fields_by_name['optional_any'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_TESTALLTYPESPROTO3.fields_by_name['optional_value'].message_type = google_dot_protobuf_dot_struct__pb2._VALUE
_TESTALLTYPESPROTO3.fields_by_name['repeated_duration'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
_TESTALLTYPESPROTO3.fields_by_name['repeated_timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_TESTALLTYPESPROTO3.fields_by_name['repeated_fieldmask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK
_TESTALLTYPESPROTO3.fields_by_name['repeated_struct'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
_TESTALLTYPESPROTO3.fields_by_name['repeated_any'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_TESTALLTYPESPROTO3.fields_by_name['repeated_value'].message_type = google_dot_protobuf_dot_struct__pb2._VALUE
_TESTALLTYPESPROTO3_NESTEDENUM.containing_type = _TESTALLTYPESPROTO3
_TESTALLTYPESPROTO3.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO3.fields_by_name['oneof_uint32'])
_TESTALLTYPESPROTO3.fields_by_name['oneof_uint32'].containing_oneof = _TESTALLTYPESPROTO3.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO3.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO3.fields_by_name['oneof_nested_message'])
_TESTALLTYPESPROTO3.fields_by_name['oneof_nested_message'].containing_oneof = _TESTALLTYPESPROTO3.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO3.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO3.fields_by_name['oneof_string'])
_TESTALLTYPESPROTO3.fields_by_name['oneof_string'].containing_oneof = _TESTALLTYPESPROTO3.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO3.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO3.fields_by_name['oneof_bytes'])
_TESTALLTYPESPROTO3.fields_by_name['oneof_bytes'].containing_oneof = _TESTALLTYPESPROTO3.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO3.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO3.fields_by_name['oneof_bool'])
_TESTALLTYPESPROTO3.fields_by_name['oneof_bool'].containing_oneof = _TESTALLTYPESPROTO3.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO3.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO3.fields_by_name['oneof_uint64'])
_TESTALLTYPESPROTO3.fields_by_name['oneof_uint64'].containing_oneof = _TESTALLTYPESPROTO3.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO3.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO3.fields_by_name['oneof_float'])
_TESTALLTYPESPROTO3.fields_by_name['oneof_float'].containing_oneof = _TESTALLTYPESPROTO3.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO3.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO3.fields_by_name['oneof_double'])
_TESTALLTYPESPROTO3.fields_by_name['oneof_double'].containing_oneof = _TESTALLTYPESPROTO3.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO3.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO3.fields_by_name['oneof_enum'])
_TESTALLTYPESPROTO3.fields_by_name['oneof_enum'].containing_oneof = _TESTALLTYPESPROTO3.oneofs_by_name['oneof_field']
DESCRIPTOR.message_types_by_name['TestAllTypesProto3'] = _TESTALLTYPESPROTO3
DESCRIPTOR.message_types_by_name['ForeignMessage'] = _FOREIGNMESSAGE
DESCRIPTOR.enum_types_by_name['ForeignEnum'] = _FOREIGNENUM
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestAllTypesProto3 = _reflection.GeneratedProtocolMessageType('TestAllTypesProto3', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_NESTEDMESSAGE,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage)
    ))
  ,

  MapInt32Int32Entry = _reflection.GeneratedProtocolMessageType('MapInt32Int32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPINT32INT32ENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry)
    ))
  ,

  MapInt64Int64Entry = _reflection.GeneratedProtocolMessageType('MapInt64Int64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPINT64INT64ENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry)
    ))
  ,

  MapUint32Uint32Entry = _reflection.GeneratedProtocolMessageType('MapUint32Uint32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPUINT32UINT32ENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry)
    ))
  ,

  MapUint64Uint64Entry = _reflection.GeneratedProtocolMessageType('MapUint64Uint64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPUINT64UINT64ENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry)
    ))
  ,

  MapSint32Sint32Entry = _reflection.GeneratedProtocolMessageType('MapSint32Sint32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPSINT32SINT32ENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry)
    ))
  ,

  MapSint64Sint64Entry = _reflection.GeneratedProtocolMessageType('MapSint64Sint64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPSINT64SINT64ENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry)
    ))
  ,

  MapFixed32Fixed32Entry = _reflection.GeneratedProtocolMessageType('MapFixed32Fixed32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPFIXED32FIXED32ENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry)
    ))
  ,

  MapFixed64Fixed64Entry = _reflection.GeneratedProtocolMessageType('MapFixed64Fixed64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPFIXED64FIXED64ENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry)
    ))
  ,

  MapSfixed32Sfixed32Entry = _reflection.GeneratedProtocolMessageType('MapSfixed32Sfixed32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPSFIXED32SFIXED32ENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry)
    ))
  ,

  MapSfixed64Sfixed64Entry = _reflection.GeneratedProtocolMessageType('MapSfixed64Sfixed64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPSFIXED64SFIXED64ENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry)
    ))
  ,

  MapInt32FloatEntry = _reflection.GeneratedProtocolMessageType('MapInt32FloatEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPINT32FLOATENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry)
    ))
  ,

  MapInt32DoubleEntry = _reflection.GeneratedProtocolMessageType('MapInt32DoubleEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPINT32DOUBLEENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry)
    ))
  ,

  MapBoolBoolEntry = _reflection.GeneratedProtocolMessageType('MapBoolBoolEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPBOOLBOOLENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry)
    ))
  ,

  MapStringStringEntry = _reflection.GeneratedProtocolMessageType('MapStringStringEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPSTRINGSTRINGENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry)
    ))
  ,

  MapStringBytesEntry = _reflection.GeneratedProtocolMessageType('MapStringBytesEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPSTRINGBYTESENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry)
    ))
  ,

  MapStringNestedMessageEntry = _reflection.GeneratedProtocolMessageType('MapStringNestedMessageEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPSTRINGNESTEDMESSAGEENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry)
    ))
  ,

  MapStringForeignMessageEntry = _reflection.GeneratedProtocolMessageType('MapStringForeignMessageEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPSTRINGFOREIGNMESSAGEENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry)
    ))
  ,

  MapStringNestedEnumEntry = _reflection.GeneratedProtocolMessageType('MapStringNestedEnumEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPSTRINGNESTEDENUMENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry)
    ))
  ,

  MapStringForeignEnumEntry = _reflection.GeneratedProtocolMessageType('MapStringForeignEnumEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO3_MAPSTRINGFOREIGNENUMENTRY,
    __module__ = 'google.protobuf.test_messages_proto3_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry)
    ))
  ,
  DESCRIPTOR = _TESTALLTYPESPROTO3,
  __module__ = 'google.protobuf.test_messages_proto3_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.TestAllTypesProto3)
  ))
_sym_db.RegisterMessage(TestAllTypesProto3)
_sym_db.RegisterMessage(TestAllTypesProto3.NestedMessage)
_sym_db.RegisterMessage(TestAllTypesProto3.MapInt32Int32Entry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapInt64Int64Entry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapUint32Uint32Entry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapUint64Uint64Entry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapSint32Sint32Entry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapSint64Sint64Entry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapFixed32Fixed32Entry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapFixed64Fixed64Entry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapSfixed32Sfixed32Entry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapSfixed64Sfixed64Entry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapInt32FloatEntry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapInt32DoubleEntry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapBoolBoolEntry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapStringStringEntry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapStringBytesEntry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapStringNestedMessageEntry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapStringForeignMessageEntry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapStringNestedEnumEntry)
_sym_db.RegisterMessage(TestAllTypesProto3.MapStringForeignEnumEntry)

ForeignMessage = _reflection.GeneratedProtocolMessageType('ForeignMessage', (_message.Message,), dict(
  DESCRIPTOR = _FOREIGNMESSAGE,
  __module__ = 'google.protobuf.test_messages_proto3_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto3.ForeignMessage)
  ))
_sym_db.RegisterMessage(ForeignMessage)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n(com.google.protobuf_test_messages.proto3H\001\370\001\001\242\002\006Proto3'))
_TESTALLTYPESPROTO3_MAPINT32INT32ENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPINT32INT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPINT64INT64ENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPINT64INT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPUINT32UINT32ENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPUINT32UINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPUINT64UINT64ENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPUINT64UINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPSINT32SINT32ENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPSINT32SINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPSINT64SINT64ENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPSINT64SINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPFIXED32FIXED32ENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPFIXED32FIXED32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPFIXED64FIXED64ENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPFIXED64FIXED64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPSFIXED32SFIXED32ENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPSFIXED32SFIXED32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPSFIXED64SFIXED64ENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPSFIXED64SFIXED64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPINT32FLOATENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPINT32FLOATENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPINT32DOUBLEENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPINT32DOUBLEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPBOOLBOOLENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPBOOLBOOLENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPSTRINGSTRINGENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPSTRINGSTRINGENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPSTRINGBYTESENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPSTRINGBYTESENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPSTRINGNESTEDMESSAGEENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPSTRINGNESTEDMESSAGEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNMESSAGEENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNMESSAGEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPSTRINGNESTEDENUMENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPSTRINGNESTEDENUMENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNENUMENTRY.has_options = True
_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNENUMENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO3.fields_by_name['optional_string_piece'].has_options = True
_TESTALLTYPESPROTO3.fields_by_name['optional_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPESPROTO3.fields_by_name['optional_cord'].has_options = True
_TESTALLTYPESPROTO3.fields_by_name['optional_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTALLTYPESPROTO3.fields_by_name['repeated_string_piece'].has_options = True
_TESTALLTYPESPROTO3.fields_by_name['repeated_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPESPROTO3.fields_by_name['repeated_cord'].has_options = True
_TESTALLTYPESPROTO3.fields_by_name['repeated_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
# @@protoc_insertion_point(module_scope)
PK��\�@�D�*�*protobuf/struct_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/struct.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/struct.proto',
  package='google.protobuf',
  syntax='proto3',
  serialized_pb=_b('\n\x1cgoogle/protobuf/struct.proto\x12\x0fgoogle.protobuf\"\x84\x01\n\x06Struct\x12\x33\n\x06\x66ields\x18\x01 \x03(\x0b\x32#.google.protobuf.Struct.FieldsEntry\x1a\x45\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.Value:\x02\x38\x01\"\xea\x01\n\x05Value\x12\x30\n\nnull_value\x18\x01 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x16\n\x0cnumber_value\x18\x02 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x04 \x01(\x08H\x00\x12/\n\x0cstruct_value\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructH\x00\x12\x30\n\nlist_value\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.ListValueH\x00\x42\x06\n\x04kind\"3\n\tListValue\x12&\n\x06values\x18\x01 \x03(\x0b\x32\x16.google.protobuf.Value*\x1b\n\tNullValue\x12\x0e\n\nNULL_VALUE\x10\x00\x42\x81\x01\n\x13\x63om.google.protobufB\x0bStructProtoP\x01Z1github.com/golang/protobuf/ptypes/struct;structpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3')
)

_NULLVALUE = _descriptor.EnumDescriptor(
  name='NullValue',
  full_name='google.protobuf.NullValue',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='NULL_VALUE', index=0, number=0,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=474,
  serialized_end=501,
)
_sym_db.RegisterEnumDescriptor(_NULLVALUE)

NullValue = enum_type_wrapper.EnumTypeWrapper(_NULLVALUE)
NULL_VALUE = 0



_STRUCT_FIELDSENTRY = _descriptor.Descriptor(
  name='FieldsEntry',
  full_name='google.protobuf.Struct.FieldsEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='google.protobuf.Struct.FieldsEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.Struct.FieldsEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=113,
  serialized_end=182,
)

_STRUCT = _descriptor.Descriptor(
  name='Struct',
  full_name='google.protobuf.Struct',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='fields', full_name='google.protobuf.Struct.fields', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_STRUCT_FIELDSENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=50,
  serialized_end=182,
)


_VALUE = _descriptor.Descriptor(
  name='Value',
  full_name='google.protobuf.Value',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='null_value', full_name='google.protobuf.Value.null_value', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='number_value', full_name='google.protobuf.Value.number_value', index=1,
      number=2, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_value', full_name='google.protobuf.Value.string_value', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bool_value', full_name='google.protobuf.Value.bool_value', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='struct_value', full_name='google.protobuf.Value.struct_value', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='list_value', full_name='google.protobuf.Value.list_value', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='kind', full_name='google.protobuf.Value.kind',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=185,
  serialized_end=419,
)


_LISTVALUE = _descriptor.Descriptor(
  name='ListValue',
  full_name='google.protobuf.ListValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='values', full_name='google.protobuf.ListValue.values', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=421,
  serialized_end=472,
)

_STRUCT_FIELDSENTRY.fields_by_name['value'].message_type = _VALUE
_STRUCT_FIELDSENTRY.containing_type = _STRUCT
_STRUCT.fields_by_name['fields'].message_type = _STRUCT_FIELDSENTRY
_VALUE.fields_by_name['null_value'].enum_type = _NULLVALUE
_VALUE.fields_by_name['struct_value'].message_type = _STRUCT
_VALUE.fields_by_name['list_value'].message_type = _LISTVALUE
_VALUE.oneofs_by_name['kind'].fields.append(
  _VALUE.fields_by_name['null_value'])
_VALUE.fields_by_name['null_value'].containing_oneof = _VALUE.oneofs_by_name['kind']
_VALUE.oneofs_by_name['kind'].fields.append(
  _VALUE.fields_by_name['number_value'])
_VALUE.fields_by_name['number_value'].containing_oneof = _VALUE.oneofs_by_name['kind']
_VALUE.oneofs_by_name['kind'].fields.append(
  _VALUE.fields_by_name['string_value'])
_VALUE.fields_by_name['string_value'].containing_oneof = _VALUE.oneofs_by_name['kind']
_VALUE.oneofs_by_name['kind'].fields.append(
  _VALUE.fields_by_name['bool_value'])
_VALUE.fields_by_name['bool_value'].containing_oneof = _VALUE.oneofs_by_name['kind']
_VALUE.oneofs_by_name['kind'].fields.append(
  _VALUE.fields_by_name['struct_value'])
_VALUE.fields_by_name['struct_value'].containing_oneof = _VALUE.oneofs_by_name['kind']
_VALUE.oneofs_by_name['kind'].fields.append(
  _VALUE.fields_by_name['list_value'])
_VALUE.fields_by_name['list_value'].containing_oneof = _VALUE.oneofs_by_name['kind']
_LISTVALUE.fields_by_name['values'].message_type = _VALUE
DESCRIPTOR.message_types_by_name['Struct'] = _STRUCT
DESCRIPTOR.message_types_by_name['Value'] = _VALUE
DESCRIPTOR.message_types_by_name['ListValue'] = _LISTVALUE
DESCRIPTOR.enum_types_by_name['NullValue'] = _NULLVALUE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Struct = _reflection.GeneratedProtocolMessageType('Struct', (_message.Message,), dict(

  FieldsEntry = _reflection.GeneratedProtocolMessageType('FieldsEntry', (_message.Message,), dict(
    DESCRIPTOR = _STRUCT_FIELDSENTRY,
    __module__ = 'google.protobuf.struct_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.Struct.FieldsEntry)
    ))
  ,
  DESCRIPTOR = _STRUCT,
  __module__ = 'google.protobuf.struct_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Struct)
  ))
_sym_db.RegisterMessage(Struct)
_sym_db.RegisterMessage(Struct.FieldsEntry)

Value = _reflection.GeneratedProtocolMessageType('Value', (_message.Message,), dict(
  DESCRIPTOR = _VALUE,
  __module__ = 'google.protobuf.struct_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Value)
  ))
_sym_db.RegisterMessage(Value)

ListValue = _reflection.GeneratedProtocolMessageType('ListValue', (_message.Message,), dict(
  DESCRIPTOR = _LISTVALUE,
  __module__ = 'google.protobuf.struct_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.ListValue)
  ))
_sym_db.RegisterMessage(ListValue)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.google.protobufB\013StructProtoP\001Z1github.com/golang/protobuf/ptypes/struct;structpb\370\001\001\242\002\003GPB\252\002\036Google.Protobuf.WellKnownTypes'))
_STRUCT_FIELDSENTRY.has_options = True
_STRUCT_FIELDSENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
# @@protoc_insertion_point(module_scope)
PK��\�X9��&�&protobuf/unittest_mset_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest_mset.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import unittest_mset_wire_format_pb2 as google_dot_protobuf_dot_unittest__mset__wire__format__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest_mset.proto',
  package='protobuf_unittest',
  syntax='proto2',
  serialized_pb=_b('\n#google/protobuf/unittest_mset.proto\x12\x11protobuf_unittest\x1a/google/protobuf/unittest_mset_wire_format.proto\"Z\n\x17TestMessageSetContainer\x12?\n\x0bmessage_set\x18\x01 \x01(\x0b\x32*.proto2_wireformat_unittest.TestMessageSet\"\x9f\x01\n\x18TestMessageSetExtension1\x12\t\n\x01i\x18\x0f \x01(\x05\x32x\n\x15message_set_extension\x12*.proto2_wireformat_unittest.TestMessageSet\x18\xb0\xa6^ \x01(\x0b\x32+.protobuf_unittest.TestMessageSetExtension1\"\xa1\x01\n\x18TestMessageSetExtension2\x12\x0b\n\x03str\x18\x19 \x01(\t2x\n\x15message_set_extension\x12*.proto2_wireformat_unittest.TestMessageSet\x18\xf9\xbb^ \x01(\x0b\x32+.protobuf_unittest.TestMessageSetExtension2\"n\n\rRawMessageSet\x12\x33\n\x04item\x18\x01 \x03(\n2%.protobuf_unittest.RawMessageSet.Item\x1a(\n\x04Item\x12\x0f\n\x07type_id\x18\x02 \x02(\x05\x12\x0f\n\x07message\x18\x03 \x02(\x0c\x42\x05H\x01\xf8\x01\x01')
  ,
  dependencies=[google_dot_protobuf_dot_unittest__mset__wire__format__pb2.DESCRIPTOR,])




_TESTMESSAGESETCONTAINER = _descriptor.Descriptor(
  name='TestMessageSetContainer',
  full_name='protobuf_unittest.TestMessageSetContainer',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='message_set', full_name='protobuf_unittest.TestMessageSetContainer.message_set', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=107,
  serialized_end=197,
)


_TESTMESSAGESETEXTENSION1 = _descriptor.Descriptor(
  name='TestMessageSetExtension1',
  full_name='protobuf_unittest.TestMessageSetExtension1',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='i', full_name='protobuf_unittest.TestMessageSetExtension1.i', index=0,
      number=15, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='message_set_extension', full_name='protobuf_unittest.TestMessageSetExtension1.message_set_extension', index=0,
      number=1545008, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=200,
  serialized_end=359,
)


_TESTMESSAGESETEXTENSION2 = _descriptor.Descriptor(
  name='TestMessageSetExtension2',
  full_name='protobuf_unittest.TestMessageSetExtension2',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='str', full_name='protobuf_unittest.TestMessageSetExtension2.str', index=0,
      number=25, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='message_set_extension', full_name='protobuf_unittest.TestMessageSetExtension2.message_set_extension', index=0,
      number=1547769, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=362,
  serialized_end=523,
)


_RAWMESSAGESET_ITEM = _descriptor.Descriptor(
  name='Item',
  full_name='protobuf_unittest.RawMessageSet.Item',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type_id', full_name='protobuf_unittest.RawMessageSet.Item.type_id', index=0,
      number=2, type=5, cpp_type=1, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='message', full_name='protobuf_unittest.RawMessageSet.Item.message', index=1,
      number=3, type=12, cpp_type=9, label=2,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=595,
  serialized_end=635,
)

_RAWMESSAGESET = _descriptor.Descriptor(
  name='RawMessageSet',
  full_name='protobuf_unittest.RawMessageSet',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='item', full_name='protobuf_unittest.RawMessageSet.item', index=0,
      number=1, type=10, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_RAWMESSAGESET_ITEM, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=525,
  serialized_end=635,
)

_TESTMESSAGESETCONTAINER.fields_by_name['message_set'].message_type = google_dot_protobuf_dot_unittest__mset__wire__format__pb2._TESTMESSAGESET
_RAWMESSAGESET_ITEM.containing_type = _RAWMESSAGESET
_RAWMESSAGESET.fields_by_name['item'].message_type = _RAWMESSAGESET_ITEM
DESCRIPTOR.message_types_by_name['TestMessageSetContainer'] = _TESTMESSAGESETCONTAINER
DESCRIPTOR.message_types_by_name['TestMessageSetExtension1'] = _TESTMESSAGESETEXTENSION1
DESCRIPTOR.message_types_by_name['TestMessageSetExtension2'] = _TESTMESSAGESETEXTENSION2
DESCRIPTOR.message_types_by_name['RawMessageSet'] = _RAWMESSAGESET
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestMessageSetContainer = _reflection.GeneratedProtocolMessageType('TestMessageSetContainer', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGESETCONTAINER,
  __module__ = 'google.protobuf.unittest_mset_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMessageSetContainer)
  ))
_sym_db.RegisterMessage(TestMessageSetContainer)

TestMessageSetExtension1 = _reflection.GeneratedProtocolMessageType('TestMessageSetExtension1', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGESETEXTENSION1,
  __module__ = 'google.protobuf.unittest_mset_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMessageSetExtension1)
  ))
_sym_db.RegisterMessage(TestMessageSetExtension1)

TestMessageSetExtension2 = _reflection.GeneratedProtocolMessageType('TestMessageSetExtension2', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGESETEXTENSION2,
  __module__ = 'google.protobuf.unittest_mset_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMessageSetExtension2)
  ))
_sym_db.RegisterMessage(TestMessageSetExtension2)

RawMessageSet = _reflection.GeneratedProtocolMessageType('RawMessageSet', (_message.Message,), dict(

  Item = _reflection.GeneratedProtocolMessageType('Item', (_message.Message,), dict(
    DESCRIPTOR = _RAWMESSAGESET_ITEM,
    __module__ = 'google.protobuf.unittest_mset_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.RawMessageSet.Item)
    ))
  ,
  DESCRIPTOR = _RAWMESSAGESET,
  __module__ = 'google.protobuf.unittest_mset_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.RawMessageSet)
  ))
_sym_db.RegisterMessage(RawMessageSet)
_sym_db.RegisterMessage(RawMessageSet.Item)

_TESTMESSAGESETEXTENSION1.extensions_by_name['message_set_extension'].message_type = _TESTMESSAGESETEXTENSION1
google_dot_protobuf_dot_unittest__mset__wire__format__pb2.TestMessageSet.RegisterExtension(_TESTMESSAGESETEXTENSION1.extensions_by_name['message_set_extension'])
_TESTMESSAGESETEXTENSION2.extensions_by_name['message_set_extension'].message_type = _TESTMESSAGESETEXTENSION2
google_dot_protobuf_dot_unittest__mset__wire__format__pb2.TestMessageSet.RegisterExtension(_TESTMESSAGESETEXTENSION2.extensions_by_name['message_set_extension'])

DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('H\001\370\001\001'))
# @@protoc_insertion_point(module_scope)
PK��\��l

protobuf/any_pb2.pyonu�[����
���hc.@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!d d"dd#ed$ed%�jd&�d'dd(dddd)ed*dd+dde�ejdd,dd-dddd.dd/d!d d"dd#ed$ed%�d'dd(dddd)ed*dd+dde�gd0gd1gd2gd+dd3eddd4gd5gd6d7d8d9�Zeejd<eje�e	jdejfed:ed;d<��Zeje�ee_ej ej!�ed=��e_"dS(>i����NiicCs|S(N((tx((s;/usr/lib/python2.7/site-packages/google/protobuf/any_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s;/usr/lib/python2.7/site-packages/google/protobuf/any_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/any.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/any.protogoogle.protobuf"&
Any
type_url (	
value (Bo
com.google.protobufBAnyProtoPZ%github.com/golang/protobuf/ptypes/any�GPB�Google.Protobuf.WellKnownTypesbproto3tAnyt	full_namesgoogle.protobuf.Anytfilenametfiletcontaining_typetfieldsttype_urlsgoogle.protobuf.Any.type_urltindextnumberittypei	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetoptionstvaluesgoogle.protobuf.Any.valueiit
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti.tserialized_endiTt
DESCRIPTORt
__module__sgoogle.protobuf.any_pb2so
com.google.protobufBAnyProtoPZ%github.com/golang/protobuf/ptypes/any�GPB�Google.Protobuf.WellKnownTypes(#tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR+t
DescriptortNonetFieldDescriptortFalsetdecodet_ANYtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((s;/usr/lib/python2.7/site-packages/google/protobuf/any_pb2.pyt<module>sd%					


	PK�\�$X���protobuf/message_factory.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Provides a factory class for generating dynamic messages.

The easiest way to use this class is if you have access to the FileDescriptor
protos containing the messages you want to create you can just do the following:

message_classes = message_factory.GetMessages(iterable_of_file_descriptors)
my_proto_instance = message_classes['some.proto.package.MessageName']()
"""

__author__ = 'matthewtoia@google.com (Matt Toia)'

from google.protobuf import descriptor_pool
from google.protobuf import message
from google.protobuf import reflection


class MessageFactory(object):
  """Factory for creating Proto2 messages from descriptors in a pool."""

  def __init__(self, pool=None):
    """Initializes a new factory."""
    self.pool = pool or descriptor_pool.DescriptorPool()

    # local cache of all classes built from protobuf descriptors
    self._classes = {}

  def GetPrototype(self, descriptor):
    """Builds a proto2 message class based on the passed in descriptor.

    Passing a descriptor with a fully qualified name matching a previous
    invocation will cause the same class to be returned.

    Args:
      descriptor: The descriptor to build from.

    Returns:
      A class describing the passed in descriptor.
    """
    if descriptor not in self._classes:
      descriptor_name = descriptor.name
      if str is bytes:  # PY2
        descriptor_name = descriptor.name.encode('ascii', 'ignore')
      result_class = reflection.GeneratedProtocolMessageType(
          descriptor_name,
          (message.Message,),
          {'DESCRIPTOR': descriptor, '__module__': None})
          # If module not set, it wrongly points to the reflection.py module.
      self._classes[descriptor] = result_class
      for field in descriptor.fields:
        if field.message_type:
          self.GetPrototype(field.message_type)
      for extension in result_class.DESCRIPTOR.extensions:
        if extension.containing_type not in self._classes:
          self.GetPrototype(extension.containing_type)
        extended_class = self._classes[extension.containing_type]
        extended_class.RegisterExtension(extension)
    return self._classes[descriptor]

  def GetMessages(self, files):
    """Gets all the messages from a specified file.

    This will find and resolve dependencies, failing if the descriptor
    pool cannot satisfy them.

    Args:
      files: The file names to extract messages from.

    Returns:
      A dictionary mapping proto names to the message classes. This will include
      any dependent messages as well as any messages defined in the same file as
      a specified message.
    """
    result = {}
    for file_name in files:
      file_desc = self.pool.FindFileByName(file_name)
      for desc in file_desc.message_types_by_name.values():
        result[desc.full_name] = self.GetPrototype(desc)

      # While the extension FieldDescriptors are created by the descriptor pool,
      # the python classes created in the factory need them to be registered
      # explicitly, which is done below.
      #
      # The call to RegisterExtension will specifically check if the
      # extension was already registered on the object and either
      # ignore the registration if the original was the same, or raise
      # an error if they were different.

      for extension in file_desc.extensions_by_name.values():
        if extension.containing_type not in self._classes:
          self.GetPrototype(extension.containing_type)
        extended_class = self._classes[extension.containing_type]
        extended_class.RegisterExtension(extension)
    return result


_FACTORY = MessageFactory()


def GetMessages(file_protos):
  """Builds a dictionary of all the messages available in a set of files.

  Args:
    file_protos: Iterable of FileDescriptorProto to build messages out of.

  Returns:
    A dictionary mapping proto names to the message classes. This will include
    any dependent messages as well as any messages defined in the same file as
    a specified message.
  """
  # The cpp implementation of the protocol buffer library requires to add the
  # message in topological order of the dependency graph.
  file_by_name = {file_proto.name: file_proto for file_proto in file_protos}
  def _AddFile(file_proto):
    for dependency in file_proto.dependency:
      if dependency in file_by_name:
        # Remove from elements to be visited, in order to cut cycles.
        _AddFile(file_by_name.pop(dependency))
    _FACTORY.pool.Add(file_proto)
  while file_by_name:
    _AddFile(file_by_name.popitem()[1])
  return _FACTORY.GetMessages([file_proto.name for file_proto in file_protos])
PK�\��X�~
~
protobuf/any_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/any.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/any.proto',
  package='google.protobuf',
  syntax='proto3',
  serialized_pb=_b('\n\x19google/protobuf/any.proto\x12\x0fgoogle.protobuf\"&\n\x03\x41ny\x12\x10\n\x08type_url\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x42o\n\x13\x63om.google.protobufB\x08\x41nyProtoP\x01Z%github.com/golang/protobuf/ptypes/any\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3')
)




_ANY = _descriptor.Descriptor(
  name='Any',
  full_name='google.protobuf.Any',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type_url', full_name='google.protobuf.Any.type_url', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.Any.value', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=46,
  serialized_end=84,
)

DESCRIPTOR.message_types_by_name['Any'] = _ANY
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Any = _reflection.GeneratedProtocolMessageType('Any', (_message.Message,), dict(
  DESCRIPTOR = _ANY,
  __module__ = 'google.protobuf.any_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Any)
  ))
_sym_db.RegisterMessage(Any)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.google.protobufB\010AnyProtoP\001Z%github.com/golang/protobuf/ptypes/any\242\002\003GPB\252\002\036Google.Protobuf.WellKnownTypes'))
# @@protoc_insertion_point(module_scope)
PK�\B��

*protobuf/unittest_mset_wire_format_pb2.pyonu�[����
���hc-@sddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddgdgdgdgdejej�ed��deddd d@gd#gd$d%d&d'�Zejdd(dd)dddedddejdd*dd+d,dd-d.d/d0d1d2d3d.d4ed5dd6dd7dddd8ed9dddde�gdgdgdgdddeddd gd#gd$d:d&d;�Zeejd*_eejd<eejd(<eje�e	jdejfe d<ed=d>��Z!ej"e!�e	jd(ejfe d<ed=d>��Z#ej"e#�ee_$ejej%�ed?��e_&ee_$ejej�ed��e_&dS(Ai����NiicCs|S(N((tx((sQ/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_wire_format_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_wire_format_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames/google/protobuf/unittest_mset_wire_format.prototpackagetproto2_wireformat_unittesttsyntaxtproto2t
serialized_pbs�
/google/protobuf/unittest_mset_wire_format.protoproto2_wireformat_unittest"
TestMessageSet*����:"d
!TestMessageSetWireFormatContainer?
message_set (2*.proto2_wireformat_unittest.TestMessageSetB)H��!Google.ProtocolBuffers.TestProtostTestMessageSett	full_names)proto2_wireformat_unittest.TestMessageSettfilenametfiletcontaining_typetfieldst
extensionstnested_typest
enum_typestoptionsst
is_extendabletextension_rangesii���toneofstserialized_startiOtserialized_endimt!TestMessageSetWireFormatContainers<proto2_wireformat_unittest.TestMessageSetWireFormatContainertmessage_setsHproto2_wireformat_unittest.TestMessageSetWireFormatContainer.message_settindextnumberittypeitcpp_typei
tlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopeioi�t
DESCRIPTORt
__module__s-google.protobuf.unittest_mset_wire_format_pb2s)H��!Google.ProtocolBuffers.TestProtos(ii���('tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR,t
DescriptortNonet
_ParseOptionstMessageOptionstTruet_TESTMESSAGESETtFieldDescriptortFalset"_TESTMESSAGESETWIREFORMATCONTAINERtfields_by_nameR(tmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageRthas_optionstFileOptionst_options(((sQ/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_wire_format_pb2.pyt<module>s�%							




	!	PK�\@�gƕ�,protobuf/unittest_no_generic_services_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest_no_generic_services.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest_no_generic_services.proto',
  package='google.protobuf.no_generic_services_test',
  syntax='proto2',
  serialized_pb=_b('\n2google/protobuf/unittest_no_generic_services.proto\x12(google.protobuf.no_generic_services_test\"#\n\x0bTestMessage\x12\t\n\x01\x61\x18\x01 \x01(\x05*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02*\x13\n\x08TestEnum\x12\x07\n\x03\x46OO\x10\x01\x32\x82\x01\n\x0bTestService\x12s\n\x03\x46oo\x12\x35.google.protobuf.no_generic_services_test.TestMessage\x1a\x35.google.protobuf.no_generic_services_test.TestMessage:N\n\x0etest_extension\x12\x35.google.protobuf.no_generic_services_test.TestMessage\x18\xe8\x07 \x01(\x05')
)

_TESTENUM = _descriptor.EnumDescriptor(
  name='TestEnum',
  full_name='google.protobuf.no_generic_services_test.TestEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOO', index=0, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=133,
  serialized_end=152,
)
_sym_db.RegisterEnumDescriptor(_TESTENUM)

TestEnum = enum_type_wrapper.EnumTypeWrapper(_TESTENUM)
FOO = 1

TEST_EXTENSION_FIELD_NUMBER = 1000
test_extension = _descriptor.FieldDescriptor(
  name='test_extension', full_name='google.protobuf.no_generic_services_test.test_extension', index=0,
  number=1000, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)


_TESTMESSAGE = _descriptor.Descriptor(
  name='TestMessage',
  full_name='google.protobuf.no_generic_services_test.TestMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='google.protobuf.no_generic_services_test.TestMessage.a', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=96,
  serialized_end=131,
)

DESCRIPTOR.message_types_by_name['TestMessage'] = _TESTMESSAGE
DESCRIPTOR.enum_types_by_name['TestEnum'] = _TESTENUM
DESCRIPTOR.extensions_by_name['test_extension'] = test_extension
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestMessage = _reflection.GeneratedProtocolMessageType('TestMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGE,
  __module__ = 'google.protobuf.unittest_no_generic_services_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.no_generic_services_test.TestMessage)
  ))
_sym_db.RegisterMessage(TestMessage)

TestMessage.RegisterExtension(test_extension)


_TESTSERVICE = _descriptor.ServiceDescriptor(
  name='TestService',
  full_name='google.protobuf.no_generic_services_test.TestService',
  file=DESCRIPTOR,
  index=0,
  options=None,
  serialized_start=155,
  serialized_end=285,
  methods=[
  _descriptor.MethodDescriptor(
    name='Foo',
    full_name='google.protobuf.no_generic_services_test.TestService.Foo',
    index=0,
    containing_service=None,
    input_type=_TESTMESSAGE,
    output_type=_TESTMESSAGE,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_TESTSERVICE)

DESCRIPTOR.services_by_name['TestService'] = _TESTSERVICE

# @@protoc_insertion_point(module_scope)
PK�\���8�8�%protobuf/test_messages_proto2_pb2.pycnu�[����
���hc�@s�YddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�Zejdd
ddddded��Zejdddddddedejdddddddddd�ejdddd dd dddd�ejdd!dd"dd"dddd�gd#dddd$d%d&d'�	Zeje�eje�ZdZd Zd"Zd(Zejdd)dd*dddd(dd+d,d d-d d.ed/dd0dd1dd#dd2e d3dddde�Z!ejdd4dd5dddedejdd6dddddddd�ejdd7dd dd dddd�ejdd8dd"dd"dddd�ejdd9dddddddd�gd#dddd$d:d&d;�	Z"eje"�ej#dd<dd=ddded#dd>ejdd?dd@dddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddAddBdd dd"ddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdddHedddIgdJgd$dKd&dL�Z$ej#ddMddNddded#dd>ejddOddPdddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQddRdd dd"dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dTd&dU�Z'ej#ddVddWddded#dd>ejddOddXdddd ddd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQddYdd dd"ddd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dZd&d[�Z(ej#dd\dd]ddded#dd>ejddOdd^dddd dd_d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd`dd dd"dd_d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dad&db�Z)ej#ddcdddddded#dd>ejddOddedddd ddfd,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQddgdd dd"ddfd,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dhd&di�Z*ej#ddjddkddded#dd>ejddOddldddd ddmd,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQddndd dd"ddmd,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dod&dp�Z+ej#ddqddrddded#dd>ejddOddsdddd ddtd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQddudd dd"ddtd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dvd&dw�Z,ej#ddxddyddded#dd>ejddOddzdddd dd{d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd|dd dd"dd{d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d}d&d~�Z-ej#dddd�ddded#dd>ejddOdd�dddd dd�d,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z.ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z/ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z0ej#dd�dd�ddded#dd>ejddOdd�dddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd"d,d�d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z2ej#dd�dd�ddded#dd>ejddOdd�dddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd d,d+d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z3ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d{d-d d.ed/ed0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d{d-d d.ed/ed0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z4ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z6ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d�d-d d.ed/ed��d0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z7ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"ddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z8ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"ddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z9ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d�d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z:ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d�d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z;ej#dd�dd�ddded#dd>ejdd�dd�dddd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd dd�dd_d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdddHedddIgdJgd$d�d&d��Z<ej#dd�dd�ddded#dd>gdEgdFgdGgdej%ej&�ed���dHe dddIdgdJgd$d�d&d��Z=ej#dd�dd�ddded#dd>ejdd�dd�dddd�dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�gdEejdd�dd�dddd�ddCd,dDd-d d.ed/dd0dd1dd#dd2e d3dddde�gdFgdGgdddHedddIgdJgd$d�d&d��Z>ej#dd�dd�ddded#dd>ejdd�dd�dddd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEejdd�dd�dddd�ddCd,dDd-d d.ed/dd0dd1dd#dd2e d3dddde�gdFgdGgdddHedddIgdJgd$d�d&d��Z?ej#dd�dd�ddded#dd>ejdd�dd�dddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd dd"ddd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd"dddd_d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�ddddfddfd,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�ddfdd+ddmd,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd+dd�ddtd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd�dd{dd{d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd{dd�dd�d,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd�dd�dd�d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd�ddDdd�d,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddd	ddDddCdd"d,d�d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�ejdd
ddddCdd�dd d,d+d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�ejdddd
dd�dd_dd�d,d{d-d d.ed/ed0dd1dd#dd2ed3dddde�ejdddddd_dd�dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejdddddd�dd�dd�d,d�d-d d.ed/ed��d0dd1dd#dd2ed3dddde�ejdddddd�ddtddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd�ddddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�ejddddddmdddd�d,d�d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddddddtdddd�d,d�d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddddddd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3ddej%ej@�ed ��de�ejdd!dd"dd#dd�dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3ddej%ej@�ed���de�ejdd$dd%dddd&ddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd'dd(dddd)dd+d,d d-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd*dd+dd,dd-ddd,d"d-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd.dd/dddd0dd_d,dd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd1dd2dd�dd3ddfd,dfd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd4dd5dd6dd7ddmd,d d-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd8dd9dd&dd:ddtd,d"d-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd;dd<dd=dd>dd{d,dd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd?dd@ddAddBdd�d,dfd-dd.ed/gd0dd1dd#dd2ed3dddde�ejddCddDddEddFdd�d,d d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddGddHdd)ddIdd�d,d"d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddJddKdd-ddLdd"d,d�d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddMddNdd0ddOdd d,d+d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddPddQdd3ddRdd�d,d{d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddSddTdd7ddUdd�d,d�d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddVddWdd:ddXdd�d,d�d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddYddZdd>dd[ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd\dd]ddBdd^ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd_dd`ddFddadd�d,d�d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddbddcddIddddd�d,d�d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddeddfddLddgdd�d,d�d-dd.ed/gd0dd1dd#dd2ed3ddej%ej@�ed ��de�ejddhddiddOddjdd�d,d�d-dd.ed/gd0dd1dd#dd2ed3ddej%ej@�ed���de�ejddkddlddRddmddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejddnddoddUddpddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejddqddrddXddsddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejddtdduddvddwddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejddxddyddzdd{ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd|dd}dd[dd~ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdddd�dd^dd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddadd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddddd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddgdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddjdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddmdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddpdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddsdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddwdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�dd{dd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�dd~dd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd_d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�ddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd�d,d�d-d d.ed/ed��d0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd�d,d{d-d d.ed/ed0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�ddfd,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd"d,d�d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd d,d+d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd�d,d�d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�ddDd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dddddddd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddddddd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd	dd
dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gZdEgdFe$e'e(e)e*e+e,e-e.e/e0e2e3e4e6e7e8e9e:e;e<e=e>e?gdGe"gdddHe dddIdgdJejAddddddd#dd>g�gd$d�d&d
�ZBej#ddddddded#dd>ejdddddddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdddHedddIgdJgd$dd&d�ZCeBe$jDdA_EeBe$_FeBe'_FeBe(_FeBe)_FeBe*_FeBe+_FeBe,_FeBe-_FeBe._FeBe/_FeBe0_FeBe2_FeBe3_FeBe4_FeBe6_FeBe7_Fe$e8jDdQ_EeBe8_FeCe9jDdQ_EeBe9_Fe"e:jDdQ_GeBe:_Fee;jDdQ_GeBe;_FeBe<_FeBe=_FeBe>_FeBe?_Fe$eBjDd_EeCeBjDd_Ee"eBjDd_GeeBjDd_GeBeBjDd$_Ee$eBjDdY_EeCeBjDd\_Ee"eBjDd__GeeBjDdb_Ge'eBjDdk_Ee(eBjDdn_Ee)eBjDdq_Ee*eBjDdt_Ee+eBjDdx_Ee,eBjDd|_Ee-eBjDd_Ee.eBjDd�_Ee/eBjDd�_Ee0eBjDd�_Ee2eBjDd�_Ee3eBjDd�_Ee4eBjDd�_Ee6eBjDd�_Ee7eBjDd�_Ee8eBjDd�_Ee9eBjDd�_Ee:eBjDd�_Ee;eBjDd�_Ee$eBjDd�_Ee"eBjDd�_Ge<eBjDd�_EeBe"_FeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBejLd�<eCejLd<eejMd<e!ejNd)<ejOe�ejPd�e	jQfeRd<ejPd<e	jQfeRde$dd��dMejPdMe	jQfeRde'dd��dVejPdVe	jQfeRde(dd��d\ejPd\e	jQfeRde)dd��dcejPdce	jQfeRde*dd��djejPdje	jQfeRde+dd��dqejPdqe	jQfeRde,dd��dxejPdxe	jQfeRde-dd��dejPde	jQfeRde.dd��d�ejPd�e	jQfeRde/dd��d�ejPd�e	jQfeRde0dd��d�ejPd�e	jQfeRde2dd��d�ejPd�e	jQfeRde3dd��d�ejPd�e	jQfeRde4dd��d�ejPd�e	jQfeRde6dd��d�ejPd�e	jQfeRde7dd��d�ejPd�e	jQfeRde8dd��d�ejPd�e	jQfeRde9dd��d�ejPd�e	jQfeRde:dd��d�ejPd�e	jQfeRde;dd��d�ejPd�e	jQfeRde<dd��d�ejPd�e	jQfeRde=dd��d�ejPd�e	jQfeRde>dd��d�ejPd�e	jQfeRde?dd��deBdd��ZSejTeS�ejTeSjU�ejTeSjV�ejTeSjW�ejTeSjX�ejTeSjY�ejTeSjZ�ejTeSj[�ejTeSj\�ejTeSj]�ejTeSj^�ejTeSj_�ejTeSj`�ejTeSja�ejTeSjb�ejTeSjc�ejTeSjd�ejTeSje�ejTeSjf�ejTeSjg�ejTeSjh�ejTeSji�ejTeSjj�ejTeSjk�ejTeSjl�ejPde	jQfeRdeCdd��ZmejTem�eSjne!�e>e>jNd�_EeSjjjne>jNd��e?e?jNd�_EeSjjjne?jNd��e e_oej%ejp�ed��e_qe e'_oej%ej&�edS��e'_qe e(_oej%ej&�edS��e(_qe e)_oej%ej&�edS��e)_qe e*_oej%ej&�edS��e*_qe e+_oej%ej&�edS��e+_qe e,_oej%ej&�edS��e,_qe e-_oej%ej&�edS��e-_qe e._oej%ej&�edS��e._qe e/_oej%ej&�edS��e/_qe e0_oej%ej&�edS��e0_qe e2_oej%ej&�edS��e2_qe e3_oej%ej&�edS��e3_qe e4_oej%ej&�edS��e4_qe e6_oej%ej&�edS��e6_qe e7_oej%ej&�edS��e7_qe e8_oej%ej&�edS��e8_qe e9_oej%ej&�edS��e9_qe e:_oej%ej&�edS��e:_qe e;_oej%ej&�edS��e;_qe e=_oej%ej&�ed���e=_qe eBjDd_oej%ej@�ed ��eBjDd_qe eBjDd!_oej%ej@�ed���eBjDd!_qe eBjDde_oej%ej@�ed ��eBjDde_qe eBjDdh_oej%ej@�ed���eBjDdh_qdS(i����NiicCs|S(N((tx((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto2_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto2_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames*google/protobuf/test_messages_proto2.prototpackagesprotobuf_test_messages.proto2tsyntaxtproto2t
serialized_pbs�
*google/protobuf/test_messages_proto2.protoprotobuf_test_messages.proto2"�2
TestAllTypesProto2
optional_int32 (
optional_int64 (
optional_uint32 (

optional_uint64 (
optional_sint32 (
optional_sint64 (
optional_fixed32 (
optional_fixed64 (
optional_sfixed32	 (
optional_sfixed64
 (
optional_float (
optional_double (

optional_bool
 (
optional_string (	
optional_bytes (`
optional_nested_message (2?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessageU
optional_foreign_message (23.protobuf_test_messages.proto2.ForeignMessageProto2Z
optional_nested_enum (2<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnumO
optional_foreign_enum (20.protobuf_test_messages.proto2.ForeignEnumProto2!
optional_string_piece (	B

optional_cord (	BL
recursive_message (21.protobuf_test_messages.proto2.TestAllTypesProto2
repeated_int32 (
repeated_int64  (
repeated_uint32! (

repeated_uint64" (
repeated_sint32# (
repeated_sint64$ (
repeated_fixed32% (
repeated_fixed64& (
repeated_sfixed32' (
repeated_sfixed64( (
repeated_float) (
repeated_double* (

repeated_bool+ (
repeated_string, (	
repeated_bytes- (`
repeated_nested_message0 (2?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessageU
repeated_foreign_message1 (23.protobuf_test_messages.proto2.ForeignMessageProto2Z
repeated_nested_enum3 (2<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnumO
repeated_foreign_enum4 (20.protobuf_test_messages.proto2.ForeignEnumProto2!
repeated_string_piece6 (	B

repeated_cord7 (	B]
map_int32_int328 (2D.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry]
map_int64_int649 (2D.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entrya
map_uint32_uint32: (2F.protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entrya
map_uint64_uint64; (2F.protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entrya
map_sint32_sint32< (2F.protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entrya
map_sint64_sint64= (2F.protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entrye
map_fixed32_fixed32> (2H.protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entrye
map_fixed64_fixed64? (2H.protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entryi
map_sfixed32_sfixed32@ (2J.protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entryi
map_sfixed64_sfixed64A (2J.protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry]
map_int32_floatB (2D.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry_
map_int32_doubleC (2E.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntryY

map_bool_boolD (2B.protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntrya
map_string_stringE (2F.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry_
map_string_bytesF (2E.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntryp
map_string_nested_messageG (2M.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntryr
map_string_foreign_messageH (2N.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntryj
map_string_nested_enumI (2J.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntryl
map_string_foreign_enumJ (2K.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry
oneof_uint32o (
H_
oneof_nested_messagep (2?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessageH
oneof_stringq (	H
oneof_bytesr (H

oneof_bools (H
oneof_uint64t (H
oneof_floatu (H
oneof_doublev (HR

oneof_enumw (2<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnumHE
data� (
26.protobuf_test_messages.proto2.TestAllTypesProto2.Data

fieldname1� (
field_name2� (
_field_name3� (

field__name4_� (
field0name5� (

field_0_name6� (

fieldName7� (

FieldName8� (
field_Name9� (
Field_Name10� (
FIELD_NAME11� (
FIELD_name12� (
__field_name13� (
__Field_name14� (

field__name15� (

field__Name16� (
field_name17__� (
Field_name18__� (b

NestedMessage	
a (F
corecursive (21.protobuf_test_messages.proto2.TestAllTypesProto24
MapInt32Int32Entry
key (
value (:84
MapInt64Int64Entry
key (
value (:86
MapUint32Uint32Entry
key (

value (
:86
MapUint64Uint64Entry
key (
value (:86
MapSint32Sint32Entry
key (
value (:86
MapSint64Sint64Entry
key (
value (:88
MapFixed32Fixed32Entry
key (
value (:88
MapFixed64Fixed64Entry
key (
value (:8:
MapSfixed32Sfixed32Entry
key (
value (:8:
MapSfixed64Sfixed64Entry
key (
value (:84
MapInt32FloatEntry
key (
value (:85
MapInt32DoubleEntry
key (
value (:82
MapBoolBoolEntry
key (
value (:86
MapStringStringEntry
key (	
value (	:85
MapStringBytesEntry
key (	
value (:8~
MapStringNestedMessageEntry
key (	N
value (2?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage:8s
MapStringForeignMessageEntry
key (	B
value (23.protobuf_test_messages.proto2.ForeignMessageProto2:8x
MapStringNestedEnumEntry
key (	K
value (2<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum:8m
MapStringForeignEnumEntry
key (	?
value (20.protobuf_test_messages.proto2.ForeignEnumProto2:83
Data
group_int32� (
group_uint32� (
!
MessageSetCorrect*����:�
MessageSetCorrectExtension1
str (	2�
message_set_extensionC.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect��^ (2M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1�
MessageSetCorrectExtension2	
i	 (2�
message_set_extensionC.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect��� (2M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2"9

NestedEnum
FOO
BAR
BAZ
NEG���������*x�B
oneof_field"!
ForeignMessageProto2	
c (*F
ForeignEnumProto2
FOREIGN_FOO
FOREIGN_BAR
FOREIGN_BAZ:J
extension_int321.protobuf_test_messages.proto2.TestAllTypesProto2x (B/
(com.google.protobuf_test_messages.proto2H�tForeignEnumProto2t	full_names/protobuf_test_messages.proto2.ForeignEnumProto2tfilenametfiletvaluestFOREIGN_FOOtindextnumbertoptionsttypetFOREIGN_BARitFOREIGN_BAZitcontaining_typetserialized_starti�tserialized_endiixtextension_int32s-protobuf_test_messages.proto2.extension_int32itcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
NestedEnums;protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnumtFOOtBARtBAZtNEGi]i�t
NestedMessages>protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessagetfieldstas@protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage.atcorecursivesJprotobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage.corecursiveii
t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi�itMapInt32Int32EntrysCprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32EntrytkeysGprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry.keytvaluesIprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry.values8iiNtMapInt64Int64EntrysCprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64EntrysGprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry.keysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry.valueiPi�tMapUint32Uint32EntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry.keyi
sKprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry.valuei�i�tMapUint64Uint64EntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry.keyisKprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry.valuei�i�tMapSint32Sint32EntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry.keyisKprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry.valuei�i,tMapSint64Sint64EntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry.keyisKprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry.valuei.idtMapFixed32Fixed32EntrysGprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32EntrysKprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry.keyisMprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry.valueifi�tMapFixed64Fixed64EntrysGprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64EntrysKprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry.keyisMprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry.valuei�i�tMapSfixed32Sfixed32EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32EntrysMprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry.keyisOprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry.valuei�itMapSfixed64Sfixed64EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64EntrysMprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry.keyisOprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry.valueiiPtMapInt32FloatEntrysCprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntrysGprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry.keysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry.valueiRi�tMapInt32DoubleEntrysDprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntrysHprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry.keysJprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry.valuei�i�tMapBoolBoolEntrysAprotobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry.keyisGprotobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry.valuei�i�tMapStringStringEntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry.keyi	Rsutf-8sKprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry.valuei�i)tMapStringBytesEntrysDprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntrysHprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry.keysJprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry.valueii+i`tMapStringNestedMessageEntrysLprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntrysPprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry.keysRprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry.valueibi�tMapStringForeignMessageEntrysMprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntrysQprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.keysSprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.valuei�iUtMapStringNestedEnumEntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntrysMprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.keysOprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.valueiiWi�tMapStringForeignEnumEntrysJprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntrysNprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.keysPprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.valuei�i>tDatas5protobuf_test_messages.proto2.TestAllTypesProto2.Datatgroup_int32sAprotobuf_test_messages.proto2.TestAllTypesProto2.Data.group_int32i�tgroup_uint32sBprotobuf_test_messages.proto2.TestAllTypesProto2.Data.group_uint32i�i@istMessageSetCorrectsBprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectsi���iui�tMessageSetCorrectExtension1sLprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1tstrsPprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.stritmessage_set_extensionsbprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extensioni��i�iytMessageSetCorrectExtension2sLprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2tisNprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.isbprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extensioni�?i|i[tTestAllTypesProto2s0protobuf_test_messages.proto2.TestAllTypesProto2toptional_int32s?protobuf_test_messages.proto2.TestAllTypesProto2.optional_int32toptional_int64s?protobuf_test_messages.proto2.TestAllTypesProto2.optional_int64toptional_uint32s@protobuf_test_messages.proto2.TestAllTypesProto2.optional_uint32toptional_uint64s@protobuf_test_messages.proto2.TestAllTypesProto2.optional_uint64toptional_sint32s@protobuf_test_messages.proto2.TestAllTypesProto2.optional_sint32toptional_sint64s@protobuf_test_messages.proto2.TestAllTypesProto2.optional_sint64toptional_fixed32sAprotobuf_test_messages.proto2.TestAllTypesProto2.optional_fixed32toptional_fixed64sAprotobuf_test_messages.proto2.TestAllTypesProto2.optional_fixed64toptional_sfixed32sBprotobuf_test_messages.proto2.TestAllTypesProto2.optional_sfixed32toptional_sfixed64sBprotobuf_test_messages.proto2.TestAllTypesProto2.optional_sfixed64toptional_floats?protobuf_test_messages.proto2.TestAllTypesProto2.optional_floattoptional_doubles@protobuf_test_messages.proto2.TestAllTypesProto2.optional_doublet
optional_bools>protobuf_test_messages.proto2.TestAllTypesProto2.optional_booltoptional_strings@protobuf_test_messages.proto2.TestAllTypesProto2.optional_stringtoptional_bytess?protobuf_test_messages.proto2.TestAllTypesProto2.optional_bytestoptional_nested_messagesHprotobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_messagetoptional_foreign_messagesIprotobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_messageitoptional_nested_enumsEprotobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_enumitoptional_foreign_enumsFprotobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_enumitoptional_string_piecesFprotobuf_test_messages.proto2.TestAllTypesProto2.optional_string_pieceist
optional_cords>protobuf_test_messages.proto2.TestAllTypesProto2.optional_corditrecursive_messagesBprotobuf_test_messages.proto2.TestAllTypesProto2.recursive_messageitrepeated_int32s?protobuf_test_messages.proto2.TestAllTypesProto2.repeated_int32itrepeated_int64s?protobuf_test_messages.proto2.TestAllTypesProto2.repeated_int64ii trepeated_uint32s@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_uint32i!trepeated_uint64s@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_uint64i"trepeated_sint32s@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_sint32ii#trepeated_sint64s@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_sint64i$trepeated_fixed32sAprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_fixed32ii%trepeated_fixed64sAprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_fixed64ii&trepeated_sfixed32sBprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_sfixed32ii'trepeated_sfixed64sBprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_sfixed64i(trepeated_floats?protobuf_test_messages.proto2.TestAllTypesProto2.repeated_floati)trepeated_doubles@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_doublei*t
repeated_bools>protobuf_test_messages.proto2.TestAllTypesProto2.repeated_booli+trepeated_strings@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_stringi,trepeated_bytess?protobuf_test_messages.proto2.TestAllTypesProto2.repeated_bytesi-trepeated_nested_messagesHprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_messagei0trepeated_foreign_messagesIprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_messagei1trepeated_nested_enumsEprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_enumi3trepeated_foreign_enumsFprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_enumi4trepeated_string_piecesFprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_string_piecei6t
repeated_cords>protobuf_test_messages.proto2.TestAllTypesProto2.repeated_cordi7tmap_int32_int32s@protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_int32i8tmap_int64_int64s@protobuf_test_messages.proto2.TestAllTypesProto2.map_int64_int64i9tmap_uint32_uint32sBprotobuf_test_messages.proto2.TestAllTypesProto2.map_uint32_uint32i:tmap_uint64_uint64sBprotobuf_test_messages.proto2.TestAllTypesProto2.map_uint64_uint64i.i;tmap_sint32_sint32sBprotobuf_test_messages.proto2.TestAllTypesProto2.map_sint32_sint32i/i<tmap_sint64_sint64sBprotobuf_test_messages.proto2.TestAllTypesProto2.map_sint64_sint64i=tmap_fixed32_fixed32sDprotobuf_test_messages.proto2.TestAllTypesProto2.map_fixed32_fixed32i>tmap_fixed64_fixed64sDprotobuf_test_messages.proto2.TestAllTypesProto2.map_fixed64_fixed64i2i?tmap_sfixed32_sfixed32sFprotobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed32_sfixed32i@tmap_sfixed64_sfixed64sFprotobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed64_sfixed64iAtmap_int32_floats@protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_floati5iBtmap_int32_doublesAprotobuf_test_messages.proto2.TestAllTypesProto2.map_int32_doubleiCt
map_bool_bools>protobuf_test_messages.proto2.TestAllTypesProto2.map_bool_booliDtmap_string_stringsBprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_stringiEtmap_string_bytessAprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_bytesiFtmap_string_nested_messagesJprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_messageiGtmap_string_foreign_messagesKprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_messageiHtmap_string_nested_enumsGprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_enumiItmap_string_foreign_enumsHprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_enumiJtoneof_uint32s=protobuf_test_messages.proto2.TestAllTypesProto2.oneof_uint32iotoneof_nested_messagesEprotobuf_test_messages.proto2.TestAllTypesProto2.oneof_nested_messageiptoneof_strings=protobuf_test_messages.proto2.TestAllTypesProto2.oneof_stringiqtoneof_bytess<protobuf_test_messages.proto2.TestAllTypesProto2.oneof_bytesirt
oneof_bools;protobuf_test_messages.proto2.TestAllTypesProto2.oneof_boolistoneof_uint64s=protobuf_test_messages.proto2.TestAllTypesProto2.oneof_uint64ittoneof_floats<protobuf_test_messages.proto2.TestAllTypesProto2.oneof_floatiutoneof_doubles=protobuf_test_messages.proto2.TestAllTypesProto2.oneof_doubleivt
oneof_enums;protobuf_test_messages.proto2.TestAllTypesProto2.oneof_enumiwtdatas5protobuf_test_messages.proto2.TestAllTypesProto2.datai�t
fieldname1s;protobuf_test_messages.proto2.TestAllTypesProto2.fieldname1i�tfield_name2s<protobuf_test_messages.proto2.TestAllTypesProto2.field_name2i�t_field_name3s=protobuf_test_messages.proto2.TestAllTypesProto2._field_name3i�t
field__name4_s>protobuf_test_messages.proto2.TestAllTypesProto2.field__name4_iKi�tfield0name5s<protobuf_test_messages.proto2.TestAllTypesProto2.field0name5iLi�t
field_0_name6s>protobuf_test_messages.proto2.TestAllTypesProto2.field_0_name6iMi�t
fieldName7s;protobuf_test_messages.proto2.TestAllTypesProto2.fieldName7iNi�t
FieldName8s;protobuf_test_messages.proto2.TestAllTypesProto2.FieldName8iOi�tfield_Name9s<protobuf_test_messages.proto2.TestAllTypesProto2.field_Name9iPi�tField_Name10s=protobuf_test_messages.proto2.TestAllTypesProto2.Field_Name10iQi�tFIELD_NAME11s=protobuf_test_messages.proto2.TestAllTypesProto2.FIELD_NAME11iRi�tFIELD_name12s=protobuf_test_messages.proto2.TestAllTypesProto2.FIELD_name12iSi�t__field_name13s?protobuf_test_messages.proto2.TestAllTypesProto2.__field_name13iTi�t__Field_name14s?protobuf_test_messages.proto2.TestAllTypesProto2.__Field_name14iUi�t
field__name15s>protobuf_test_messages.proto2.TestAllTypesProto2.field__name15iVi�t
field__Name16s>protobuf_test_messages.proto2.TestAllTypesProto2.field__Name16iWi�tfield_name17__s?protobuf_test_messages.proto2.TestAllTypesProto2.field_name17__iXi�tField_name18__s?protobuf_test_messages.proto2.TestAllTypesProto2.Field_name18__iYi�toneof_fields<protobuf_test_messages.proto2.TestAllTypesProto2.oneof_fieldi�tForeignMessageProto2s2protobuf_test_messages.proto2.ForeignMessageProto2tcs4protobuf_test_messages.proto2.ForeignMessageProto2.ci�i�t
DESCRIPTORt
__module__s(google.protobuf.test_messages_proto2_pb2s/
(com.google.protobuf_test_messages.proto2H�(ii���(ixi�(rtsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbtFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_FOREIGNENUMPROTO2tRegisterEnumDescriptortEnumTypeWrapperRRRRtEXTENSION_INT32_FIELD_NUMBERtFieldDescriptortFalsetTrueRt_TESTALLTYPESPROTO2_NESTEDENUMt
Descriptort!_TESTALLTYPESPROTO2_NESTEDMESSAGEt
_ParseOptionstMessageOptionst&_TESTALLTYPESPROTO2_MAPINT32INT32ENTRYt&_TESTALLTYPESPROTO2_MAPINT64INT64ENTRYt(_TESTALLTYPESPROTO2_MAPUINT32UINT32ENTRYt(_TESTALLTYPESPROTO2_MAPUINT64UINT64ENTRYt(_TESTALLTYPESPROTO2_MAPSINT32SINT32ENTRYt(_TESTALLTYPESPROTO2_MAPSINT64SINT64ENTRYt*_TESTALLTYPESPROTO2_MAPFIXED32FIXED32ENTRYt*_TESTALLTYPESPROTO2_MAPFIXED64FIXED64ENTRYt,_TESTALLTYPESPROTO2_MAPSFIXED32SFIXED32ENTRYt,_TESTALLTYPESPROTO2_MAPSFIXED64SFIXED64ENTRYtfloatt&_TESTALLTYPESPROTO2_MAPINT32FLOATENTRYt'_TESTALLTYPESPROTO2_MAPINT32DOUBLEENTRYt$_TESTALLTYPESPROTO2_MAPBOOLBOOLENTRYtdecodet(_TESTALLTYPESPROTO2_MAPSTRINGSTRINGENTRYt'_TESTALLTYPESPROTO2_MAPSTRINGBYTESENTRYt/_TESTALLTYPESPROTO2_MAPSTRINGNESTEDMESSAGEENTRYt0_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNMESSAGEENTRYt,_TESTALLTYPESPROTO2_MAPSTRINGNESTEDENUMENTRYt-_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNENUMENTRYt_TESTALLTYPESPROTO2_DATAt%_TESTALLTYPESPROTO2_MESSAGESETCORRECTt/_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION1t/_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION2tFieldOptionstOneofDescriptort_TESTALLTYPESPROTO2t_FOREIGNMESSAGEPROTO2tfields_by_nameR$RR%toneofs_by_nameR.tappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRUtRegisterMessageR-R7R:R;R<R=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRORPRSR�tRegisterExtensionthas_optionstFileOptionst_options(((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto2_pb2.pyt<module>sJ
%						
							
																																																																																																																				$	$																					$	$																																															N																																







	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!(((PK�\+�K�||protobuf/unittest_pb2.pyonu�[����
���hcw@sZ0ddlZejddko%d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZddlmZdd
lmZe
j�ZddlmZy
ejZWn ek
r�ejjjZnXejddddddded�dejg�Zejdddddededejddddd d!d"ed#e�ejdd$dd%d d&d"ed#e�ejdd'dd(d d)d"ed#e�gd*ed"ed+d,d-d.�	Z ej!e �ej"e �Z#ejdd/dd0dededejdd1ddd d%d"ed#e�ejdd2dd%d d(d"ed#e�ejdd3dd(d dd"ed#e�ejdd4ddd d%d"ed#e�ejdd5dd!d d(d"ed#e�gd*ed"ej$ej%�ed6��d+d7d-d8�	Z&ej!e&�ej"e&�Z'ejdd9dd:dededejdd;ddd d<d"ed#e�ejdd=dd%d d>d"ed#e�ejdd?dd(d d@d"ed#e�ejddAddd dBd"ed#e�ejddCdd!d dDd"ed#e�ejddEdd&d dd"ed#e�ejddFdd)d d(d"ed#e�gd*ed"ed+dGd-dH�	Z(ej!e(�ej"e(�Z)d!Z*d&Z+d)Z,d%Z-d(Z.dZ/d%Z0d(Z1d<Z2d>Z3d@Z4dBZ5dDZ6dZ7d(Z8d%Z9ej:ddIddJddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe<dRed"ede�Z=d(Z>ej:ddSddTdd%d d(d#ddKd(dLd%dMe;dNddOedPed*edQe<dRed"ede�Z?dZ@ej:ddUddVdd(d dd#dWdKddLd%dMe;dNddOedPed*edQe<dRed"ede�ZAd!ZBej:ddXddYddd d!d#d!dKd!dLd%dMe;dNddOedPed*edQe<dRed"ede�ZCd&ZDej:ddZdd[dd!d d&d#d\dKd%dLd%dMe;dNddOedPed*edQe<dRed"ede�ZEd)ZFej:dd]dd^dd&d d)d#d_dKd(dLd%dMe;dNddOedPed*edQe<dRed"ede�ZGd`ZHej:ddaddbdd)d d`d#d`dKddLd%dMe;dNddOedPed*edQe<dRed"ede�ZIdcZJej:dddddedd`d dcd#d)dKd!dLd%dMe;dNddOedPed*edQe<dRed"ede�ZKdfZLej:ddgddhddcd dfd#didKd%dLd%dMe;dNddOedPed*edQe<dRed"ede�ZMdjZNej:ddkddlddfd djd#dmdKd(dLd%dMe;dNddOedPed*edQe<dRed"ede�ZOdnZPej:ddoddpddjd dnd#d(dKd)dLd%dMe;dNeQd�dOedPed*edQe<dRed"ede�ZRdqZSej:ddrddsddnd dqd#d%dKd&dLd%dMe;dNeQd�dOedPed*edQe<dRed"ede�ZTdWZUej:ddtdduddqd dWd#dcdKd`dLd%dMe;dNe;dOedPed*edQe<dRed"ede�ZVdvZWej:ddwddxddWd dvd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ede�ZYdiZZej:dd{dd|ddvd did#dqdKdfdLd%dMe;dNedy�dOedPed*edQe<dRed"ede�Z[dmZ\ej:dd}dd~ddid dmd#djdKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Z]d_Z^ej:dddd�ddmd d_d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Z_d�Z`ej:dd�dd�dd\d d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Zad�Zbej:dd�dd�dd_d d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Zcd�Zdej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd%dOedPed*edQe<dRed"ede�Zed�Zfej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd!dOedPed*edQe<dRed"ede�Zgd�Zhej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd`dOedPed*edQe<dRed"ede�Zid�Zjej:dd�dd�dd�d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ej$ejk�ed���de�Zld�Zmej:dd�dd�dd�d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ej$ejk�ed���de�Znd�Zoej:dd�dd�dd�d d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Zpd�Zqej:dd�dd�dd�d d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ej$ejk�ed���de�Zrd�Zsej:dd�dd�dd�d d�d#d&dKd%dLddMe;dNgdOedPed*edQe<dRed"ede�Ztd�Zuej:dd�dd�dd�d d�d#ddKd(dLddMe;dNgdOedPed*edQe<dRed"ede�Zvd�Zwej:dd�dd�dd�d d�d#dWdKddLddMe;dNgdOedPed*edQe<dRed"ede�Zxd�Zyej:dd�dd�dd�d d�d#d!dKd!dLddMe;dNgdOedPed*edQe<dRed"ede�Zzd�Z{ej:dd�dd�dd�d d�d#d\dKd%dLddMe;dNgdOedPed*edQe<dRed"ede�Z|d�Z}ej:dd�dd�dd�d d�d#d_dKd(dLddMe;dNgdOedPed*edQe<dRed"ede�Z~d�Zej:dd�dd�dd�d d�d#d`dKddLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#d)dKd!dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#didKd%dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dmdKd(dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#d(dKd)dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#d%dKd&dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dcdKd`dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dqdKdfdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#djdKdjdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed���de�Z�d�Z�ej:dd�dd�dd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed���de�Z�d�Z�ej:dd�dd�dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed���de�Z�d�Z�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#ddKd(dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dWdKddLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#d!dKd!dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#d\dKd%dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�ddddd d�d#d_dKd(dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�dZ�ej:dddddd�d dd#d`dKddLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�dZ�ej:ddddddd dd#d)dKd!dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d	Z�ej:dd
ddddd d	d#didKd%dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d
Z�ej:ddddddd d
d#dmdKd(dLd%dMe<dNddOedPed*edQe<dRed"ede�Z�dZ�ej:dddddd�d dd#d(dKd)dLd%dMe<dNeQd�dOedPed*edQe<dRed"ede�Z�dZ�ej:dddddd�d dd#d%dKd&dLd%dMe<dNeQd�dOedPed*edQe<dRed"ede�Z�dZ�ej:dddddd�d dd#dcdKd`dLd%dMe<dNe<dOedPed*edQe<dRed"ede�Z�dZ�ej:dddddd�d dd#dfdKdfdLd%dMe<dNed �jXdz�dOedPed*edQe<dRed"ede�Z�d!Z�ej:dd"dd#dd�d d!d#dqdKdfdLd%dMe<dNed$�dOedPed*edQe<dRed"ede�Z�d%Z�ej:dd&dd'dd�d d%d#dvdKdcdLd%dMe<dNd(dOedPed*edQe<dRed"ede�Z�d(Z�ej:dd)dd*ddd d(d#dvdKdcdLd%dMe<dNd&dOedPed*edQe<dRed"ede�Z�d+Z�ej:dd,dd-ddd d+d#dvdKdcdLd%dMe<dNdcdOedPed*edQe<dRed"ede�Z�d.Z�ej:dd/dd0dd	d d.d#dfdKdfdLd%dMe<dNed1�jXdz�dOedPed*edQe<dRed"ej$ejk�ed���de�Z�d2Z�ej:dd3dd4dd
d d2d#dfdKdfdLd%dMe<dNed5�jXdz�dOedPed*edQe<dRed"ej$ejk�ed���de�Z�d6Z�ej:dd7dd8ddd d6d#dWdKddLd%dMe;dNddOedPed*edQe<dRed"ede�Z�d9Z�ej:dd:dd;ddd d9d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Z�d<Z�ej:dd=dd>ddd d<d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ede�Z�d?Z�ej:dd@ddAddd d?d#dqdKdfdLd%dMe;dNedy�dOedPed*edQe<dRed"ede�Z�d�Z�ej:ddBddCdd!d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ede�Z�d&Z�ej:ddDddEddFd d&d#d&dKd%dLd%dMe;dNddOedPed*edQe<dRed"ede�Z�dGZ�ej:ddHddIddJd dGd#d&dKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dKZ�ej:ddLddMddNd dKd#ddKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dOZ�ej:ddPddQddRd dOd#dWdKddLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dSZ�ej:ddTddUddVd dSd#d!dKd!dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dWZ�ej:ddXddYdd%d dWd#d\dKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dZZ�ej:dd[dd\dd(d dZd#d_dKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�d]Z�ej:dd^dd_dd+d d]d#d`dKddLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�d`Z�ej:ddaddbdd.d d`d#d)dKd!dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dcZ�ej:dddddedd2d dcd#didKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dfZ�ej:ddgddhddid dfd#dmdKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�djZ�ej:ddkddlddmd djd#d(dKd)dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dnZ�ej:ddoddpddqd dnd#d%dKd&dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�drZ�ej:ddsddtddud drd#dcdKd`dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dvZ�ej:ddwddxddGd dvd#dvdKdcdLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dGZ�ej:ddyddzddKd dGd#d&dKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z�dKZ�ej:dd|dd}ddOd dKd#ddKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z�dOZ�ej:dd~ddddSd dOd#dWdKddLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z�dSZ�ej:dd�dd�ddWd dSd#d!dKd!dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z�dWZ�ej:dd�dd�ddZd dWd#d\dKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z�dZZ�ej:dd�dd�dd]d dZd#d_dKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Zd]Zej:dd�dd�dd`d d]d#d`dKddLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Zd`Zej:dd�dd�ddcd d`d#d)dKd!dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�ZdcZej:dd�dd�ddfd dcd#didKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�ZdfZej:dd�dd�ddjd dfd#dmdKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�ZdjZ	ej:dd�dd�ddnd djd#d(dKd)dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z
dnZej:dd�dd�ddrd dnd#d%dKd&dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�ZdrZ
ej:dd�dd�ddvd drd#dcdKd`dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�ZdvZej:dd�dd�dd�d dvd#dvdKdcdLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Zd�Zej:dd�dd�dd�d d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Zejdd�dd�dededejdd�ddd d%d"ed#e�ejdd�dd%d d(d"ed#e�ejdd3dd(d dd"ed#e�ejdd�ddd dd"ed#e�gd*ed"ed+d�d-d��	Zej!e�ejdd�dd�dededejdd�ddd d%d"ed#e�ejdd�dd%d d(d"ed#e�ejdd3dd(d dd"ed#e�gd*ed"ed+d�d-d��	Zej!e�ejdd�dd�dededejdd�ddd d�d"ed#e�ejdd�dd%d d�d"ed#e�ejdd�dd(d d�d"ed#e�gd*ed"ed+d�d-d��	Zej!e�ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Zejdd�dd�deded*ed�ej:dd�dd�ddd d\d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Zejdd�dd�deded*ed�ej:dd�dd�ddd d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Zejdd�dd�deded*ed�ej:dd�dd�ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#ddKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#dWdKddLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddd d!d#d!dKd!dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd!d d&d#d\dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd&d d)d#d_dKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd)d d`d#d`dKddLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd`d dcd#d)dKd!dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddcd dfd#didKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddfd djd#dmdKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddjd dnd#d(dKd)dLd%dMe;dNeQd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddnd dqd#d%dKd&dLd%dMe;dNeQd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddqd dWd#dcdKd`dLd%dMe;dNe;dOedPed*edQe;dRed"ede�ej:dd�dd�ddWd dvd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd�dd�ddvd did#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�ej:dd�dd�ddid dmd#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�ddmd d_d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd\d d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd_d d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd%dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd!dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd`dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd�dd�dd�d d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd�dd�dd�d d�d#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#ddKd(dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dWdKddLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#d!dKd!dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#d\dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#d_dKd(dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddd	dd�d d�d#d`dKddLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd
dddd�d d�d#d)dKd!dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddd
dd�d d�d#didKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dmdKd(dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#d(dKd)dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#d%dKd&dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dcdKd`dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dqdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#djdKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd dd!dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd"dd#dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd$dd%dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd&dd'dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd(dd)dd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd*dd+dd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd,dd-dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd.dd/dd�d d�d#d&dKd%dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd0dd1dd�d d�d#ddKd(dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd2dd3dd�d d�d#dWdKddLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd4dd5dd�d d�d#d!dKd!dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd6dd7dd�d d�d#d\dKd%dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd8dd9ddd d�d#d_dKd(dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd:dd;dd�d dd#d`dKddLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd<dd=ddd dd#d)dKd!dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd>dd?ddd d	d#didKd%dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd@ddAddd d
d#dmdKd(dLd%dMe<dNddOedPed*edQe;dRed"ede�ej:ddBddCdd�d dd#d(dKd)dLd%dMe<dNeQd�dOedPed*edQe;dRed"ede�ej:ddDddEdd�d dd#d%dKd&dLd%dMe<dNeQd�dOedPed*edQe;dRed"ede�ej:ddFddGdd�d dd#dcdKd`dLd%dMe<dNe<dOedPed*edQe;dRed"ede�ej:ddHddIdd�d dd#dfdKdfdLd%dMe<dNed �jXdz�dOedPed*edQe;dRed"ede�ej:ddJddKdd�d d!d#dqdKdfdLd%dMe<dNed$�dOedPed*edQe;dRed"ede�ej:ddLddMdd�d d%d#dvdKdcdLd%dMe<dNd(dOedPed*edQe;dRed"ede�ej:ddNddOddd d(d#dvdKdcdLd%dMe<dNd&dOedPed*edQe;dRed"ede�ej:ddPddQddd d+d#dvdKdcdLd%dMe<dNdcdOedPed*edQe;dRed"ede�ej:ddRddSdd	d d.d#dfdKdfdLd%dMe<dNed1�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddTddUdd
d d2d#dfdKdfdLd%dMe<dNed5�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddVddWddd d6d#dWdKddLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddXddYddd d9d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddZdd[ddd d<d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd\dd]ddd d?d#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�gKd�gd�eeegd�egd"ed�e;ddd�gd�ejdd^dd_ddd*ed�g�gd+dSd-d`�Zejddaddbdeded*ed�ej:ddcdddddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddeddfdd%d d(d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddgddhdd(d dd#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+did-dj�Zejddkddldeded*ed�ej:ddmddnddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ej$ejk�edo��de�gd�gd�gd�gd"ed�e;ddd�gd�gd+dpd-dq�Zejddrddsdeded*ed�gd�gd�gd�gd"ej$ej�edo��d�e;ddd�gd�gd+dtd-du�Zejddvddwdeded*ed�ej:ddxddyddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddzdd{dd%d d(d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d|d-d}�Z ejdd~dddeded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z!ejdd�dd�deded*ed�gd�gd�gd�gd"ed�e<ddd�d%d�fgd�gd+d�d-d��Z"ejdd�dd�deded*ed�ej:dd�dd�ddd d\d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z#ejdd�dd�deded*ed�ej:dd�dd�ddd d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z$ejdd�dd�deded*ed�gd�ej:dd�dd�ddd d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe<dRed"ede�ej:dd�dd�dd%d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ede�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z%ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#d&dKd%dLd(dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#d&dKd%dLd(dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddd d!d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd!d d&d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd&d d)d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd)d d`d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd`d dcd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddcd dfd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddfd djd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddjd dnd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddnd dqd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddqd dWd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddWd dvd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddvd did#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddid dmd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddmd d\d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd\d d_d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd_d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddxdd�dd�d d�d#d&dKd%dLd(dMe;dNddOedPed*edQe;dRed"ede�g!d�ej:dd�dd�ddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�ej:dd�dd�dd%d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ede�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z&ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z'ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#dndKdjdLd(dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z(ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z)ejdd�dd�deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d�Z*ejdddddeded*ed�gd�gd�gd�gd"ed�e<ddd�d%d�fgd�gd+dd-d�Z+ejdddddeded*ed�gd�gd�gd�gd"ed�e<ddd�d�d�fddfd	d�fgd�gd+d
d-d�Z,ejdddd
deded*ed�ej:dd�ddddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dddd%d dd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�Z-ejdddddeded*ed�ej:dd�ddddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dddddd%d d(d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�Z.ejdddddeded*ed�ej:dd�ddddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�Z/ejdddd deded*ed�ej:dd!dd"ddd dd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd#dd$dd%d d!d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d%d-d&�Z0ejdd'dd(deded*ed�ej:dd�dd)ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd*dd+dd%d d(d#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e/e0gd�gd"ed�e;ddd�gd�gd+d,d-d&�Z1ejdd-dd.deded*ed�ej:dd�dd/ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd0dd%d d(d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d1d-d2�Z2ejdddd3deded*ed�ej:dddd4ddd d(d#d&dKd%dLd(dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d5d-d6�Z3ejdddd7deded*ed�ej:dd*dd8ddd d%d#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e3gd�gd"ed�e;ddd�gd�gd+d9d-d6�Z4ejdd:dd;deded*ed�ej:dd!dd<ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e4gd�gd"ed�e;ddd�gd�gd+d=d-d6�Z5ejdd>dd?deded*ed�ej:dd�dd@ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dAd-dB�Z6ejddCddDdeded*ed�ej:dd�ddEddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dFd-dG�Z7ejddHddIdeded*ed�ej:dd�ddJddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddKddLdd%d d(d#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddMddNdd(d dd#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e6e7gd�gd"ed�e;ddd�gd�gd+dOd-dG�Z8ejddPddQdeded*ed�ej:dd!ddRddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ej$ejk�edS��de�gd�gd�gd�gd"ed�e;ddd�gd�gd+dTd-dU�Z9ejddVddWdeded*ed�ej:dd!ddXddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ej$ejk�ed���de�gd�gd�gd�gd"ed�e;ddd�gd�gd+dYd-dZ�Z:ejdd�dd[deded*ed�ej:dd\dd]ddd d%d#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd^dd_dd%d d(d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d`d-da�Z;ejddbddcdeded*ed�ej:dd�dddddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e;gd�gd"ed�e;ddd�gd�gd+ded-da�Z<ejddfddgdeded*ed�ej:ddhddiddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddjddkdd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:ddlddmdd(d dd#dvdKdcdLd%dMe;dNd!dOedPed*edQe;dRed"ede�ej:ddnddoddd d!d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddpddqdd!d d&d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddrddsdd&d d)d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddtddudd)d d`d#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:ddvddwdd`d dcd#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�ej:ddxddyddcd dfd#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ede�ej:ddzdd{ddfd djd#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd|dd}ddjd dnd#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd~ddddnd dqd#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed���de�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z=ejdd�dd�deded*ed�ej:dd�dd�ddd d(d#ddKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z>ejdd�dd�deded*ed�ej:dd�dd�ddd dnd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d%d#ddKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dnd#d(dKd)dLd%dMe;dNeQd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e>gd�gd"ed�e<ddd�d(dnfdqdnfgd�gd+d�d-d��Z?ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dqdKdfdLd%dMe<dNed��dOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#dWdKddLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#d!dKd!dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddd d!d#d&dKd%dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd!d d&d#ddKd(dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd&d d�d#d&dKd%dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd)d d�d#ddKd(dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd`d d)d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ede�ej:dd�dd�ddcd d`d#d(dKd)dLd%dMe<dNeQd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddfd dcd#d(dKd)dLd%dMe<dNeQd%�dOedPed*edQe;dRed"ede�ej:dd�dd�ddjd dfd#d(dKd)dLd%dMe<dNeQd��dOedPed*edQe;dRed"ede�ej:dd�dd�ddnd djd#d(dKd)dLd%dMe<dNeQd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddqd dnd#d(dKd)dLd%dMe<dNeQd��dOedPed*edQe;dRed"ede�ej:dd�dd�ddWd dqd#d(dKd)dLd%dMe<dNeQd��dOedPed*edQe;dRed"ede�ej:dd�dd�ddvd dWd#d(dKd)dLd%dMe<dNeQd��dOedPed*edQe;dRed"ede�ej:dd�dd�ddid dvd#d%dKd&dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddmd did#d%dKd&dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd\d dmd#d%dKd&dLd%dMe<dNd�ddOedPed*edQe;dRed"ede�ej:dd�dd�dd_d d\d#d(dKd)dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d_d#d(dKd)dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d(dKd)dLd%dMe<dNd�ddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dqdKdfdLd%dMe<dNed��dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z@ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dvdKdcdLd%dMe;dNd<dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZAejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZBejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZCejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZDejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dqdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZEejdd�dd�deded*ed�ej:dd�dd�ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZFejdddddeded*ed�ej:dd�ddddd d%d#dWdKddLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZGejdddddeded*ed�ej:dd�dd	ddd d%d#ddKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d
d-d�ZHejdddd
deded*ed�ej:dd�ddddd d%d#d!dKd!dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZIejdddddeded*ed�ej:dd�ddddd d%d#dcdKd`dLd%dMe;dNe;dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZJejdddddeded*ed�ej:dd�ddddd d&d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dddd%d d)d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZKejdddddeded*ed�ej:ddddddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd dd!dd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd"dd#dd(d dd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd$dd%ddd d!d#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�eKgd�gd"ed�e;ddd�gd�ejddKdd&ddd*ed�g�gd+d'd-d(�ZLejdddd)deded*ed�ej:dd�dd*ddd d&d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd+dd%d d)d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZMejdd,dd-deded*ed�ej:dddd.ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd dd/dd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd"dd0dd(d dd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd$dd1ddd d!d#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�eMgd�gd"ed�e;ddd�gd�gd+d2d-d3�ZNejdddd4deded*ed�ej:dd�dd5ddd dfd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd6dd%d djd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d7d-d8�ZOejdd�dd9deded*ed�ej:dd:dd;ddd d%d#ddKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd<dd=dd%d d(d#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d>d-d?�ZPejdd@ddAdeded*ed�ej:ddddBddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd ddCdd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:ddDddEdd(d dd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddFddGddd d!d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddHddIdd!d d&d#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�ej:ddJddKdd&d d)d#dvdKdcdLd%dMe;dNd%dOedPed*edQe;dRed"ede�ej:dd"ddLdd)d d`d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd$ddMdd`d dcd#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddNddOddcd dnd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddPddQddfd dqd#d&dKd%dLd%dMe<dNd&dOedPed*edQe;dRed"ede�ej:ddRddSddjd dWd#dfdKdfdLd%dMe<dNedT�jXdz�dOedPed*edQe;dRed"ede�ej:ddUddVddnd dvd#dfdKdfdLd%dMe<dNedW�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddXddYddqd did#dfdKdfdLd%dMe<dNedZ�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd[dd\ddWd dmd#dqdKdfdLd%dMe<dNed]�dOedPed*edQe;dRed"ede�ej:dd^dd_ddvd d\d#dvdKdcdLd%dMe<dNd(dOedPed*edQe;dRed"ede�ej:dd`ddaddid d_d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddbddcddmd d�d#dfdKdfdLd%dMe<dNed3�jXdz�dOedPed*edQe;dRed"ede�gd�gd�eOePgd�egd"ed�e;ddd�gd�ejddKdddddd*ed�g�ejddMddedd%d*ed�g�gd+dfd-dg�ZQejdd�ddhdeded*ed�ej:ddiddjddd d%d#d%dKd&dLd(dMe;dNeQd�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dkd-dl�ZRejddmddndeded*ed�ej:ddddoddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd ddpdd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd"ddqdd(d dd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�eRgd�gd"ed�e;ddd�gd�ejddKddrddd*ed�g�gd+dsd-dt�ZSejdduddvdeded*ed�ej:ddwddxddd dGd#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:ddyddzdd%d dKd#ddKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd{dd|dd(d dOd#dWdKddLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd}dd~ddd dSd#d!dKd!dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dddd�dd!d dWd#d\dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�dd&d dZd#d_dKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�dd)d d]d#d`dKddLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�dd`d d`d#d)dKd!dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddcd dcd#didKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddfd dfd#dmdKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddjd djd#d(dKd)dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddnd dnd#d%dKd&dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddqd drd#dcdKd`dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddWd dvd#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZTejdd�dd�deded*ed�ej:dd�dd�ddd dGd#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd%d dKd#ddKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd(d dOd#dWdKddLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddd dSd#d!dKd!dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd!d dWd#d\dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd&d dZd#d_dKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd)d d]d#d`dKddLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd`d d`d#d)dKd!dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddcd dcd#didKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddfd dfd#dmdKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddjd djd#d(dKd)dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddnd dnd#d%dKd&dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddqd drd#dcdKd`dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddWd dvd#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZUejdd�dd�deded*ed�gd�gd�gd�gd"ed�e<ddd�d%d�fgd�gd+d�d-d��ZVejdd�dd�deded*ed�gd�gd�gd�gd"ed�e<ddd�d%d�fgd�gd+d�d-d��ZWejdd�dd�deded*ed�ej:dd�dd�ddd d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZXejdd�dd�deded*ed�ej:dd�dd�ddd d�d#d`dKddLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d�d#dvdKdcdLd%dMe;dNd!dOedPed*edQe;dRed"ede�ej:dd�dd�dd(d d�d#dvdKdcdLd%dMe;dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd!d d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd&d d�d#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd)d d�d#d\dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�gd�gd�eXgd�egd"ed�e;ddd�gd�gd+d�d-d��ZYejdd�dd�deded*ed�ej:dddd�ddd dqd#d`dKddLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd%d dWd#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd
dd�dd(d d�d#d)dKd!dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�ddd d�d#ddKd(dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddd�dd!d d�d#d(dKd)dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddd�dd&d d�d#d!dKd!dLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZZejdd�dd�deded*ed�ej:dd�dd�ddd dnd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z[ejdd�dd�deded*ed�ej:dd�dd�ddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z\ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�ddd djd#djdKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd!d d�d#djdKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd&d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd)d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�e[e\gd�gd"ed�e;ddd�gd�gd+dd-d��Z]ejdd�dddeded*ed�ej:ddddddd dnd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d	�Z^ejdd�dd
deded*ed�ej:ddddddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d
d-d�Z_ejdddddeded*ed�ej:ddddddd d%d#dndKdjdLd(dMe;dNedOedPed*edQe;dRed"ede�ej:dddddd%d d(d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dddddd(d dd#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�ddddd djd#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dddddd!d d�d#djdKdjdLddMe;dNgdOedPed*edQe;dRed"ede�gd�ej:ddddddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�ej:dddddd%d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ede�gd�e]e^e_gd�gd"ed�e<ddd�d�d�fgd�gd+dd-d�Z`ejdddd deded*ed�ej:dd�dd!ddd d%d#dfdKdfdLd%dMe<dNed"�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d#d-d$�Zaejdd%dd&deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d'd-d(�Zbejdd)dd*deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d+d-d,�Zcejdd-dd.deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d/d-d0�Zdejdd1dd2deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d3d-d4�Zeejdd5dd6deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d7d-d8�Zfejdd9dd:deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d;d-d<�Zgejdd=dd>deded*ed�ej:dd?dd@ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddAddBdd%d d(d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddCddDdd(d dd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddEddFddd d!d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddGddHdd!d d&d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddIddJdd&d d)d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"edKdLde�gd�gd�gd�gd"ed�e;ddd�gd�gd+dMd-dN�Zhejdd�ddOdeded*ed�ej:ddPddQddd dRd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dSd-dT�ZiejddUddVdeded*ed�ej:ddWddXddd d%d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:ddYddZdd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ej$ej�ed[��d�e;ddd�gd�gd+d\d-d]�Zjejdd^dd_deded*ed�ej:dd�dd`ddd dad#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddbddcdd%d ddd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�ddedd(d dfd#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:ddwddgddd dhd#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:ddiddjdd!d dkd#dvdKdcdLd%dMe;dNd!dOedPed*edQe;dRed"ede�ej:dd�ddldd&d dmd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd�ddndd)d dod#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�ej:dd�ddpdd`d dqd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�ddrddcd dsd#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddtdduddfd dvd#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:ddVddwddjd dxd#dWdKddLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddyddzddnd d{d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddZdd|ddqd d}d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd\dd~ddWd dd#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�gd�gd�eiejgd�gd"ed�e<ddd�d�dafgd�ejdd^dd�ddd*ed�g�gd+d�d-d��Zkee_lee_lee_leejmd�_neejmd�_ne ejmd�_nejoejmd�_neejmd�_pe ejmd�_pejqejmd�_pejrejmd�_neejmd�_neejmd_neejmd_ne ejmd_nejoejmd _neejmd"_pe ejmd$_pejqejmd&_peejmd,_neejmdL_pe ejmdN_pejqejmdP_peejmdX_nee_lejsd^jtjuejmdV�ejsd^ejmdV_vejsd^jtjuejmdX�ejsd^ejmdX_vejsd^jtjuejmdZ�ejsd^ejmdZ_vejsd^jtjuejmd\�ejsd^ejmd\_veejmdc_neejmde_neejmdg_ne&e'jmd�_ne&e'jmd�_ne&e(jmd�_ne&e(jmd�_ne&e(jmd�_nee)jmd�_ne.e.jmd�_ne2e/jmd�_ne1e/_le/e0jmd!_nee0jmd#_ne1e0_le2e1jmd�_ne0e1jmd*_ne1e2jmd�_ne4e3_le3e4jmd*_ne5e4_le4e5jmd!_ne8e6_le8e7_le6e8jmdK_ne7e8jmdM_nee9jmd!_nee:jmd!_ne e;jmd^_ne<e;_le;e<jmd�_ne e=jmdl_pe e=jmdn_ne e=jmdx_pe e=jmdz_ne?e>_le>e?jmd�_ne(eAjmd�_peLeK_leeLjmd"_neKeLjmd$_neLjsdKjtjueLjmd�eLjsdKeLjmd_veLjsdKjtjueLjmd �eLjsdKeLjmd _veLjsdKjtjueLjmd"�eLjsdKeLjmd"_veLjsdKjtjueLjmd$�eLjsdKeLjmd$_veNeM_leeNjmd"_neMeNjmd$_neQeO_leQeP_leeQjmdJ_pePeQjmd"_neOeQjmd$_nePeQjmdN_neeQjmd^_peQe_leQjsdKjtjueQjmd�eQjsdKeQjmd_veQjsdKjtjueQjmd �eQjsdKeQjmd _veQjsdKjtjueQjmdD�eQjsdKeQjmdD_veQjsdKjtjueQjmdF�eQjsdKeQjmdF_veQjsdKjtjueQjmdH�eQjsdKeQjmdH_veQjsdKjtjueQjmdJ�eQjsdKeQjmdJ_veQjsdKjtjueQjmd"�eQjsdKeQjmd"_veQjsdKjtjueQjmd$�eQjsdKeQjmd$_veQjsdKjtjueQjmdN�eQjsdKeQjmdN_veQjsdMjtjueQjmdP�eQjsdMeQjmdP_veQjsdMjtjueQjmdR�eQjsdMeQjmdR_veQjsdMjtjueQjmdU�eQjsdMeQjmdU_veQjsdMjtjueQjmdX�eQjsdMeQjmdX_veQjsdMjtjueQjmd[�eQjsdMeQjmd[_veQjsdMjtjueQjmd^�eQjsdMeQjmd^_veSeR_leReSjmd"_neSjsdKjtjueSjmd�eSjsdKeSjmd_veSjsdKjtjueSjmd �eSjsdKeSjmd _veSjsdKjtjueSjmd"�eSjsdKeSjmd"_ve eTjmd�_pe eUjmd�_peYeX_le eYjmd�_peeYjmd�_pe eYjmd�_neXeYjmd�_neYe_lee[jmd�_ne]e[_lee\jmd�_ne]e\_lee]jmd�_nee]jmd�_nee]jmd�_ne[e]jmd�_ne\e]jmd�_nee]jmd_nee]jmd_ne`e]_lee^jmd_ne`e^_lee_jmd_ne`e__lee`jmd_nee`jmd_nee`jmd_ne^e`jmd�_ne_e`jmd_nekei_lekej_le ekjmdi_pe ekjmd�_neiekjmd�_nejekjmdt_neekjmdy_nekjsd^jtjuekjmdV�ekjsd^ekjmdV_vekjsd^jtjuekjmdy�ekjsd^ekjmdy_vekjsd^jtjuekjmdZ�ekjsd^ekjmdZ_vekjsd^jtjuekjmd\�ekjsd^ekjmd\_veejwd�<eejwda<eejwdk<eejwdr<e ejwdv<e!ejwd~<e"ejwd�<e#ejwd�<e$ejwd�<e%ejwd�<e&ejwd�<e'ejwd�<e(ejwd�<e)ejwd�<e*ejwd�<e+ejwd<e,ejwd<e-ejwd<e.ejwd<e1ejwd'<e2ejwd-<e5ejwd:<e8ejwdH<e9ejwdP<e:ejwdV<e<ejwdb<e=ejwdf<e?ejwd�<e@ejwd�<eAejwd�<eBejwd�<eCejwd�<eDejwd�<eEejwd�<eFejwd�<eGejwd<eHejwd<eIejwd<eJejwd<eLejwd<eNejwd,<eQejwd@<eSejwdm<eTejwdu<eUejwd�<eVejwd�<eWejwd�<eYejwd�<eZejwd�<e`ejwd<eaejwd<ebejwd%<ecejwd)<edejwd-<eeejwd1<efejwd5<egejwd9<ehejwd=<ekejwd^<e ejxd<e&ejxd/<e(ejxd9<e=ejydI<e?ejydS<eAejydU<eCejydX<eEejydZ<eGejyd]<eIejyda<eKejydd<eMejydg<eOejydk<eRejydo<eTejydr<eVejydt<eYejydw<e[ejyd{<e]ejyd}<e_ejyd<eaejyd�<ecejyd�<eeejyd�<egejyd�<eiejyd�<elejyd�<enejyd�<epejyd�<erejyd�<etejyd�<evejyd�<exejyd�<ezejyd�<e|ejyd�<e~ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd<e�ejyd<e�ejyd
<e�ejyd<e�ejyd<e�ejyd<e�ejyd<e�ejyd<e�ejyd"<e�ejyd&<e�ejyd)<e�ejyd,<e�ejyd/<e�ejyd3<e�ejyd7<e�ejyd:<e�ejyd=<e�ejyd@<e�ejydB<e�ejydD<e�ejydH<e�ejydL<e�ejydP<e�ejydT<e�ejydX<e�ejyd[<e�ejyd^<e�ejyda<e�ejydd<e�ejydg<e�ejydk<e�ejydo<e�ejyds<e�ejydw<e�ejydy<e�ejyd|<e�ejyd~<e�ejyd�<e�ejyd�<eejyd�<eejyd�<eejyd�<eejyd�<eejyd�<e
ejyd�<eejyd�<eejyd�<eejyd�<eejyd�<ejze�ej{d�e	j|fe}d�ej{d�e	j|fe}d�ed�d���d�ej{d�e	j|fe}d�ed�d���d�ej{d�e	j|fe}d�ed�d���d�ed�d���Z~eje~�eje~j��eje~j��eje~j��ej{dae	j|fe}d�ed�d���Z�eje��ej{dke	j|fe}d�ed�d���Z�eje��ej{dre	j|fe}d�ed�d���Z�eje��ej{dve	j|fe}d�e d�d���Z�eje��ej{d~e	j|fe}d�e!d�d���Z�eje��ej{d�e	j|fe}d�e"d�d���Z�eje��ej{d�e	j|fe}d�e#d�d���Z�eje��ej{d�e	j|fe}d�e$d�d���Z�eje��ej{d�e	j|fe}d�e%d�d���Z�eje��ej{d�e	j|fe}d�e&d�d���Z�eje��ej{d�e	j|fe}d�e'd�d���Z�eje��ej{d�e	j|fe}d�e(d�d���Z�eje��ej{d�e	j|fe}d�e)d�d���Z�eje��ej{d�e	j|fe}d�e*d�d���Z�eje��ej{de	j|fe}d�e+d�d���Z�eje��ej{de	j|fe}d�e,d�d���Z�eje��ej{de	j|fe}d�e-d�d���Z�eje��ej{de	j|fe}d�e.d�d���Z�eje��ej{d'e	j|fe}dej{de	j|fe}d�e/d�d���dej{de	j|fe}d�e0d�d���d�e1d�d���Z�eje��eje�j��eje�j��ej{d-e	j|fe}d�e2d�d���Z�eje��ej{d:e	j|fe}dej{de	j|fe}dej{de	j|fe}d�e3d�d���d�e4d�d���d�e5d�d���Z�eje��eje�j��eje�j�j��ej{dHe	j|fe}d>ej{d>e	j|fe}d�e6d�d���dCej{dCe	j|fe}d�e7d�d���d�e8d�d���Z�eje��eje�j��eje�j��ej{dPe	j|fe}d�e9d�d���Z�eje��ej{dVe	j|fe}d�e:d�d���Z�eje��ej{dbe	j|fe}d�ej{d�e	j|fe}d�e;d�d���d�e<d�d���Z�eje��eje�j��ej{dfe	j|fe}d�e=d�d���Z�eje��ej{d�e	j|fe}d�ej{d�e	j|fe}d�e>d�d���d�e?d�d���Z�eje��eje�j��ej{d�e	j|fe}d�e@d�d���Z�eje��ej{d�e	j|fe}d�eAd�d���Z�eje��ej{d�e	j|fe}d�eBd�d���Z�eje��ej{d�e	j|fe}d�eCd�d���Z�eje��ej{d�e	j|fe}d�eDd�d���Z�eje��ej{d�e	j|fe}d�eEd�d���Z�eje��ej{d�e	j|fe}d�eFd�d���Z�eje��ej{de	j|fe}d�eGd�d���Z�eje��ej{de	j|fe}d�eHd�d���Z�eje��ej{de	j|fe}d�eId�d���Z�eje��ej{de	j|fe}d�eJd�d���Z�eje��ej{de	j|fe}dej{de	j|fe}d�eKd�d���d�eLd�d���Z�eje��eje�j��ej{d,e	j|fe}dej{de	j|fe}d�eMd�d���d�eNd�d���Z�eje��eje�j��ej{d@e	j|fe}dej{de	j|fe}d�eOd�d���d�ej{d�e	j|fe}d�ePd�d���d�eQd�d���Z�eje��eje�j��eje�j��ej{dme	j|fe}d�ej{d�e	j|fe}d�eRd�d���d�eSd�d���Z�eje��eje�j��ej{due	j|fe}d�eTd�d���Z�eje��ej{d�e	j|fe}d�eUd�d���Z�eje��ej{d�e	j|fe}d�eVd�d���Z�eje��ej{d�e	j|fe}d�eWd�d���Z�eje��ej{d�e	j|fe}d�ej{d�e	j|fe}d�eXd�d���d�eYd�d���Z�eje��eje�j��ej{d�e	j|fe}d�eZd�d���Z�eje��ej{de	j|fe}d�ej{d�e	j|fe}d�ej{d�e	j|fe}d�e[d�d���d�ej{d�e	j|fe}d�e\d�d���d�e]d�d���d�ej{d�e	j|fe}d�e^d�d���d�ej{d�e	j|fe}d�e_d�d���d�e`d�d���Z�eje��eje�j��eje�j�j��eje�j�j��eje�j��eje�j��ej{de	j|fe}d�ead�d���Z�eje��ej{d%e	j|fe}d�ebd�d���Z�eje��ej{d)e	j|fe}d�ecd�d���Z�eje��ej{d-e	j|fe}d�edd�d���Z�eje��ej{d1e	j|fe}d�eed�d���Z�eje��ej{d5e	j|fe}d�efd�d���Z�eje��ej{d9e	j|fe}d�egd�d���Z�eje��ej{d=e	j|fe}d�ehd�d���Z�eje��ej{d^e	j|fe}d�ej{d�e	j|fe}d�eid�d���dUej{dUe	j|fe}d�ejd�d���d�ekd�d���Z�eje��eje�j��eje�j��e�j�e=�e�j�e?�e�j�eA�e�j�eC�e�j�eE�e�j�eG�e�j�eI�e�j�eK�e�j�eM�e�j�eO�e�j�eR�e�j�eT�e�j�eV�e�j�eY�e�j�e[�e#e]_ne�j�e]�ee__ne�j�e_�e ea_ne�j�ea�ejoec_ne�j�ec�eee_pe�j�ee�e eg_pe�j�eg�ejqei_pe�j�ei�e�j�el�e�j�en�ejrep_ne�j�ep�eer_ne�j�er�e�j�et�e�j�ev�e�j�ex�e�j�ez�e�j�e|�e�j�e~�e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e$e�_ne�j�e��ee�_ne�j�e��e e�_ne�j�e��ejoe�_ne�j�e��ee�_pe�j�e��e e�_pe�j�e��ejqe�_pe�j�e��e�j�e��e�j�e��ee�_ne�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��ee�_pe�j�e��e e�_pe�j�e��ejqe�_pe�j�e��e�j�e��e�j�e��e�j�e��ee�_ne�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e e�_pe�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e�e�j�e�e�j�e�e�j�e�e�j�e�e�j�e
�e�j�e�e�j�e�e e_pe�j�e�ee_ne�j�e�e�j�e%jyd��e�j�e%jyd��e&e&jyd�_ne�j�e&jyd��e&e&jyd�_ne�j�e&jyd��ee`jyd_ne�j�e`jyd�ee`jyd_ne�j�e`jyd�e<e_�ej$ej��ed���e_�e<e&_�ej$ej%�ed6��e&_�e<el_�ej$ejk�ed���el_�e<en_�ej$ejk�ed���en_�e<er_�ej$ejk�ed���er_�e<e�_�ej$ejk�ed���e�_�e<e�_�ej$ejk�ed���e�_�e<e�_�ej$ejk�ed���e�_�e<e�_�ej$ejk�ed���e�_�e<e�_�ej$ejk�ed���e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed{��e�_�e<e�_�ej$ejk�ed{��e�_�e<e�_�ej$ejk�ed{��e�_�e<e�_�ej$ejk�ed{��e�_�e<e�_�ej$ejk�ed{��e�_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<e
_�ej$ejk�ed{��e
_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<ejmd�_�ej$ejk�ed���ejmd�_�e<ejmd�_�ej$ejk�ed���ejmd�_�e<ejmd�_�ej$ejk�ed���ejmd�_�e<ejmd(_�ej$ejk�ed���ejmd(_�e<ejmd*_�ej$ejk�ed���ejmd*_�e<ejmd,_�ej$ejk�ed���ejmd,_�e<ejmdR_�ej$ejk�ed���ejmdR_�e<ejmdT_�ej$ejk�ed���ejmdT_�e<ejmdm_�ej$ejk�edo��ejmdm_�e<e_�ej$ej�edo��e_�e<e9jmd!_�ej$ejk�edS��e9jmd!_�e<e:jmd!_�ej$ejk�ed���e:jmd!_�e<e=jmdp_�ej$ejk�ed���e=jmdp_�e<e=jmdr_�ej$ejk�ed���e=jmdr_�e<e=jmd|_�ej$ejk�ed���e=jmd|_�e<e=jmd~_�ej$ejk�ed���e=jmd~_�e<e@jmd�_�ej$ejk�ed���e@jmd�_�e<e@jmd�_�ej$ejk�ed���e@jmd�_�e<eQjmdD_�ej$ejk�ed���eQjmdD_�e<eQjmdF_�ej$ejk�ed���eQjmdF_�e<eQjmdN_�ej$ejk�ed���eQjmdN_�e<eQjmdU_�ej$ejk�ed���eQjmdU_�e<eQjmdX_�ej$ejk�ed���eQjmdX_�e<eTjmdw_�ej$ejk�ed6��eTjmdw_�e<eTjmdy_�ej$ejk�ed6��eTjmdy_�e<eTjmd{_�ej$ejk�ed6��eTjmd{_�e<eTjmd}_�ej$ejk�ed6��eTjmd}_�e<eTjmd_�ej$ejk�ed6��eTjmd_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eYjmd�_�ej$ejk�ed6��eYjmd�_�e<ej_�ej$ej�ed[��ej_�e<ekjmd�_�ej$ejk�ed{��ekjmd�_�e<ekjmdw_�ej$ejk�ed6��ekjmdw_�ej�dd�dd�deddd"ed+d�d-d�d�ej�dd>dd�ddd�ed�ebd�ecd"e�ej�ddCdd�dd%d�ed�efd�egd"e�g�Z�ej�e��e�ej�d�<ej�d�ej�fe}d�e�d�d���Z�ej�d�e�fe}d�e�d�d���Z�dS(�i����NiicCs|S(N((tx((s@/usr/lib/python2.7/site-packages/google/protobuf/unittest_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s@/usr/lib/python2.7/site-packages/google/protobuf/unittest_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tservice(tservice_reflection(tdescriptor_pb2(tunittest_import_pb2tnamesgoogle/protobuf/unittest.prototpackagetprotobuf_unittesttsyntaxtproto2t
serialized_pbs~\
google/protobuf/unittest.protoprotobuf_unittest%google/protobuf/unittest_import.proto"�
TestAllTypes
optional_int32 (
optional_int64 (
optional_uint32 (

optional_uint64 (
optional_sint32 (
optional_sint64 (
optional_fixed32 (
optional_fixed64 (
optional_sfixed32	 (
optional_sfixed64
 (
optional_float (
optional_double (

optional_bool
 (
optional_string (	
optional_bytes (D

optionalgroup (
2-.protobuf_unittest.TestAllTypes.OptionalGroupN
optional_nested_message (2-.protobuf_unittest.TestAllTypes.NestedMessageC
optional_foreign_message (2!.protobuf_unittest.ForeignMessageH
optional_import_message (2'.protobuf_unittest_import.ImportMessageH
optional_nested_enum (2*.protobuf_unittest.TestAllTypes.NestedEnum=
optional_foreign_enum (2.protobuf_unittest.ForeignEnumB
optional_import_enum (2$.protobuf_unittest_import.ImportEnum!
optional_string_piece (	B

optional_cord (	BU
optional_public_import_message (2-.protobuf_unittest_import.PublicImportMessageP
optional_lazy_message (2-.protobuf_unittest.TestAllTypes.NestedMessageB(
repeated_int32 (
repeated_int64  (
repeated_uint32! (

repeated_uint64" (
repeated_sint32# (
repeated_sint64$ (
repeated_fixed32% (
repeated_fixed64& (
repeated_sfixed32' (
repeated_sfixed64( (
repeated_float) (
repeated_double* (

repeated_bool+ (
repeated_string, (	
repeated_bytes- (D

repeatedgroup. (
2-.protobuf_unittest.TestAllTypes.RepeatedGroupN
repeated_nested_message0 (2-.protobuf_unittest.TestAllTypes.NestedMessageC
repeated_foreign_message1 (2!.protobuf_unittest.ForeignMessageH
repeated_import_message2 (2'.protobuf_unittest_import.ImportMessageH
repeated_nested_enum3 (2*.protobuf_unittest.TestAllTypes.NestedEnum=
repeated_foreign_enum4 (2.protobuf_unittest.ForeignEnumB
repeated_import_enum5 (2$.protobuf_unittest_import.ImportEnum!
repeated_string_piece6 (	B

repeated_cord7 (	BP
repeated_lazy_message9 (2-.protobuf_unittest.TestAllTypes.NestedMessageB(

default_int32= (:41

default_int64> (:42
default_uint32? (
:43
default_uint64@ (:44
default_sint32A (:-45
default_sint64B (:46
default_fixed32C (:47
default_fixed64D (:48
default_sfixed32E (:49
default_sfixed64F (:-50

default_floatG (:51.5
default_doubleH (:52000
default_boolI (:true
default_stringJ (	:hello

default_bytesK (:worldL
default_nested_enumQ (2*.protobuf_unittest.TestAllTypes.NestedEnum:BARI
default_foreign_enumR (2.protobuf_unittest.ForeignEnum:FOREIGN_BARM
default_import_enumS (2$.protobuf_unittest_import.ImportEnum:
IMPORT_BAR%
default_string_pieceT (	:abcB
default_cordU (	:123B
oneof_uint32o (
HM
oneof_nested_messagep (2-.protobuf_unittest.TestAllTypes.NestedMessageH
oneof_stringq (	H
oneof_bytesr (H

NestedMessage

bb (

OptionalGroup	
a (

RepeatedGroup	
a/ ("9

NestedEnum
FOO
BAR
BAZ
NEG���������B
oneof_field"�
NestedTestAllTypes4
child (2%.protobuf_unittest.NestedTestAllTypes0
payload (2.protobuf_unittest.TestAllTypes=
repeated_child (2%.protobuf_unittest.NestedTestAllTypes"4
TestDeprecatedFields
deprecated_int32 (B"
TestDeprecatedMessage:"&
ForeignMessage	
c (	
d ("0
TestReservedFieldsJJJ	RbarRbaz"
TestAllExtensions*����"$
OptionalGroup_extension	
a ("$
RepeatedGroup_extension	
a/ ("�
TestNestedExtension29
test$.protobuf_unittest.TestAllExtensions� (	:test2F
nested_string_extension$.protobuf_unittest.TestAllExtensions� (	"�
TestRequired	
a (
dummy2 (	
b (
dummy4 (
dummy5 (
dummy6 (
dummy7 (
dummy8 (
dummy9	 (
dummy10
 (
dummy11 (
dummy12 (
dummy13
 (
dummy14 (
dummy15 (
dummy16 (
dummy17 (
dummy18 (
dummy19 (
dummy20 (
dummy21 (
dummy22 (
dummy23 (
dummy24 (
dummy25 (
dummy26 (
dummy27 (
dummy28 (
dummy29 (
dummy30 (
dummy31 (
dummy32  (	
c! (2V
single$.protobuf_unittest.TestAllExtensions� (2.protobuf_unittest.TestRequired2U
multi$.protobuf_unittest.TestAllExtensions� (2.protobuf_unittest.TestRequired"�
TestRequiredForeign9
optional_message (2.protobuf_unittest.TestRequired9
repeated_message (2.protobuf_unittest.TestRequired
dummy ("�
TestRequiredMessage9
optional_message (2.protobuf_unittest.TestRequired9
repeated_message (2.protobuf_unittest.TestRequired9
required_message (2.protobuf_unittest.TestRequired"Z
TestForeignNestedE
foreign_nested (2-.protobuf_unittest.TestAllTypes.NestedMessage"
TestEmptyMessage"*
TestEmptyMessageWithExtensions*����"7
TestMultipleExtensionRanges**+*� �!*
������"4
TestReallyLargeTagNumber	
a (
bb��� ("U
TestRecursiveMessage2
a (2'.protobuf_unittest.TestRecursiveMessage	
i ("�
TestMutualRecursionA3
bb (2'.protobuf_unittest.TestMutualRecursionBB
subgroup (
20.protobuf_unittest.TestMutualRecursionA.SubGroup@

SubMessage2
b (2'.protobuf_unittest.TestMutualRecursionB�
SubGroupG
sub_message (22.protobuf_unittest.TestMutualRecursionA.SubMessage8
not_in_this_scc (2.protobuf_unittest.TestAllTypes"b
TestMutualRecursionB2
a (2'.protobuf_unittest.TestMutualRecursionA
optional_int32 ("�
TestIsInitializedD
sub_message (2/.protobuf_unittest.TestIsInitialized.SubMessageo

SubMessageJ
subgroup (
28.protobuf_unittest.TestIsInitialized.SubMessage.SubGroup
SubGroup	
i ("�
TestDupFieldNumber	
a (6
foo (
2).protobuf_unittest.TestDupFieldNumber.Foo6
bar (
2).protobuf_unittest.TestDupFieldNumber.Bar
Foo	
a (
Bar	
a ("L
TestEagerMessage8
sub_message (2.protobuf_unittest.TestAllTypesB("K
TestLazyMessage8
sub_message (2.protobuf_unittest.TestAllTypesB("�
TestNestedMessageHasBitsZ
optional_nested_message (29.protobuf_unittest.TestNestedMessageHasBits.NestedMessage�

NestedMessage$
nestedmessage_repeated_int32 (P
%nestedmessage_repeated_foreignmessage (2!.protobuf_unittest.ForeignMessage"�
TestCamelCaseFieldNames
PrimitiveField (
StringField (	1
	EnumField (2.protobuf_unittest.ForeignEnum7
MessageField (2!.protobuf_unittest.ForeignMessage
StringPieceField (	B
	CordField (	B
RepeatedPrimitiveField (
RepeatedStringField (	9
RepeatedEnumField	 (2.protobuf_unittest.ForeignEnum?
RepeatedMessageField
 (2!.protobuf_unittest.ForeignMessage$
RepeatedStringPieceField (	B
RepeatedCordField (	B"�
TestFieldOrderings
	my_string (	
my_int (
my_floate (U
optional_nested_message� (23.protobuf_unittest.TestFieldOrderings.NestedMessage'

NestedMessage

oo (

bb (**e"�
TestExtremeDefaultValues?

escaped_bytes (:(\000\001\007\010\014\n\r\t\013\\\'\"\376 
large_uint32 (
:
4294967295*
large_uint64 (:18446744073709551615 
small_int32 (:-2147483647)
small_int64 (:-9223372036854775807'
really_small_int32 (:-21474836480
really_small_int64 (:-9223372036854775808
utf8_string (	:ሴ

zero_float (:0
	one_float (:1
small_float	 (:1.5
negative_one_float
 (:-1
negative_float (:-1.5
large_float (:2e+08$
small_negative_float
 (:-8e-28

inf_double (:inf
neg_inf_double (:-inf

nan_double (:nan
	inf_float (:inf

neg_inf_float (:-inf
	nan_float (:nan+
cpp_trigraph (	:? ? ?? ?? ??? ??/ ??- 
string_with_zero (	:hello"
bytes_with_zero (:	wor\000ld(
string_piece_with_zero (	:abcB 
cord_with_zero (	:123B&
replacement_string (	:
${unknown}"K
SparseEnumMessage6
sparse_enum (2!.protobuf_unittest.TestSparseEnum"
	OneString
data (	"

MoreString
data (	"
OneBytes
data ("
	MoreBytes
data ("
Int32Message
data ("

Uint32Message
data (
"
Int64Message
data ("

Uint64Message
data ("
BoolMessage
data ("�
	TestOneof
foo_int (H

foo_string (	H6
foo_message (2.protobuf_unittest.TestAllTypesH9
foogroup (
2%.protobuf_unittest.TestOneof.FooGroupH 
FooGroup	
a (	
b (	B
foo"�
TestOneofBackwardsCompatible
foo_int (

foo_string (	4
foo_message (2.protobuf_unittest.TestAllTypesJ
foogroup (
28.protobuf_unittest.TestOneofBackwardsCompatible.FooGroup 
FooGroup	
a (	
b (	"�

TestOneof2
foo_int (H

foo_string (	H
foo_cord (	BH
foo_string_piece (	BH
	foo_bytes (H<
foo_enum (2(.protobuf_unittest.TestOneof2.NestedEnumHB
foo_message (2+.protobuf_unittest.TestOneof2.NestedMessageH:
foogroup (
2&.protobuf_unittest.TestOneof2.FooGroupHK
foo_lazy_message (2+.protobuf_unittest.TestOneof2.NestedMessageB(H
bar_int (:5H

bar_string
 (	:STRINGH
bar_cord (	:CORDBH&
bar_string_piece (	:SPIECEBH
	bar_bytes (:BYTESHA
bar_enum (2(.protobuf_unittest.TestOneof2.NestedEnum:BARH
baz_int (

baz_string (	:BAZ 
FooGroup	
a	 (	
b
 (	3

NestedMessage
qux_int (
	corge_int ("'

NestedEnum
FOO
BAR
BAZB
fooB
bar"�
TestRequiredOneof
foo_int (H

foo_string (	HI
foo_message (22.protobuf_unittest.TestRequiredOneof.NestedMessageH(

NestedMessage
required_double (B
foo"�
TestPackedTypes
packed_int32Z (B
packed_int64[ (B

packed_uint32\ (
B

packed_uint64] (B

packed_sint32^ (B

packed_sint64_ (B
packed_fixed32` (B
packed_fixed64a (B
packed_sfixed32b (B
packed_sfixed64c (B
packed_floatd (B

packed_doublee (B
packed_boolf (B7
packed_enumg (2.protobuf_unittest.ForeignEnumB"�
TestUnpackedTypes
unpacked_int32Z (B
unpacked_int64[ (B
unpacked_uint32\ (
B
unpacked_uint64] (B
unpacked_sint32^ (B
unpacked_sint64_ (B
unpacked_fixed32` (B
unpacked_fixed64a (B
unpacked_sfixed32b (B
unpacked_sfixed64c (B
unpacked_floatd (B
unpacked_doublee (B

unpacked_boolf (B9

unpacked_enumg (2.protobuf_unittest.ForeignEnumB" 
TestPackedExtensions*����""
TestUnpackedExtensions*����"�
TestDynamicExtensions
scalar_extension� (7
enum_extension� (2.protobuf_unittest.ForeignEnumY
dynamic_enum_extension� (28.protobuf_unittest.TestDynamicExtensions.DynamicEnumType=
message_extension� (2!.protobuf_unittest.ForeignMessage_
dynamic_message_extension� (2;.protobuf_unittest.TestDynamicExtensions.DynamicMessageType
repeated_extension� (	
packed_extension� (B,
DynamicMessageType

dynamic_field� ("G
DynamicEnumType
DYNAMIC_FOO�
DYNAMIC_BAR�
DYNAMIC_BAZ�"�
#TestRepeatedScalarDifferentTagSizes
repeated_fixed32 (
repeated_int32
 (
repeated_fixed64� (
repeated_int64� (
repeated_float�� (
repeated_uint64�� ("�	
TestParsingMerge;
required_all_types (2.protobuf_unittest.TestAllTypes;
optional_all_types (2.protobuf_unittest.TestAllTypes;
repeated_all_types (2.protobuf_unittest.TestAllTypesH

optionalgroup
 (
21.protobuf_unittest.TestParsingMerge.OptionalGroupH

repeatedgroup (
21.protobuf_unittest.TestParsingMerge.RepeatedGroup�
RepeatedFieldsGenerator/
field1 (2.protobuf_unittest.TestAllTypes/
field2 (2.protobuf_unittest.TestAllTypes/
field3 (2.protobuf_unittest.TestAllTypesR
group1
 (
2B.protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1R
group2 (
2B.protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2.
ext1� (2.protobuf_unittest.TestAllTypes.
ext2� (2.protobuf_unittest.TestAllTypes9
Group1/
field1 (2.protobuf_unittest.TestAllTypes9
Group2/
field1 (2.protobuf_unittest.TestAllTypesR

OptionalGroupA
optional_group_all_types (2.protobuf_unittest.TestAllTypesR

RepeatedGroupA
repeated_group_all_types (2.protobuf_unittest.TestAllTypes*	�����2[
optional_ext#.protobuf_unittest.TestParsingMerge� (2.protobuf_unittest.TestAllTypes2[
repeated_ext#.protobuf_unittest.TestParsingMerge� (2.protobuf_unittest.TestAllTypes"D
TestCommentInjectionMessage%
a (	:*/ <- Neither should this."

FooRequest"
FooResponse"
FooClientMessage"
FooServerMessage"

BarRequest"
BarResponse"�
TestJsonName
field_name1 (

fieldName2 (

FieldName3 (
_field_name4 (
FIELD_NAME5 (
field_name6 (R@type"�
TestHugeFieldNumbers
optional_int32� (
fixed_32� (
repeated_int32� (B
packed_int32� (B9

optional_enum� (2.protobuf_unittest.ForeignEnum
optional_string���� (	
optional_bytes���� (?
optional_message���� (2!.protobuf_unittest.ForeignMessageP

optionalgroup���� (
25.protobuf_unittest.TestHugeFieldNumbers.OptionalGroup[
string_string_map���� (2<.protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry
oneof_uint32���� (
HC
oneof_test_all_types���� (2.protobuf_unittest.TestAllTypesH
oneof_string���� (	H
oneof_bytes���� (H$

OptionalGroup
group_a���� (6
StringStringMapEntry
key (	
value (	:8*���B
oneof_field*@
ForeignEnum
FOREIGN_FOO
FOREIGN_BAR
FOREIGN_BAZ*K
TestEnumWithDupValue
FOO1
BAR1
BAZ
FOO2
BAR2*�
TestSparseEnum
SPARSE_A{
SPARSE_B��
SPARSE_C���
SPARSE_D������
SPARSE_E��������
SPARSE_F
SPARSE_G2�
TestServiceD
Foo.protobuf_unittest.FooRequest.protobuf_unittest.FooResponseD
Bar.protobuf_unittest.BarRequest.protobuf_unittest.BarResponse:F
optional_int32_extension$.protobuf_unittest.TestAllExtensions (:F
optional_int64_extension$.protobuf_unittest.TestAllExtensions (:G
optional_uint32_extension$.protobuf_unittest.TestAllExtensions (
:G
optional_uint64_extension$.protobuf_unittest.TestAllExtensions (:G
optional_sint32_extension$.protobuf_unittest.TestAllExtensions (:G
optional_sint64_extension$.protobuf_unittest.TestAllExtensions (:H
optional_fixed32_extension$.protobuf_unittest.TestAllExtensions (:H
optional_fixed64_extension$.protobuf_unittest.TestAllExtensions (:I
optional_sfixed32_extension$.protobuf_unittest.TestAllExtensions	 (:I
optional_sfixed64_extension$.protobuf_unittest.TestAllExtensions
 (:F
optional_float_extension$.protobuf_unittest.TestAllExtensions (:G
optional_double_extension$.protobuf_unittest.TestAllExtensions (:E
optional_bool_extension$.protobuf_unittest.TestAllExtensions
 (:G
optional_string_extension$.protobuf_unittest.TestAllExtensions (	:F
optional_bytes_extension$.protobuf_unittest.TestAllExtensions (:q
optionalgroup_extension$.protobuf_unittest.TestAllExtensions (
2*.protobuf_unittest.OptionalGroup_extension:~
!optional_nested_message_extension$.protobuf_unittest.TestAllExtensions (2-.protobuf_unittest.TestAllTypes.NestedMessage:s
"optional_foreign_message_extension$.protobuf_unittest.TestAllExtensions (2!.protobuf_unittest.ForeignMessage:x
!optional_import_message_extension$.protobuf_unittest.TestAllExtensions (2'.protobuf_unittest_import.ImportMessage:x
optional_nested_enum_extension$.protobuf_unittest.TestAllExtensions (2*.protobuf_unittest.TestAllTypes.NestedEnum:m
optional_foreign_enum_extension$.protobuf_unittest.TestAllExtensions (2.protobuf_unittest.ForeignEnum:r
optional_import_enum_extension$.protobuf_unittest.TestAllExtensions (2$.protobuf_unittest_import.ImportEnum:Q
optional_string_piece_extension$.protobuf_unittest.TestAllExtensions (	B:I
optional_cord_extension$.protobuf_unittest.TestAllExtensions (	B:�
(optional_public_import_message_extension$.protobuf_unittest.TestAllExtensions (2-.protobuf_unittest_import.PublicImportMessage:�
optional_lazy_message_extension$.protobuf_unittest.TestAllExtensions (2-.protobuf_unittest.TestAllTypes.NestedMessageB(:F
repeated_int32_extension$.protobuf_unittest.TestAllExtensions (:F
repeated_int64_extension$.protobuf_unittest.TestAllExtensions  (:G
repeated_uint32_extension$.protobuf_unittest.TestAllExtensions! (
:G
repeated_uint64_extension$.protobuf_unittest.TestAllExtensions" (:G
repeated_sint32_extension$.protobuf_unittest.TestAllExtensions# (:G
repeated_sint64_extension$.protobuf_unittest.TestAllExtensions$ (:H
repeated_fixed32_extension$.protobuf_unittest.TestAllExtensions% (:H
repeated_fixed64_extension$.protobuf_unittest.TestAllExtensions& (:I
repeated_sfixed32_extension$.protobuf_unittest.TestAllExtensions' (:I
repeated_sfixed64_extension$.protobuf_unittest.TestAllExtensions( (:F
repeated_float_extension$.protobuf_unittest.TestAllExtensions) (:G
repeated_double_extension$.protobuf_unittest.TestAllExtensions* (:E
repeated_bool_extension$.protobuf_unittest.TestAllExtensions+ (:G
repeated_string_extension$.protobuf_unittest.TestAllExtensions, (	:F
repeated_bytes_extension$.protobuf_unittest.TestAllExtensions- (:q
repeatedgroup_extension$.protobuf_unittest.TestAllExtensions. (
2*.protobuf_unittest.RepeatedGroup_extension:~
!repeated_nested_message_extension$.protobuf_unittest.TestAllExtensions0 (2-.protobuf_unittest.TestAllTypes.NestedMessage:s
"repeated_foreign_message_extension$.protobuf_unittest.TestAllExtensions1 (2!.protobuf_unittest.ForeignMessage:x
!repeated_import_message_extension$.protobuf_unittest.TestAllExtensions2 (2'.protobuf_unittest_import.ImportMessage:x
repeated_nested_enum_extension$.protobuf_unittest.TestAllExtensions3 (2*.protobuf_unittest.TestAllTypes.NestedEnum:m
repeated_foreign_enum_extension$.protobuf_unittest.TestAllExtensions4 (2.protobuf_unittest.ForeignEnum:r
repeated_import_enum_extension$.protobuf_unittest.TestAllExtensions5 (2$.protobuf_unittest_import.ImportEnum:Q
repeated_string_piece_extension$.protobuf_unittest.TestAllExtensions6 (	B:I
repeated_cord_extension$.protobuf_unittest.TestAllExtensions7 (	B:�
repeated_lazy_message_extension$.protobuf_unittest.TestAllExtensions9 (2-.protobuf_unittest.TestAllTypes.NestedMessageB(:I
default_int32_extension$.protobuf_unittest.TestAllExtensions= (:41:I
default_int64_extension$.protobuf_unittest.TestAllExtensions> (:42:J
default_uint32_extension$.protobuf_unittest.TestAllExtensions? (
:43:J
default_uint64_extension$.protobuf_unittest.TestAllExtensions@ (:44:K
default_sint32_extension$.protobuf_unittest.TestAllExtensionsA (:-45:J
default_sint64_extension$.protobuf_unittest.TestAllExtensionsB (:46:K
default_fixed32_extension$.protobuf_unittest.TestAllExtensionsC (:47:K
default_fixed64_extension$.protobuf_unittest.TestAllExtensionsD (:48:L
default_sfixed32_extension$.protobuf_unittest.TestAllExtensionsE (:49:M
default_sfixed64_extension$.protobuf_unittest.TestAllExtensionsF (:-50:K
default_float_extension$.protobuf_unittest.TestAllExtensionsG (:51.5:M
default_double_extension$.protobuf_unittest.TestAllExtensionsH (:52000:J
default_bool_extension$.protobuf_unittest.TestAllExtensionsI (:true:M
default_string_extension$.protobuf_unittest.TestAllExtensionsJ (	:hello:L
default_bytes_extension$.protobuf_unittest.TestAllExtensionsK (:world:|
default_nested_enum_extension$.protobuf_unittest.TestAllExtensionsQ (2*.protobuf_unittest.TestAllTypes.NestedEnum:BAR:y
default_foreign_enum_extension$.protobuf_unittest.TestAllExtensionsR (2.protobuf_unittest.ForeignEnum:FOREIGN_BAR:}
default_import_enum_extension$.protobuf_unittest.TestAllExtensionsS (2$.protobuf_unittest_import.ImportEnum:
IMPORT_BAR:U
default_string_piece_extension$.protobuf_unittest.TestAllExtensionsT (	:abcB:M
default_cord_extension$.protobuf_unittest.TestAllExtensionsU (	:123B:D
oneof_uint32_extension$.protobuf_unittest.TestAllExtensionso (
:{
oneof_nested_message_extension$.protobuf_unittest.TestAllExtensionsp (2-.protobuf_unittest.TestAllTypes.NestedMessage:D
oneof_string_extension$.protobuf_unittest.TestAllExtensionsq (	:C
oneof_bytes_extension$.protobuf_unittest.TestAllExtensionsr (:B
my_extension_string%.protobuf_unittest.TestFieldOrderings2 (	:?
my_extension_int%.protobuf_unittest.TestFieldOrderings (:K
packed_int32_extension'.protobuf_unittest.TestPackedExtensionsZ (B:K
packed_int64_extension'.protobuf_unittest.TestPackedExtensions[ (B:L
packed_uint32_extension'.protobuf_unittest.TestPackedExtensions\ (
B:L
packed_uint64_extension'.protobuf_unittest.TestPackedExtensions] (B:L
packed_sint32_extension'.protobuf_unittest.TestPackedExtensions^ (B:L
packed_sint64_extension'.protobuf_unittest.TestPackedExtensions_ (B:M
packed_fixed32_extension'.protobuf_unittest.TestPackedExtensions` (B:M
packed_fixed64_extension'.protobuf_unittest.TestPackedExtensionsa (B:N
packed_sfixed32_extension'.protobuf_unittest.TestPackedExtensionsb (B:N
packed_sfixed64_extension'.protobuf_unittest.TestPackedExtensionsc (B:K
packed_float_extension'.protobuf_unittest.TestPackedExtensionsd (B:L
packed_double_extension'.protobuf_unittest.TestPackedExtensionse (B:J
packed_bool_extension'.protobuf_unittest.TestPackedExtensionsf (B:j
packed_enum_extension'.protobuf_unittest.TestPackedExtensionsg (2.protobuf_unittest.ForeignEnumB:O
unpacked_int32_extension).protobuf_unittest.TestUnpackedExtensionsZ (B:O
unpacked_int64_extension).protobuf_unittest.TestUnpackedExtensions[ (B:P
unpacked_uint32_extension).protobuf_unittest.TestUnpackedExtensions\ (
B:P
unpacked_uint64_extension).protobuf_unittest.TestUnpackedExtensions] (B:P
unpacked_sint32_extension).protobuf_unittest.TestUnpackedExtensions^ (B:P
unpacked_sint64_extension).protobuf_unittest.TestUnpackedExtensions_ (B:Q
unpacked_fixed32_extension).protobuf_unittest.TestUnpackedExtensions` (B:Q
unpacked_fixed64_extension).protobuf_unittest.TestUnpackedExtensionsa (B:R
unpacked_sfixed32_extension).protobuf_unittest.TestUnpackedExtensionsb (B:R
unpacked_sfixed64_extension).protobuf_unittest.TestUnpackedExtensionsc (B:O
unpacked_float_extension).protobuf_unittest.TestUnpackedExtensionsd (B:P
unpacked_double_extension).protobuf_unittest.TestUnpackedExtensionse (B:N
unpacked_bool_extension).protobuf_unittest.TestUnpackedExtensionsf (B:n
unpacked_enum_extension).protobuf_unittest.TestUnpackedExtensionsg (2.protobuf_unittest.ForeignEnumB:d
test_all_types'.protobuf_unittest.TestHugeFieldNumbers�� (2.protobuf_unittest.TestAllTypesBB
UnittestProtoH����tdependenciestForeignEnumt	full_namesprotobuf_unittest.ForeignEnumtfilenametfiletvaluestFOREIGN_FOOtindextnumberitoptionsttypetFOREIGN_BARiitFOREIGN_BAZiitcontaining_typetserialized_starti�6tserialized_endi<7tTestEnumWithDupValues&protobuf_unittest.TestEnumWithDupValuetFOO1tBAR1tBAZtFOO2tBAR2si>7i�7tTestSparseEnums protobuf_unittest.TestSparseEnumtSPARSE_Ai{tSPARSE_Bi��tSPARSE_Ci��tSPARSE_Di�tSPARSE_Ei4/��tSPARSE_FtSPARSE_Gi�7i8toptional_int32_extensions*protobuf_unittest.optional_int32_extensiontcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptional_int64_extensions*protobuf_unittest.optional_int64_extensiontoptional_uint32_extensions+protobuf_unittest.optional_uint32_extensioni
toptional_uint64_extensions+protobuf_unittest.optional_uint64_extensiontoptional_sint32_extensions+protobuf_unittest.optional_sint32_extensionitoptional_sint64_extensions+protobuf_unittest.optional_sint64_extensioniitoptional_fixed32_extensions,protobuf_unittest.optional_fixed32_extensionitoptional_fixed64_extensions,protobuf_unittest.optional_fixed64_extensioni	toptional_sfixed32_extensions-protobuf_unittest.optional_sfixed32_extensionii
toptional_sfixed64_extensions-protobuf_unittest.optional_sfixed64_extensioniitoptional_float_extensions*protobuf_unittest.optional_float_extensionitoptional_double_extensions+protobuf_unittest.optional_double_extensiontoptional_bool_extensions)protobuf_unittest.optional_bool_extensionitoptional_string_extensions+protobuf_unittest.optional_string_extensionRsutf-8toptional_bytes_extensions*protobuf_unittest.optional_bytes_extensiontoptionalgroup_extensions)protobuf_unittest.optionalgroup_extensiont!optional_nested_message_extensions3protobuf_unittest.optional_nested_message_extensionit"optional_foreign_message_extensions4protobuf_unittest.optional_foreign_message_extensionit!optional_import_message_extensions3protobuf_unittest.optional_import_message_extensionitoptional_nested_enum_extensions0protobuf_unittest.optional_nested_enum_extensionitoptional_foreign_enum_extensions1protobuf_unittest.optional_foreign_enum_extensionitoptional_import_enum_extensions0protobuf_unittest.optional_import_enum_extensionitoptional_string_piece_extensions1protobuf_unittest.optional_string_piece_extensionsitoptional_cord_extensions)protobuf_unittest.optional_cord_extensionsit(optional_public_import_message_extensions:protobuf_unittest.optional_public_import_message_extensionitoptional_lazy_message_extensions1protobuf_unittest.optional_lazy_message_extensions(itrepeated_int32_extensions*protobuf_unittest.repeated_int32_extensioni trepeated_int64_extensions*protobuf_unittest.repeated_int64_extensioni!trepeated_uint32_extensions+protobuf_unittest.repeated_uint32_extensionii"trepeated_uint64_extensions+protobuf_unittest.repeated_uint64_extensionii#trepeated_sint32_extensions+protobuf_unittest.repeated_sint32_extensionii$trepeated_sint64_extensions+protobuf_unittest.repeated_sint64_extensioni%trepeated_fixed32_extensions,protobuf_unittest.repeated_fixed32_extensioni&trepeated_fixed64_extensions,protobuf_unittest.repeated_fixed64_extensioni'trepeated_sfixed32_extensions-protobuf_unittest.repeated_sfixed32_extensioni(trepeated_sfixed64_extensions-protobuf_unittest.repeated_sfixed64_extensioni)trepeated_float_extensions*protobuf_unittest.repeated_float_extensioni*trepeated_double_extensions+protobuf_unittest.repeated_double_extensioni+trepeated_bool_extensions)protobuf_unittest.repeated_bool_extensioni,trepeated_string_extensions+protobuf_unittest.repeated_string_extensioni-trepeated_bytes_extensions*protobuf_unittest.repeated_bytes_extensioni.trepeatedgroup_extensions)protobuf_unittest.repeatedgroup_extensioni0t!repeated_nested_message_extensions3protobuf_unittest.repeated_nested_message_extensioni1t"repeated_foreign_message_extensions4protobuf_unittest.repeated_foreign_message_extensioni2t!repeated_import_message_extensions3protobuf_unittest.repeated_import_message_extensioni3trepeated_nested_enum_extensions0protobuf_unittest.repeated_nested_enum_extensioni4trepeated_foreign_enum_extensions1protobuf_unittest.repeated_foreign_enum_extensioni5trepeated_import_enum_extensions0protobuf_unittest.repeated_import_enum_extensioni/i6trepeated_string_piece_extensions1protobuf_unittest.repeated_string_piece_extensioni7trepeated_cord_extensions)protobuf_unittest.repeated_cord_extensioni9trepeated_lazy_message_extensions1protobuf_unittest.repeated_lazy_message_extensioni=tdefault_int32_extensions)protobuf_unittest.default_int32_extensioni>tdefault_int64_extensions)protobuf_unittest.default_int64_extensioni?tdefault_uint32_extensions*protobuf_unittest.default_uint32_extensioni@tdefault_uint64_extensions*protobuf_unittest.default_uint64_extensioniAtdefault_sint32_extensions*protobuf_unittest.default_sint32_extensioni���iBtdefault_sint64_extensions*protobuf_unittest.default_sint64_extensioni8iCtdefault_fixed32_extensions+protobuf_unittest.default_fixed32_extensioniDtdefault_fixed64_extensions+protobuf_unittest.default_fixed64_extensioni:iEtdefault_sfixed32_extensions,protobuf_unittest.default_sfixed32_extensioni;iFtdefault_sfixed64_extensions,protobuf_unittest.default_sfixed64_extensioni<i���iGtdefault_float_extensions)protobuf_unittest.default_float_extensiong�I@iHtdefault_double_extensions*protobuf_unittest.default_double_extensioni �iItdefault_bool_extensions(protobuf_unittest.default_bool_extensioniJtdefault_string_extensions*protobuf_unittest.default_string_extensionthelloiKtdefault_bytes_extensions)protobuf_unittest.default_bytes_extensiontworldiQtdefault_nested_enum_extensions/protobuf_unittest.default_nested_enum_extensioniRtdefault_foreign_enum_extensions0protobuf_unittest.default_foreign_enum_extensioniStdefault_import_enum_extensions/protobuf_unittest.default_import_enum_extensioniTtdefault_string_piece_extensions0protobuf_unittest.default_string_piece_extensiontabciUtdefault_cord_extensions(protobuf_unittest.default_cord_extensiont123iotoneof_uint32_extensions(protobuf_unittest.oneof_uint32_extensioniptoneof_nested_message_extensions0protobuf_unittest.oneof_nested_message_extensioniqtoneof_string_extensions(protobuf_unittest.oneof_string_extensionirtoneof_bytes_extensions'protobuf_unittest.oneof_bytes_extensiontmy_extension_strings%protobuf_unittest.my_extension_stringtmy_extension_ints"protobuf_unittest.my_extension_intiLiZtpacked_int32_extensions(protobuf_unittest.packed_int32_extensioniMi[tpacked_int64_extensions(protobuf_unittest.packed_int64_extensioniNi\tpacked_uint32_extensions)protobuf_unittest.packed_uint32_extensioniOi]tpacked_uint64_extensions)protobuf_unittest.packed_uint64_extensioniPi^tpacked_sint32_extensions)protobuf_unittest.packed_sint32_extensioni_tpacked_sint64_extensions)protobuf_unittest.packed_sint64_extensioni`tpacked_fixed32_extensions*protobuf_unittest.packed_fixed32_extensioniatpacked_fixed64_extensions*protobuf_unittest.packed_fixed64_extensionibtpacked_sfixed32_extensions+protobuf_unittest.packed_sfixed32_extensionictpacked_sfixed64_extensions+protobuf_unittest.packed_sfixed64_extensioniVidtpacked_float_extensions(protobuf_unittest.packed_float_extensioniWietpacked_double_extensions)protobuf_unittest.packed_double_extensioniXiftpacked_bool_extensions'protobuf_unittest.packed_bool_extensioniYigtpacked_enum_extensions'protobuf_unittest.packed_enum_extensiontunpacked_int32_extensions*protobuf_unittest.unpacked_int32_extensionstunpacked_int64_extensions*protobuf_unittest.unpacked_int64_extensiontunpacked_uint32_extensions+protobuf_unittest.unpacked_uint32_extensiontunpacked_uint64_extensions+protobuf_unittest.unpacked_uint64_extensiontunpacked_sint32_extensions+protobuf_unittest.unpacked_sint32_extensiontunpacked_sint64_extensions+protobuf_unittest.unpacked_sint64_extensiontunpacked_fixed32_extensions,protobuf_unittest.unpacked_fixed32_extensiontunpacked_fixed64_extensions,protobuf_unittest.unpacked_fixed64_extensiontunpacked_sfixed32_extensions-protobuf_unittest.unpacked_sfixed32_extensiontunpacked_sfixed64_extensions-protobuf_unittest.unpacked_sfixed64_extensiontunpacked_float_extensions*protobuf_unittest.unpacked_float_extensiontunpacked_double_extensions+protobuf_unittest.unpacked_double_extensiontunpacked_bool_extensions)protobuf_unittest.unpacked_bool_extensiontunpacked_enum_extensions)protobuf_unittest.unpacked_enum_extensionihi`�ttest_all_typess protobuf_unittest.test_all_typesiit
NestedEnums)protobuf_unittest.TestAllTypes.NestedEnumtFOOtBARtNEGi�i�s'protobuf_unittest.TestOneof2.NestedEnumi�tDynamicEnumTypes7protobuf_unittest.TestDynamicExtensions.DynamicEnumTypetDYNAMIC_FOOi�tDYNAMIC_BARi�tDYNAMIC_BAZi�i�,i-t
NestedMessages,protobuf_unittest.TestAllTypes.NestedMessagetfieldstbbs/protobuf_unittest.TestAllTypes.NestedMessage.bbt
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi-iHt
OptionalGroups,protobuf_unittest.TestAllTypes.OptionalGrouptas.protobuf_unittest.TestAllTypes.OptionalGroup.aiJidt
RepeatedGroups,protobuf_unittest.TestAllTypes.RepeatedGroups.protobuf_unittest.TestAllTypes.RepeatedGroup.aifi�tTestAllTypessprotobuf_unittest.TestAllTypestoptional_int32s-protobuf_unittest.TestAllTypes.optional_int32toptional_int64s-protobuf_unittest.TestAllTypes.optional_int64toptional_uint32s.protobuf_unittest.TestAllTypes.optional_uint32toptional_uint64s.protobuf_unittest.TestAllTypes.optional_uint64toptional_sint32s.protobuf_unittest.TestAllTypes.optional_sint32toptional_sint64s.protobuf_unittest.TestAllTypes.optional_sint64toptional_fixed32s/protobuf_unittest.TestAllTypes.optional_fixed32toptional_fixed64s/protobuf_unittest.TestAllTypes.optional_fixed64toptional_sfixed32s0protobuf_unittest.TestAllTypes.optional_sfixed32toptional_sfixed64s0protobuf_unittest.TestAllTypes.optional_sfixed64toptional_floats-protobuf_unittest.TestAllTypes.optional_floattoptional_doubles.protobuf_unittest.TestAllTypes.optional_doublet
optional_bools,protobuf_unittest.TestAllTypes.optional_booltoptional_strings.protobuf_unittest.TestAllTypes.optional_stringtoptional_bytess-protobuf_unittest.TestAllTypes.optional_bytest
optionalgroups,protobuf_unittest.TestAllTypes.optionalgrouptoptional_nested_messages6protobuf_unittest.TestAllTypes.optional_nested_messagetoptional_foreign_messages7protobuf_unittest.TestAllTypes.optional_foreign_messagetoptional_import_messages6protobuf_unittest.TestAllTypes.optional_import_messagetoptional_nested_enums3protobuf_unittest.TestAllTypes.optional_nested_enumtoptional_foreign_enums4protobuf_unittest.TestAllTypes.optional_foreign_enumtoptional_import_enums3protobuf_unittest.TestAllTypes.optional_import_enumtoptional_string_pieces4protobuf_unittest.TestAllTypes.optional_string_piecet
optional_cords,protobuf_unittest.TestAllTypes.optional_cordtoptional_public_import_messages=protobuf_unittest.TestAllTypes.optional_public_import_messagetoptional_lazy_messages4protobuf_unittest.TestAllTypes.optional_lazy_messagetrepeated_int32s-protobuf_unittest.TestAllTypes.repeated_int32trepeated_int64s-protobuf_unittest.TestAllTypes.repeated_int64trepeated_uint32s.protobuf_unittest.TestAllTypes.repeated_uint32trepeated_uint64s.protobuf_unittest.TestAllTypes.repeated_uint64trepeated_sint32s.protobuf_unittest.TestAllTypes.repeated_sint32trepeated_sint64s.protobuf_unittest.TestAllTypes.repeated_sint64trepeated_fixed32s/protobuf_unittest.TestAllTypes.repeated_fixed32trepeated_fixed64s/protobuf_unittest.TestAllTypes.repeated_fixed64trepeated_sfixed32s0protobuf_unittest.TestAllTypes.repeated_sfixed32trepeated_sfixed64s0protobuf_unittest.TestAllTypes.repeated_sfixed64trepeated_floats-protobuf_unittest.TestAllTypes.repeated_floattrepeated_doubles.protobuf_unittest.TestAllTypes.repeated_doublet
repeated_bools,protobuf_unittest.TestAllTypes.repeated_booltrepeated_strings.protobuf_unittest.TestAllTypes.repeated_stringtrepeated_bytess-protobuf_unittest.TestAllTypes.repeated_bytest
repeatedgroups,protobuf_unittest.TestAllTypes.repeatedgrouptrepeated_nested_messages6protobuf_unittest.TestAllTypes.repeated_nested_messagetrepeated_foreign_messages7protobuf_unittest.TestAllTypes.repeated_foreign_messagetrepeated_import_messages6protobuf_unittest.TestAllTypes.repeated_import_messagetrepeated_nested_enums3protobuf_unittest.TestAllTypes.repeated_nested_enumtrepeated_foreign_enums4protobuf_unittest.TestAllTypes.repeated_foreign_enumtrepeated_import_enums3protobuf_unittest.TestAllTypes.repeated_import_enumtrepeated_string_pieces4protobuf_unittest.TestAllTypes.repeated_string_piecet
repeated_cords,protobuf_unittest.TestAllTypes.repeated_cordtrepeated_lazy_messages4protobuf_unittest.TestAllTypes.repeated_lazy_messaget
default_int32s,protobuf_unittest.TestAllTypes.default_int32t
default_int64s,protobuf_unittest.TestAllTypes.default_int64tdefault_uint32s-protobuf_unittest.TestAllTypes.default_uint32tdefault_uint64s-protobuf_unittest.TestAllTypes.default_uint64tdefault_sint32s-protobuf_unittest.TestAllTypes.default_sint32tdefault_sint64s-protobuf_unittest.TestAllTypes.default_sint64tdefault_fixed32s.protobuf_unittest.TestAllTypes.default_fixed32tdefault_fixed64s.protobuf_unittest.TestAllTypes.default_fixed64tdefault_sfixed32s/protobuf_unittest.TestAllTypes.default_sfixed32tdefault_sfixed64s/protobuf_unittest.TestAllTypes.default_sfixed64t
default_floats,protobuf_unittest.TestAllTypes.default_floattdefault_doubles-protobuf_unittest.TestAllTypes.default_doubletdefault_bools+protobuf_unittest.TestAllTypes.default_booltdefault_strings-protobuf_unittest.TestAllTypes.default_stringt
default_bytess,protobuf_unittest.TestAllTypes.default_bytestdefault_nested_enums2protobuf_unittest.TestAllTypes.default_nested_enumtdefault_foreign_enums3protobuf_unittest.TestAllTypes.default_foreign_enumtdefault_import_enums2protobuf_unittest.TestAllTypes.default_import_enumtdefault_string_pieces3protobuf_unittest.TestAllTypes.default_string_piecetdefault_cords+protobuf_unittest.TestAllTypes.default_cordtoneof_uint32s+protobuf_unittest.TestAllTypes.oneof_uint32toneof_nested_messages3protobuf_unittest.TestAllTypes.oneof_nested_messagetoneof_strings+protobuf_unittest.TestAllTypes.oneof_stringtoneof_bytess*protobuf_unittest.TestAllTypes.oneof_bytestoneof_fields*protobuf_unittest.TestAllTypes.oneof_fieldi�tNestedTestAllTypess$protobuf_unittest.NestedTestAllTypestchilds*protobuf_unittest.NestedTestAllTypes.childtpayloads,protobuf_unittest.NestedTestAllTypes.payloadtrepeated_childs3protobuf_unittest.NestedTestAllTypes.repeated_childi�i�
tTestDeprecatedFieldss&protobuf_unittest.TestDeprecatedFieldstdeprecated_int32s7protobuf_unittest.TestDeprecatedFields.deprecated_int32si�
i�
tTestDeprecatedMessages'protobuf_unittest.TestDeprecatedMessagei�
i�
tForeignMessages protobuf_unittest.ForeignMessagetcs"protobuf_unittest.ForeignMessage.ctds"protobuf_unittest.ForeignMessage.di�
itTestReservedFieldss$protobuf_unittest.TestReservedFieldsii5tTestAllExtensionss#protobuf_unittest.TestAllExtensionsi i7iTtOptionalGroup_extensions)protobuf_unittest.OptionalGroup_extensions+protobuf_unittest.OptionalGroup_extension.aiViztRepeatedGroup_extensions)protobuf_unittest.RepeatedGroup_extensions+protobuf_unittest.RepeatedGroup_extension.ai|i�tTestNestedExtensions%protobuf_unittest.TestNestedExtensionttests*protobuf_unittest.TestNestedExtension.testi�tnested_string_extensions=protobuf_unittest.TestNestedExtension.nested_string_extensioni�i�i;tTestRequiredsprotobuf_unittest.TestRequireds protobuf_unittest.TestRequired.atdummy2s%protobuf_unittest.TestRequired.dummy2tbs protobuf_unittest.TestRequired.btdummy4s%protobuf_unittest.TestRequired.dummy4tdummy5s%protobuf_unittest.TestRequired.dummy5tdummy6s%protobuf_unittest.TestRequired.dummy6tdummy7s%protobuf_unittest.TestRequired.dummy7tdummy8s%protobuf_unittest.TestRequired.dummy8tdummy9s%protobuf_unittest.TestRequired.dummy9tdummy10s&protobuf_unittest.TestRequired.dummy10tdummy11s&protobuf_unittest.TestRequired.dummy11tdummy12s&protobuf_unittest.TestRequired.dummy12tdummy13s&protobuf_unittest.TestRequired.dummy13tdummy14s&protobuf_unittest.TestRequired.dummy14tdummy15s&protobuf_unittest.TestRequired.dummy15tdummy16s&protobuf_unittest.TestRequired.dummy16tdummy17s&protobuf_unittest.TestRequired.dummy17tdummy18s&protobuf_unittest.TestRequired.dummy18tdummy19s&protobuf_unittest.TestRequired.dummy19tdummy20s&protobuf_unittest.TestRequired.dummy20tdummy21s&protobuf_unittest.TestRequired.dummy21tdummy22s&protobuf_unittest.TestRequired.dummy22tdummy23s&protobuf_unittest.TestRequired.dummy23tdummy24s&protobuf_unittest.TestRequired.dummy24tdummy25s&protobuf_unittest.TestRequired.dummy25tdummy26s&protobuf_unittest.TestRequired.dummy26tdummy27s&protobuf_unittest.TestRequired.dummy27tdummy28s&protobuf_unittest.TestRequired.dummy28tdummy29s&protobuf_unittest.TestRequired.dummy29tdummy30s&protobuf_unittest.TestRequired.dummy30tdummy31s&protobuf_unittest.TestRequired.dummy31tdummy32s&protobuf_unittest.TestRequired.dummy32s protobuf_unittest.TestRequired.ctsingles%protobuf_unittest.TestRequired.singlei�tmultis$protobuf_unittest.TestRequired.multii�i>itTestRequiredForeigns%protobuf_unittest.TestRequiredForeigntoptional_messages6protobuf_unittest.TestRequiredForeign.optional_messagetrepeated_messages6protobuf_unittest.TestRequiredForeign.repeated_messagetdummys+protobuf_unittest.TestRequiredForeign.dummyii�tTestRequiredMessages%protobuf_unittest.TestRequiredMessages6protobuf_unittest.TestRequiredMessage.optional_messages6protobuf_unittest.TestRequiredMessage.repeated_messagetrequired_messages6protobuf_unittest.TestRequiredMessage.required_messagei�iytTestForeignNesteds#protobuf_unittest.TestForeignNestedtforeign_nesteds2protobuf_unittest.TestForeignNested.foreign_nestedi{i�tTestEmptyMessages"protobuf_unittest.TestEmptyMessagei�i�tTestEmptyMessageWithExtensionss0protobuf_unittest.TestEmptyMessageWithExtensionsi�itTestMultipleExtensionRangess-protobuf_unittest.TestMultipleExtensionRangesi/i�iiiNtTestReallyLargeTagNumbers*protobuf_unittest.TestReallyLargeTagNumbers,protobuf_unittest.TestReallyLargeTagNumber.as-protobuf_unittest.TestReallyLargeTagNumber.bbi���iPi�tTestRecursiveMessages&protobuf_unittest.TestRecursiveMessages(protobuf_unittest.TestRecursiveMessage.atis(protobuf_unittest.TestRecursiveMessage.ii�i�t
SubMessages1protobuf_unittest.TestMutualRecursionA.SubMessages3protobuf_unittest.TestMutualRecursionA.SubMessage.bioi�tSubGroups/protobuf_unittest.TestMutualRecursionA.SubGrouptsub_messages;protobuf_unittest.TestMutualRecursionA.SubGroup.sub_messagetnot_in_this_sccs?protobuf_unittest.TestMutualRecursionA.SubGroup.not_in_this_scci�i?tTestMutualRecursionAs&protobuf_unittest.TestMutualRecursionAs)protobuf_unittest.TestMutualRecursionA.bbtsubgroups/protobuf_unittest.TestMutualRecursionA.subgroupi�tTestMutualRecursionBs&protobuf_unittest.TestMutualRecursionBs(protobuf_unittest.TestMutualRecursionB.as5protobuf_unittest.TestMutualRecursionB.optional_int32iAi�s7protobuf_unittest.TestIsInitialized.SubMessage.SubGroups9protobuf_unittest.TestIsInitialized.SubMessage.SubGroup.ii[ips.protobuf_unittest.TestIsInitialized.SubMessages7protobuf_unittest.TestIsInitialized.SubMessage.subgroupitTestIsInitializeds#protobuf_unittest.TestIsInitializeds/protobuf_unittest.TestIsInitialized.sub_messagei�tFoos(protobuf_unittest.TestDupFieldNumber.Foos*protobuf_unittest.TestDupFieldNumber.Foo.aiitBars(protobuf_unittest.TestDupFieldNumber.Bars*protobuf_unittest.TestDupFieldNumber.Bar.aii&tTestDupFieldNumbers$protobuf_unittest.TestDupFieldNumbers&protobuf_unittest.TestDupFieldNumber.atfoos(protobuf_unittest.TestDupFieldNumber.footbars(protobuf_unittest.TestDupFieldNumber.baristTestEagerMessages"protobuf_unittest.TestEagerMessages.protobuf_unittest.TestEagerMessage.sub_messages(i(ittTestLazyMessages!protobuf_unittest.TestLazyMessages-protobuf_unittest.TestLazyMessage.sub_messageivi�s8protobuf_unittest.TestNestedMessageHasBits.NestedMessagetnestedmessage_repeated_int32sUprotobuf_unittest.TestNestedMessageHasBits.NestedMessage.nestedmessage_repeated_int32t%nestedmessage_repeated_foreignmessages^protobuf_unittest.TestNestedMessageHasBits.NestedMessage.nestedmessage_repeated_foreignmessagei=i�tTestNestedMessageHasBitss*protobuf_unittest.TestNestedMessageHasBitssBprotobuf_unittest.TestNestedMessageHasBits.optional_nested_messagei�tTestCamelCaseFieldNamess)protobuf_unittest.TestCamelCaseFieldNamestPrimitiveFields8protobuf_unittest.TestCamelCaseFieldNames.PrimitiveFieldtStringFields5protobuf_unittest.TestCamelCaseFieldNames.StringFieldt	EnumFields3protobuf_unittest.TestCamelCaseFieldNames.EnumFieldtMessageFields6protobuf_unittest.TestCamelCaseFieldNames.MessageFieldtStringPieceFields:protobuf_unittest.TestCamelCaseFieldNames.StringPieceFieldt	CordFields3protobuf_unittest.TestCamelCaseFieldNames.CordFieldtRepeatedPrimitiveFields@protobuf_unittest.TestCamelCaseFieldNames.RepeatedPrimitiveFieldtRepeatedStringFields=protobuf_unittest.TestCamelCaseFieldNames.RepeatedStringFieldtRepeatedEnumFields;protobuf_unittest.TestCamelCaseFieldNames.RepeatedEnumFieldtRepeatedMessageFields>protobuf_unittest.TestCamelCaseFieldNames.RepeatedMessageFieldtRepeatedStringPieceFieldsBprotobuf_unittest.TestCamelCaseFieldNames.RepeatedStringPieceFieldtRepeatedCordFields;protobuf_unittest.TestCamelCaseFieldNames.RepeatedCordFieldi�i�s2protobuf_unittest.TestFieldOrderings.NestedMessagetoos5protobuf_unittest.TestFieldOrderings.NestedMessage.oos5protobuf_unittest.TestFieldOrderings.NestedMessage.bbiQixtTestFieldOrderingss$protobuf_unittest.TestFieldOrderingst	my_strings.protobuf_unittest.TestFieldOrderings.my_stringtmy_ints+protobuf_unittest.TestFieldOrderings.my_inttmy_floats-protobuf_unittest.TestFieldOrderings.my_floats<protobuf_unittest.TestFieldOrderings.optional_nested_messagei�i�i�tTestExtremeDefaultValuess*protobuf_unittest.TestExtremeDefaultValuest
escaped_bytess8protobuf_unittest.TestExtremeDefaultValues.escaped_bytess


	\'"�tlarge_uint32s7protobuf_unittest.TestExtremeDefaultValues.large_uint32l��tlarge_uint64s7protobuf_unittest.TestExtremeDefaultValues.large_uint64l����tsmall_int32s6protobuf_unittest.TestExtremeDefaultValues.small_int32i�tsmall_int64s6protobuf_unittest.TestExtremeDefaultValues.small_int64l��������treally_small_int32s=protobuf_unittest.TestExtremeDefaultValues.really_small_int32i�treally_small_int64s=protobuf_unittest.TestExtremeDefaultValues.really_small_int64l����tutf8_strings6protobuf_unittest.TestExtremeDefaultValues.utf8_stringsሴt
zero_floats5protobuf_unittest.TestExtremeDefaultValues.zero_floatt	one_floats4protobuf_unittest.TestExtremeDefaultValues.one_floattsmall_floats6protobuf_unittest.TestExtremeDefaultValues.small_floatg�?tnegative_one_floats=protobuf_unittest.TestExtremeDefaultValues.negative_one_floattnegative_floats9protobuf_unittest.TestExtremeDefaultValues.negative_floatg��tlarge_floats6protobuf_unittest.TestExtremeDefaultValues.large_floatg�קAtsmall_negative_floats?protobuf_unittest.TestExtremeDefaultValues.small_negative_floatg`P���O�t
inf_doubles5protobuf_unittest.TestExtremeDefaultValues.inf_doubleg�tneg_inf_doubles9protobuf_unittest.TestExtremeDefaultValues.neg_inf_doubleg�t
nan_doubles5protobuf_unittest.TestExtremeDefaultValues.nan_doublet	inf_floats4protobuf_unittest.TestExtremeDefaultValues.inf_floatt
neg_inf_floats8protobuf_unittest.TestExtremeDefaultValues.neg_inf_floatt	nan_floats4protobuf_unittest.TestExtremeDefaultValues.nan_floattcpp_trigraphs7protobuf_unittest.TestExtremeDefaultValues.cpp_trigraphs? ? ?? ?? ??? ??/ ??-tstring_with_zeros;protobuf_unittest.TestExtremeDefaultValues.string_with_zeroshellotbytes_with_zeros:protobuf_unittest.TestExtremeDefaultValues.bytes_with_zerosworldtstring_piece_with_zerosAprotobuf_unittest.TestExtremeDefaultValues.string_piece_with_zerosabctcord_with_zeros9protobuf_unittest.TestExtremeDefaultValues.cord_with_zeros123treplacement_strings=protobuf_unittest.TestExtremeDefaultValues.replacement_strings
${unknown}i�i= tSparseEnumMessages#protobuf_unittest.SparseEnumMessagetsparse_enums/protobuf_unittest.SparseEnumMessage.sparse_enumi? i� t	OneStringsprotobuf_unittest.OneStringtdatas protobuf_unittest.OneString.datai� i� t
MoreStringsprotobuf_unittest.MoreStrings!protobuf_unittest.MoreString.datai� i� tOneBytessprotobuf_unittest.OneBytessprotobuf_unittest.OneBytes.datai� i� t	MoreBytessprotobuf_unittest.MoreBytess protobuf_unittest.MoreBytes.datai� i� tInt32Messagesprotobuf_unittest.Int32Messages#protobuf_unittest.Int32Message.datai� i!t
Uint32Messagesprotobuf_unittest.Uint32Messages$protobuf_unittest.Uint32Message.datai!i3!tInt64Messagesprotobuf_unittest.Int64Messages#protobuf_unittest.Int64Message.datai5!iQ!t
Uint64Messagesprotobuf_unittest.Uint64Messages$protobuf_unittest.Uint64Message.dataiS!ip!tBoolMessagesprotobuf_unittest.BoolMessages"protobuf_unittest.BoolMessage.datair!i�!tFooGroups$protobuf_unittest.TestOneof.FooGroups&protobuf_unittest.TestOneof.FooGroup.as&protobuf_unittest.TestOneof.FooGroup.bi9"iY"t	TestOneofsprotobuf_unittest.TestOneoftfoo_ints#protobuf_unittest.TestOneof.foo_intt
foo_strings&protobuf_unittest.TestOneof.foo_stringtfoo_messages'protobuf_unittest.TestOneof.foo_messagetfoogroups$protobuf_unittest.TestOneof.foogroupsprotobuf_unittest.TestOneof.fooi�!i`"s7protobuf_unittest.TestOneofBackwardsCompatible.FooGroups9protobuf_unittest.TestOneofBackwardsCompatible.FooGroup.as9protobuf_unittest.TestOneofBackwardsCompatible.FooGroup.btTestOneofBackwardsCompatibles.protobuf_unittest.TestOneofBackwardsCompatibles6protobuf_unittest.TestOneofBackwardsCompatible.foo_ints9protobuf_unittest.TestOneofBackwardsCompatible.foo_strings:protobuf_unittest.TestOneofBackwardsCompatible.foo_messages7protobuf_unittest.TestOneofBackwardsCompatible.foogroupic"iJ#s%protobuf_unittest.TestOneof2.FooGroups'protobuf_unittest.TestOneof2.FooGroup.as'protobuf_unittest.TestOneof2.FooGroup.bi�%i�%s*protobuf_unittest.TestOneof2.NestedMessagetqux_ints2protobuf_unittest.TestOneof2.NestedMessage.qux_intt	corge_ints4protobuf_unittest.TestOneof2.NestedMessage.corge_inti&i4&t
TestOneof2sprotobuf_unittest.TestOneof2s$protobuf_unittest.TestOneof2.foo_ints'protobuf_unittest.TestOneof2.foo_stringtfoo_cords%protobuf_unittest.TestOneof2.foo_cordtfoo_string_pieces-protobuf_unittest.TestOneof2.foo_string_piecet	foo_bytess&protobuf_unittest.TestOneof2.foo_bytestfoo_enums%protobuf_unittest.TestOneof2.foo_enums(protobuf_unittest.TestOneof2.foo_messages%protobuf_unittest.TestOneof2.foogrouptfoo_lazy_messages-protobuf_unittest.TestOneof2.foo_lazy_messagetbar_ints$protobuf_unittest.TestOneof2.bar_intt
bar_strings'protobuf_unittest.TestOneof2.bar_stringtSTRINGtbar_cords%protobuf_unittest.TestOneof2.bar_cordtCORDtbar_string_pieces-protobuf_unittest.TestOneof2.bar_string_piecetSPIECEt	bar_bytess&protobuf_unittest.TestOneof2.bar_bytestBYTEStbar_enums%protobuf_unittest.TestOneof2.bar_enumtbaz_ints$protobuf_unittest.TestOneof2.baz_intt
baz_strings'protobuf_unittest.TestOneof2.baz_strings protobuf_unittest.TestOneof2.foos protobuf_unittest.TestOneof2.bariM#ik&s1protobuf_unittest.TestRequiredOneof.NestedMessagetrequired_doublesAprotobuf_unittest.TestRequiredOneof.NestedMessage.required_doublei�&i'tTestRequiredOneofs#protobuf_unittest.TestRequiredOneofs+protobuf_unittest.TestRequiredOneof.foo_ints.protobuf_unittest.TestRequiredOneof.foo_strings/protobuf_unittest.TestRequiredOneof.foo_messages'protobuf_unittest.TestRequiredOneof.fooin&i&'tTestPackedTypess!protobuf_unittest.TestPackedTypestpacked_int32s.protobuf_unittest.TestPackedTypes.packed_int32tpacked_int64s.protobuf_unittest.TestPackedTypes.packed_int64t
packed_uint32s/protobuf_unittest.TestPackedTypes.packed_uint32t
packed_uint64s/protobuf_unittest.TestPackedTypes.packed_uint64t
packed_sint32s/protobuf_unittest.TestPackedTypes.packed_sint32t
packed_sint64s/protobuf_unittest.TestPackedTypes.packed_sint64tpacked_fixed32s0protobuf_unittest.TestPackedTypes.packed_fixed32tpacked_fixed64s0protobuf_unittest.TestPackedTypes.packed_fixed64tpacked_sfixed32s1protobuf_unittest.TestPackedTypes.packed_sfixed32tpacked_sfixed64s1protobuf_unittest.TestPackedTypes.packed_sfixed64tpacked_floats.protobuf_unittest.TestPackedTypes.packed_floatt
packed_doubles/protobuf_unittest.TestPackedTypes.packed_doubletpacked_bools-protobuf_unittest.TestPackedTypes.packed_booltpacked_enums-protobuf_unittest.TestPackedTypes.packed_enumi)'i�(tTestUnpackedTypess#protobuf_unittest.TestUnpackedTypestunpacked_int32s2protobuf_unittest.TestUnpackedTypes.unpacked_int32tunpacked_int64s2protobuf_unittest.TestUnpackedTypes.unpacked_int64tunpacked_uint32s3protobuf_unittest.TestUnpackedTypes.unpacked_uint32tunpacked_uint64s3protobuf_unittest.TestUnpackedTypes.unpacked_uint64tunpacked_sint32s3protobuf_unittest.TestUnpackedTypes.unpacked_sint32tunpacked_sint64s3protobuf_unittest.TestUnpackedTypes.unpacked_sint64tunpacked_fixed32s4protobuf_unittest.TestUnpackedTypes.unpacked_fixed32tunpacked_fixed64s4protobuf_unittest.TestUnpackedTypes.unpacked_fixed64tunpacked_sfixed32s5protobuf_unittest.TestUnpackedTypes.unpacked_sfixed32tunpacked_sfixed64s5protobuf_unittest.TestUnpackedTypes.unpacked_sfixed64tunpacked_floats2protobuf_unittest.TestUnpackedTypes.unpacked_floattunpacked_doubles3protobuf_unittest.TestUnpackedTypes.unpacked_doublet
unpacked_bools1protobuf_unittest.TestUnpackedTypes.unpacked_boolt
unpacked_enums1protobuf_unittest.TestUnpackedTypes.unpacked_enumi�(i�*tTestPackedExtensionss&protobuf_unittest.TestPackedExtensionsi�*i�*tTestUnpackedExtensionss(protobuf_unittest.TestUnpackedExtensionsi�*i�*tDynamicMessageTypes:protobuf_unittest.TestDynamicExtensions.DynamicMessageTypet
dynamic_fieldsHprotobuf_unittest.TestDynamicExtensions.DynamicMessageType.dynamic_fieldi4i�,i�,tTestDynamicExtensionss'protobuf_unittest.TestDynamicExtensionstscalar_extensions8protobuf_unittest.TestDynamicExtensions.scalar_extensioni�tenum_extensions6protobuf_unittest.TestDynamicExtensions.enum_extensioni�tdynamic_enum_extensions>protobuf_unittest.TestDynamicExtensions.dynamic_enum_extensioni�tmessage_extensions9protobuf_unittest.TestDynamicExtensions.message_extensioni�tdynamic_message_extensionsAprotobuf_unittest.TestDynamicExtensions.dynamic_message_extensioni�trepeated_extensions:protobuf_unittest.TestDynamicExtensions.repeated_extensioni�tpacked_extensions8protobuf_unittest.TestDynamicExtensions.packed_extensioni�i�*t#TestRepeatedScalarDifferentTagSizess5protobuf_unittest.TestRepeatedScalarDifferentTagSizessFprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_fixed32sDprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_int32sFprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_fixed64i�sDprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_int64i�sDprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_floati��sEprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_uint64i��i-i�-tGroup1sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1tfield1sHprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1.field1i�0i1tGroup2sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2sHprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2.field1i1iP1tRepeatedFieldsGenerators:protobuf_unittest.TestParsingMerge.RepeatedFieldsGeneratorsAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.field1tfield2sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.field2tfield3sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.field3tgroup1sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.group1tgroup2sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.group2text1s?protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.ext1text2s?protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.ext2i&/s0protobuf_unittest.TestParsingMerge.OptionalGrouptoptional_group_all_typessIprotobuf_unittest.TestParsingMerge.OptionalGroup.optional_group_all_typesiR1i�1s0protobuf_unittest.TestParsingMerge.RepeatedGrouptrepeated_group_all_typessIprotobuf_unittest.TestParsingMerge.RepeatedGroup.repeated_group_all_typesi�1i�1tTestParsingMerges"protobuf_unittest.TestParsingMergetrequired_all_typess5protobuf_unittest.TestParsingMerge.required_all_typestoptional_all_typess5protobuf_unittest.TestParsingMerge.optional_all_typestrepeated_all_typess5protobuf_unittest.TestParsingMerge.repeated_all_typess0protobuf_unittest.TestParsingMerge.optionalgroups0protobuf_unittest.TestParsingMerge.repeatedgrouptoptional_exts/protobuf_unittest.TestParsingMerge.optional_exttrepeated_exts/protobuf_unittest.TestParsingMerge.repeated_exti�-i�2tTestCommentInjectionMessages-protobuf_unittest.TestCommentInjectionMessages/protobuf_unittest.TestCommentInjectionMessage.as*/ <- Neither should this.i�2i3t
FooRequestsprotobuf_unittest.FooRequesti3i3tFooResponsesprotobuf_unittest.FooResponsei3i 3tFooClientMessages"protobuf_unittest.FooClientMessagei"3i43tFooServerMessages"protobuf_unittest.FooServerMessagei63iH3t
BarRequestsprotobuf_unittest.BarRequestiJ3iV3tBarResponsesprotobuf_unittest.BarResponseiX3ie3tTestJsonNamesprotobuf_unittest.TestJsonNametfield_name1s*protobuf_unittest.TestJsonName.field_name1t
fieldName2s)protobuf_unittest.TestJsonName.fieldName2t
FieldName3s)protobuf_unittest.TestJsonName.FieldName3t_field_name4s+protobuf_unittest.TestJsonName._field_name4tFIELD_NAME5s*protobuf_unittest.TestJsonName.FIELD_NAME5tfield_name6s*protobuf_unittest.TestJsonName.field_name6t	json_names@typeih3i�3s4protobuf_unittest.TestHugeFieldNumbers.OptionalGrouptgroup_as<protobuf_unittest.TestHugeFieldNumbers.OptionalGroup.group_aiy��i�6i�6tStringStringMapEntrys;protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntrytkeys?protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry.keytvaluesAprotobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry.values8i�6i�6tTestHugeFieldNumberss&protobuf_unittest.TestHugeFieldNumberss5protobuf_unittest.TestHugeFieldNumbers.optional_int32ip��tfixed_32s/protobuf_unittest.TestHugeFieldNumbers.fixed_32iq��s5protobuf_unittest.TestHugeFieldNumbers.repeated_int32ir��s3protobuf_unittest.TestHugeFieldNumbers.packed_int32is��t
optional_enums4protobuf_unittest.TestHugeFieldNumbers.optional_enumit��s6protobuf_unittest.TestHugeFieldNumbers.optional_stringiu��s5protobuf_unittest.TestHugeFieldNumbers.optional_bytesiv��s7protobuf_unittest.TestHugeFieldNumbers.optional_messageiw��s4protobuf_unittest.TestHugeFieldNumbers.optionalgroupix��tstring_string_maps8protobuf_unittest.TestHugeFieldNumbers.string_string_mapiz��s3protobuf_unittest.TestHugeFieldNumbers.oneof_uint32i{��toneof_test_all_typess;protobuf_unittest.TestHugeFieldNumbers.oneof_test_all_typesi|��s3protobuf_unittest.TestHugeFieldNumbers.oneof_stringi}��s2protobuf_unittest.TestHugeFieldNumbers.oneof_bytesi~��s2protobuf_unittest.TestHugeFieldNumbers.oneof_fieldi�3i�6t
DESCRIPTORt
__module__sgoogle.protobuf.unittest_pb2sB
UnittestProtoH����tTestServicesprotobuf_unittest.TestServicei8i�8tmethodss!protobuf_unittest.TestService.Footcontaining_servicet
input_typetoutput_types!protobuf_unittest.TestService.BartTestService_Stub(�tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
t_serviceRRtDefaultt_sym_dbR
t-google_dot_protobuf_dot_unittest__import__pb2t5google_dot_protobuf_dot_unittest__import__public__pb2tAttributeErrortgoogletprotobuftunittest_import_public_pb2tFileDescriptorRtEnumDescriptortNonetEnumValueDescriptort_FOREIGNENUMtRegisterEnumDescriptortEnumTypeWrapperRt
_ParseOptionstEnumOptionst_TESTENUMWITHDUPVALUER$t_TESTSPARSEENUMR*RRR R%R&R'R(R)R+R,R-R.R/R0R1t%OPTIONAL_INT32_EXTENSION_FIELD_NUMBERtFieldDescriptortFalsetTrueR2t%OPTIONAL_INT64_EXTENSION_FIELD_NUMBERR;t&OPTIONAL_UINT32_EXTENSION_FIELD_NUMBERR<t&OPTIONAL_UINT64_EXTENSION_FIELD_NUMBERR=t&OPTIONAL_SINT32_EXTENSION_FIELD_NUMBERR>t&OPTIONAL_SINT64_EXTENSION_FIELD_NUMBERR?t'OPTIONAL_FIXED32_EXTENSION_FIELD_NUMBERR@t'OPTIONAL_FIXED64_EXTENSION_FIELD_NUMBERRAt(OPTIONAL_SFIXED32_EXTENSION_FIELD_NUMBERRBt(OPTIONAL_SFIXED64_EXTENSION_FIELD_NUMBERRCt%OPTIONAL_FLOAT_EXTENSION_FIELD_NUMBERtfloatRDt&OPTIONAL_DOUBLE_EXTENSION_FIELD_NUMBERREt$OPTIONAL_BOOL_EXTENSION_FIELD_NUMBERRFt&OPTIONAL_STRING_EXTENSION_FIELD_NUMBERtdecodeRGt%OPTIONAL_BYTES_EXTENSION_FIELD_NUMBERRHt$OPTIONALGROUP_EXTENSION_FIELD_NUMBERRIt.OPTIONAL_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERRJt/OPTIONAL_FOREIGN_MESSAGE_EXTENSION_FIELD_NUMBERRKt.OPTIONAL_IMPORT_MESSAGE_EXTENSION_FIELD_NUMBERRLt+OPTIONAL_NESTED_ENUM_EXTENSION_FIELD_NUMBERRMt,OPTIONAL_FOREIGN_ENUM_EXTENSION_FIELD_NUMBERRNt+OPTIONAL_IMPORT_ENUM_EXTENSION_FIELD_NUMBERROt,OPTIONAL_STRING_PIECE_EXTENSION_FIELD_NUMBERtFieldOptionsRPt$OPTIONAL_CORD_EXTENSION_FIELD_NUMBERRQt5OPTIONAL_PUBLIC_IMPORT_MESSAGE_EXTENSION_FIELD_NUMBERRRt,OPTIONAL_LAZY_MESSAGE_EXTENSION_FIELD_NUMBERRSt%REPEATED_INT32_EXTENSION_FIELD_NUMBERRTt%REPEATED_INT64_EXTENSION_FIELD_NUMBERRUt&REPEATED_UINT32_EXTENSION_FIELD_NUMBERRVt&REPEATED_UINT64_EXTENSION_FIELD_NUMBERRWt&REPEATED_SINT32_EXTENSION_FIELD_NUMBERRXt&REPEATED_SINT64_EXTENSION_FIELD_NUMBERRYt'REPEATED_FIXED32_EXTENSION_FIELD_NUMBERRZt'REPEATED_FIXED64_EXTENSION_FIELD_NUMBERR[t(REPEATED_SFIXED32_EXTENSION_FIELD_NUMBERR\t(REPEATED_SFIXED64_EXTENSION_FIELD_NUMBERR]t%REPEATED_FLOAT_EXTENSION_FIELD_NUMBERR^t&REPEATED_DOUBLE_EXTENSION_FIELD_NUMBERR_t$REPEATED_BOOL_EXTENSION_FIELD_NUMBERR`t&REPEATED_STRING_EXTENSION_FIELD_NUMBERRat%REPEATED_BYTES_EXTENSION_FIELD_NUMBERRbt$REPEATEDGROUP_EXTENSION_FIELD_NUMBERRct.REPEATED_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERRdt/REPEATED_FOREIGN_MESSAGE_EXTENSION_FIELD_NUMBERRet.REPEATED_IMPORT_MESSAGE_EXTENSION_FIELD_NUMBERRft+REPEATED_NESTED_ENUM_EXTENSION_FIELD_NUMBERRgt,REPEATED_FOREIGN_ENUM_EXTENSION_FIELD_NUMBERRht+REPEATED_IMPORT_ENUM_EXTENSION_FIELD_NUMBERRit,REPEATED_STRING_PIECE_EXTENSION_FIELD_NUMBERRjt$REPEATED_CORD_EXTENSION_FIELD_NUMBERRkt,REPEATED_LAZY_MESSAGE_EXTENSION_FIELD_NUMBERRlt$DEFAULT_INT32_EXTENSION_FIELD_NUMBERRmt$DEFAULT_INT64_EXTENSION_FIELD_NUMBERRnt%DEFAULT_UINT32_EXTENSION_FIELD_NUMBERRot%DEFAULT_UINT64_EXTENSION_FIELD_NUMBERRpt%DEFAULT_SINT32_EXTENSION_FIELD_NUMBERRqt%DEFAULT_SINT64_EXTENSION_FIELD_NUMBERRrt&DEFAULT_FIXED32_EXTENSION_FIELD_NUMBERRst&DEFAULT_FIXED64_EXTENSION_FIELD_NUMBERRtt'DEFAULT_SFIXED32_EXTENSION_FIELD_NUMBERRut'DEFAULT_SFIXED64_EXTENSION_FIELD_NUMBERRvt$DEFAULT_FLOAT_EXTENSION_FIELD_NUMBERRwt%DEFAULT_DOUBLE_EXTENSION_FIELD_NUMBERRxt#DEFAULT_BOOL_EXTENSION_FIELD_NUMBERRyt%DEFAULT_STRING_EXTENSION_FIELD_NUMBERRzt$DEFAULT_BYTES_EXTENSION_FIELD_NUMBERR|t*DEFAULT_NESTED_ENUM_EXTENSION_FIELD_NUMBERR~t+DEFAULT_FOREIGN_ENUM_EXTENSION_FIELD_NUMBERRt*DEFAULT_IMPORT_ENUM_EXTENSION_FIELD_NUMBERR�t+DEFAULT_STRING_PIECE_EXTENSION_FIELD_NUMBERR�t#DEFAULT_CORD_EXTENSION_FIELD_NUMBERR�t#ONEOF_UINT32_EXTENSION_FIELD_NUMBERR�t+ONEOF_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERR�t#ONEOF_STRING_EXTENSION_FIELD_NUMBERR�t"ONEOF_BYTES_EXTENSION_FIELD_NUMBERR�t MY_EXTENSION_STRING_FIELD_NUMBERR�tMY_EXTENSION_INT_FIELD_NUMBERR�t#PACKED_INT32_EXTENSION_FIELD_NUMBERR�t#PACKED_INT64_EXTENSION_FIELD_NUMBERR�t$PACKED_UINT32_EXTENSION_FIELD_NUMBERR�t$PACKED_UINT64_EXTENSION_FIELD_NUMBERR�t$PACKED_SINT32_EXTENSION_FIELD_NUMBERR�t$PACKED_SINT64_EXTENSION_FIELD_NUMBERR�t%PACKED_FIXED32_EXTENSION_FIELD_NUMBERR�t%PACKED_FIXED64_EXTENSION_FIELD_NUMBERR�t&PACKED_SFIXED32_EXTENSION_FIELD_NUMBERR�t&PACKED_SFIXED64_EXTENSION_FIELD_NUMBERR�t#PACKED_FLOAT_EXTENSION_FIELD_NUMBERR�t$PACKED_DOUBLE_EXTENSION_FIELD_NUMBERR�t"PACKED_BOOL_EXTENSION_FIELD_NUMBERR�t"PACKED_ENUM_EXTENSION_FIELD_NUMBERR�t%UNPACKED_INT32_EXTENSION_FIELD_NUMBERR�t%UNPACKED_INT64_EXTENSION_FIELD_NUMBERR�t&UNPACKED_UINT32_EXTENSION_FIELD_NUMBERR�t&UNPACKED_UINT64_EXTENSION_FIELD_NUMBERR�t&UNPACKED_SINT32_EXTENSION_FIELD_NUMBERR�t&UNPACKED_SINT64_EXTENSION_FIELD_NUMBERR�t'UNPACKED_FIXED32_EXTENSION_FIELD_NUMBERR�t'UNPACKED_FIXED64_EXTENSION_FIELD_NUMBERR�t(UNPACKED_SFIXED32_EXTENSION_FIELD_NUMBERR�t(UNPACKED_SFIXED64_EXTENSION_FIELD_NUMBERR�t%UNPACKED_FLOAT_EXTENSION_FIELD_NUMBERR�t&UNPACKED_DOUBLE_EXTENSION_FIELD_NUMBERR�t$UNPACKED_BOOL_EXTENSION_FIELD_NUMBERR�t$UNPACKED_ENUM_EXTENSION_FIELD_NUMBERR�tTEST_ALL_TYPES_FIELD_NUMBERR�t_TESTALLTYPES_NESTEDENUMt_TESTONEOF2_NESTEDENUMt&_TESTDYNAMICEXTENSIONS_DYNAMICENUMTYPEt
Descriptort_TESTALLTYPES_NESTEDMESSAGEt_TESTALLTYPES_OPTIONALGROUPt_TESTALLTYPES_REPEATEDGROUPtOneofDescriptort
_TESTALLTYPESt_NESTEDTESTALLTYPESt_TESTDEPRECATEDFIELDStMessageOptionst_TESTDEPRECATEDMESSAGEt_FOREIGNMESSAGEt_TESTRESERVEDFIELDSt_TESTALLEXTENSIONSt_OPTIONALGROUP_EXTENSIONt_REPEATEDGROUP_EXTENSIONt_TESTNESTEDEXTENSIONt
_TESTREQUIREDt_TESTREQUIREDFOREIGNt_TESTREQUIREDMESSAGEt_TESTFOREIGNNESTEDt_TESTEMPTYMESSAGEt_TESTEMPTYMESSAGEWITHEXTENSIONSt_TESTMULTIPLEEXTENSIONRANGESt_TESTREALLYLARGETAGNUMBERt_TESTRECURSIVEMESSAGEt _TESTMUTUALRECURSIONA_SUBMESSAGEt_TESTMUTUALRECURSIONA_SUBGROUPt_TESTMUTUALRECURSIONAt_TESTMUTUALRECURSIONBt&_TESTISINITIALIZED_SUBMESSAGE_SUBGROUPt_TESTISINITIALIZED_SUBMESSAGEt_TESTISINITIALIZEDt_TESTDUPFIELDNUMBER_FOOt_TESTDUPFIELDNUMBER_BARt_TESTDUPFIELDNUMBERt_TESTEAGERMESSAGEt_TESTLAZYMESSAGEt'_TESTNESTEDMESSAGEHASBITS_NESTEDMESSAGEt_TESTNESTEDMESSAGEHASBITSt_TESTCAMELCASEFIELDNAMESt!_TESTFIELDORDERINGS_NESTEDMESSAGEt_TESTFIELDORDERINGSt_TESTEXTREMEDEFAULTVALUESt_SPARSEENUMMESSAGEt
_ONESTRINGt_MORESTRINGt	_ONEBYTESt
_MOREBYTESt
_INT32MESSAGEt_UINT32MESSAGEt
_INT64MESSAGEt_UINT64MESSAGEt_BOOLMESSAGEt_TESTONEOF_FOOGROUPt
_TESTONEOFt&_TESTONEOFBACKWARDSCOMPATIBLE_FOOGROUPt_TESTONEOFBACKWARDSCOMPATIBLEt_TESTONEOF2_FOOGROUPt_TESTONEOF2_NESTEDMESSAGEt_TESTONEOF2t _TESTREQUIREDONEOF_NESTEDMESSAGEt_TESTREQUIREDONEOFt_TESTPACKEDTYPESt_TESTUNPACKEDTYPESt_TESTPACKEDEXTENSIONSt_TESTUNPACKEDEXTENSIONSt)_TESTDYNAMICEXTENSIONS_DYNAMICMESSAGETYPEt_TESTDYNAMICEXTENSIONSt$_TESTREPEATEDSCALARDIFFERENTTAGSIZESt0_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP1t0_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP2t)_TESTPARSINGMERGE_REPEATEDFIELDSGENERATORt_TESTPARSINGMERGE_OPTIONALGROUPt_TESTPARSINGMERGE_REPEATEDGROUPt_TESTPARSINGMERGEt_TESTCOMMENTINJECTIONMESSAGEt_FOOREQUESTt_FOORESPONSEt_FOOCLIENTMESSAGEt_FOOSERVERMESSAGEt_BARREQUESTt_BARRESPONSEt
_TESTJSONNAMEt#_TESTHUGEFIELDNUMBERS_OPTIONALGROUPt*_TESTHUGEFIELDNUMBERS_STRINGSTRINGMAPENTRYt_TESTHUGEFIELDNUMBERSR!tfields_by_nameR7t_IMPORTMESSAGER8t_IMPORTENUMt_PUBLICIMPORTMESSAGEtoneofs_by_nameR�tappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR�tRegisterMessageR�R�R�R	R
RRRRRRRRR<R@RBRDRERFRGRHRNRJRKRPRQRTRRRSRWRXR[R\RjRnR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RRtRegisterExtensionthas_optionstFileOptionst_optionstServiceDescriptortMethodDescriptort_TESTSERVICEtRegisterServiceDescriptortservices_by_nametGeneratedServiceTypetServiceR
tGeneratedServiceStubTypeR(((s@/usr/lib/python2.7/site-packages/google/protobuf/unittest_pb2.pyt<module>s-%

						
							
									
																							'	'		'																							'	'	'																			'	'							'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'							
					
					
																																	$	$		$																							$	$	$																			$	$														*																																																																												!																																																*			*															$	$					$	*																																						$	$																																																																			$	$					$			$	$																				$	$	$	$	$	$	$	$	$	$	$	$	$	*			$	$	$	$	$	$	$	$	$	$	$	$	$	*																*																																																																											$	$																																							


















































































































































































































































	
	
	

	
	




	















	
	
	

	
	



	















	
	




	

















	













	
	
	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!(((((((((	!((((((((((((((((((((((((((((((((((((((((((	!((			

PK�\֗������%protobuf/unittest_proto3_arena_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest_proto3_arena.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import unittest_import_pb2 as google_dot_protobuf_dot_unittest__import__pb2
try:
  google_dot_protobuf_dot_unittest__import__public__pb2 = google_dot_protobuf_dot_unittest__import__pb2.google_dot_protobuf_dot_unittest__import__public__pb2
except AttributeError:
  google_dot_protobuf_dot_unittest__import__public__pb2 = google_dot_protobuf_dot_unittest__import__pb2.google.protobuf.unittest_import_public_pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest_proto3_arena.proto',
  package='proto3_arena_unittest',
  syntax='proto3',
  serialized_pb=_b('\n+google/protobuf/unittest_proto3_arena.proto\x12\x15proto3_arena_unittest\x1a%google/protobuf/unittest_import.proto\"\xc9\x11\n\x0cTestAllTypes\x12\x16\n\x0eoptional_int32\x18\x01 \x01(\x05\x12\x16\n\x0eoptional_int64\x18\x02 \x01(\x03\x12\x17\n\x0foptional_uint32\x18\x03 \x01(\r\x12\x17\n\x0foptional_uint64\x18\x04 \x01(\x04\x12\x17\n\x0foptional_sint32\x18\x05 \x01(\x11\x12\x17\n\x0foptional_sint64\x18\x06 \x01(\x12\x12\x18\n\x10optional_fixed32\x18\x07 \x01(\x07\x12\x18\n\x10optional_fixed64\x18\x08 \x01(\x06\x12\x19\n\x11optional_sfixed32\x18\t \x01(\x0f\x12\x19\n\x11optional_sfixed64\x18\n \x01(\x10\x12\x16\n\x0eoptional_float\x18\x0b \x01(\x02\x12\x17\n\x0foptional_double\x18\x0c \x01(\x01\x12\x15\n\roptional_bool\x18\r \x01(\x08\x12\x17\n\x0foptional_string\x18\x0e \x01(\t\x12\x16\n\x0eoptional_bytes\x18\x0f \x01(\x0c\x12R\n\x17optional_nested_message\x18\x12 \x01(\x0b\x32\x31.proto3_arena_unittest.TestAllTypes.NestedMessage\x12G\n\x18optional_foreign_message\x18\x13 \x01(\x0b\x32%.proto3_arena_unittest.ForeignMessage\x12H\n\x17optional_import_message\x18\x14 \x01(\x0b\x32\'.protobuf_unittest_import.ImportMessage\x12L\n\x14optional_nested_enum\x18\x15 \x01(\x0e\x32..proto3_arena_unittest.TestAllTypes.NestedEnum\x12\x41\n\x15optional_foreign_enum\x18\x16 \x01(\x0e\x32\".proto3_arena_unittest.ForeignEnum\x12!\n\x15optional_string_piece\x18\x18 \x01(\tB\x02\x08\x02\x12\x19\n\roptional_cord\x18\x19 \x01(\tB\x02\x08\x01\x12U\n\x1eoptional_public_import_message\x18\x1a \x01(\x0b\x32-.protobuf_unittest_import.PublicImportMessage\x12T\n\x15optional_lazy_message\x18\x1b \x01(\x0b\x32\x31.proto3_arena_unittest.TestAllTypes.NestedMessageB\x02(\x01\x12Q\n\x1coptional_lazy_import_message\x18s \x01(\x0b\x32\'.protobuf_unittest_import.ImportMessageB\x02(\x01\x12\x16\n\x0erepeated_int32\x18\x1f \x03(\x05\x12\x16\n\x0erepeated_int64\x18  \x03(\x03\x12\x17\n\x0frepeated_uint32\x18! \x03(\r\x12\x17\n\x0frepeated_uint64\x18\" \x03(\x04\x12\x17\n\x0frepeated_sint32\x18# \x03(\x11\x12\x17\n\x0frepeated_sint64\x18$ \x03(\x12\x12\x18\n\x10repeated_fixed32\x18% \x03(\x07\x12\x18\n\x10repeated_fixed64\x18& \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\' \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18( \x03(\x10\x12\x16\n\x0erepeated_float\x18) \x03(\x02\x12\x17\n\x0frepeated_double\x18* \x03(\x01\x12\x15\n\rrepeated_bool\x18+ \x03(\x08\x12\x17\n\x0frepeated_string\x18, \x03(\t\x12\x16\n\x0erepeated_bytes\x18- \x03(\x0c\x12R\n\x17repeated_nested_message\x18\x30 \x03(\x0b\x32\x31.proto3_arena_unittest.TestAllTypes.NestedMessage\x12G\n\x18repeated_foreign_message\x18\x31 \x03(\x0b\x32%.proto3_arena_unittest.ForeignMessage\x12H\n\x17repeated_import_message\x18\x32 \x03(\x0b\x32\'.protobuf_unittest_import.ImportMessage\x12L\n\x14repeated_nested_enum\x18\x33 \x03(\x0e\x32..proto3_arena_unittest.TestAllTypes.NestedEnum\x12\x41\n\x15repeated_foreign_enum\x18\x34 \x03(\x0e\x32\".proto3_arena_unittest.ForeignEnum\x12!\n\x15repeated_string_piece\x18\x36 \x03(\tB\x02\x08\x02\x12\x19\n\rrepeated_cord\x18\x37 \x03(\tB\x02\x08\x01\x12T\n\x15repeated_lazy_message\x18\x39 \x03(\x0b\x32\x31.proto3_arena_unittest.TestAllTypes.NestedMessageB\x02(\x01\x12\x16\n\x0coneof_uint32\x18o \x01(\rH\x00\x12Q\n\x14oneof_nested_message\x18p \x01(\x0b\x32\x31.proto3_arena_unittest.TestAllTypes.NestedMessageH\x00\x12\x16\n\x0coneof_string\x18q \x01(\tH\x00\x12\x15\n\x0boneof_bytes\x18r \x01(\x0cH\x00\x1a\x1b\n\rNestedMessage\x12\n\n\x02\x62\x62\x18\x01 \x01(\x05\"C\n\nNestedEnum\x12\x08\n\x04ZERO\x10\x00\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02\x12\x07\n\x03\x42\x41Z\x10\x03\x12\x10\n\x03NEG\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x42\r\n\x0boneof_field\"\xae\x03\n\x0fTestPackedTypes\x12\x18\n\x0cpacked_int32\x18Z \x03(\x05\x42\x02\x10\x01\x12\x18\n\x0cpacked_int64\x18[ \x03(\x03\x42\x02\x10\x01\x12\x19\n\rpacked_uint32\x18\\ \x03(\rB\x02\x10\x01\x12\x19\n\rpacked_uint64\x18] \x03(\x04\x42\x02\x10\x01\x12\x19\n\rpacked_sint32\x18^ \x03(\x11\x42\x02\x10\x01\x12\x19\n\rpacked_sint64\x18_ \x03(\x12\x42\x02\x10\x01\x12\x1a\n\x0epacked_fixed32\x18` \x03(\x07\x42\x02\x10\x01\x12\x1a\n\x0epacked_fixed64\x18\x61 \x03(\x06\x42\x02\x10\x01\x12\x1b\n\x0fpacked_sfixed32\x18\x62 \x03(\x0f\x42\x02\x10\x01\x12\x1b\n\x0fpacked_sfixed64\x18\x63 \x03(\x10\x42\x02\x10\x01\x12\x18\n\x0cpacked_float\x18\x64 \x03(\x02\x42\x02\x10\x01\x12\x19\n\rpacked_double\x18\x65 \x03(\x01\x42\x02\x10\x01\x12\x17\n\x0bpacked_bool\x18\x66 \x03(\x08\x42\x02\x10\x01\x12;\n\x0bpacked_enum\x18g \x03(\x0e\x32\".proto3_arena_unittest.ForeignEnumB\x02\x10\x01\"\xdf\x03\n\x11TestUnpackedTypes\x12\x1a\n\x0erepeated_int32\x18\x01 \x03(\x05\x42\x02\x10\x00\x12\x1a\n\x0erepeated_int64\x18\x02 \x03(\x03\x42\x02\x10\x00\x12\x1b\n\x0frepeated_uint32\x18\x03 \x03(\rB\x02\x10\x00\x12\x1b\n\x0frepeated_uint64\x18\x04 \x03(\x04\x42\x02\x10\x00\x12\x1b\n\x0frepeated_sint32\x18\x05 \x03(\x11\x42\x02\x10\x00\x12\x1b\n\x0frepeated_sint64\x18\x06 \x03(\x12\x42\x02\x10\x00\x12\x1c\n\x10repeated_fixed32\x18\x07 \x03(\x07\x42\x02\x10\x00\x12\x1c\n\x10repeated_fixed64\x18\x08 \x03(\x06\x42\x02\x10\x00\x12\x1d\n\x11repeated_sfixed32\x18\t \x03(\x0f\x42\x02\x10\x00\x12\x1d\n\x11repeated_sfixed64\x18\n \x03(\x10\x42\x02\x10\x00\x12\x1a\n\x0erepeated_float\x18\x0b \x03(\x02\x42\x02\x10\x00\x12\x1b\n\x0frepeated_double\x18\x0c \x03(\x01\x42\x02\x10\x00\x12\x19\n\rrepeated_bool\x18\r \x03(\x08\x42\x02\x10\x00\x12P\n\x14repeated_nested_enum\x18\x0e \x03(\x0e\x32..proto3_arena_unittest.TestAllTypes.NestedEnumB\x02\x10\x00\"\xc7\x01\n\x12NestedTestAllTypes\x12\x38\n\x05\x63hild\x18\x01 \x01(\x0b\x32).proto3_arena_unittest.NestedTestAllTypes\x12\x34\n\x07payload\x18\x02 \x01(\x0b\x32#.proto3_arena_unittest.TestAllTypes\x12\x41\n\x0erepeated_child\x18\x03 \x03(\x0b\x32).proto3_arena_unittest.NestedTestAllTypes\"\x1b\n\x0e\x46oreignMessage\x12\t\n\x01\x63\x18\x01 \x01(\x05\"\x12\n\x10TestEmptyMessage*R\n\x0b\x46oreignEnum\x12\x10\n\x0c\x46OREIGN_ZERO\x10\x00\x12\x0f\n\x0b\x46OREIGN_FOO\x10\x04\x12\x0f\n\x0b\x46OREIGN_BAR\x10\x05\x12\x0f\n\x0b\x46OREIGN_BAZ\x10\x06\x42\x03\xf8\x01\x01\x62\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_unittest__import__pb2.DESCRIPTOR,])

_FOREIGNENUM = _descriptor.EnumDescriptor(
  name='ForeignEnum',
  full_name='proto3_arena_unittest.ForeignEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_ZERO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_FOO', index=1, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_BAR', index=2, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_BAZ', index=3, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3527,
  serialized_end=3609,
)
_sym_db.RegisterEnumDescriptor(_FOREIGNENUM)

ForeignEnum = enum_type_wrapper.EnumTypeWrapper(_FOREIGNENUM)
FOREIGN_ZERO = 0
FOREIGN_FOO = 4
FOREIGN_BAR = 5
FOREIGN_BAZ = 6


_TESTALLTYPES_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='proto3_arena_unittest.TestAllTypes.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ZERO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOO', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAZ', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NEG', index=4, number=-1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2277,
  serialized_end=2344,
)
_sym_db.RegisterEnumDescriptor(_TESTALLTYPES_NESTEDENUM)


_TESTALLTYPES_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='proto3_arena_unittest.TestAllTypes.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bb', full_name='proto3_arena_unittest.TestAllTypes.NestedMessage.bb', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2248,
  serialized_end=2275,
)

_TESTALLTYPES = _descriptor.Descriptor(
  name='TestAllTypes',
  full_name='proto3_arena_unittest.TestAllTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_int32', full_name='proto3_arena_unittest.TestAllTypes.optional_int32', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_int64', full_name='proto3_arena_unittest.TestAllTypes.optional_int64', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint32', full_name='proto3_arena_unittest.TestAllTypes.optional_uint32', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint64', full_name='proto3_arena_unittest.TestAllTypes.optional_uint64', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sint32', full_name='proto3_arena_unittest.TestAllTypes.optional_sint32', index=4,
      number=5, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sint64', full_name='proto3_arena_unittest.TestAllTypes.optional_sint64', index=5,
      number=6, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_fixed32', full_name='proto3_arena_unittest.TestAllTypes.optional_fixed32', index=6,
      number=7, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_fixed64', full_name='proto3_arena_unittest.TestAllTypes.optional_fixed64', index=7,
      number=8, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sfixed32', full_name='proto3_arena_unittest.TestAllTypes.optional_sfixed32', index=8,
      number=9, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sfixed64', full_name='proto3_arena_unittest.TestAllTypes.optional_sfixed64', index=9,
      number=10, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_float', full_name='proto3_arena_unittest.TestAllTypes.optional_float', index=10,
      number=11, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_double', full_name='proto3_arena_unittest.TestAllTypes.optional_double', index=11,
      number=12, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bool', full_name='proto3_arena_unittest.TestAllTypes.optional_bool', index=12,
      number=13, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string', full_name='proto3_arena_unittest.TestAllTypes.optional_string', index=13,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bytes', full_name='proto3_arena_unittest.TestAllTypes.optional_bytes', index=14,
      number=15, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_message', full_name='proto3_arena_unittest.TestAllTypes.optional_nested_message', index=15,
      number=18, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_foreign_message', full_name='proto3_arena_unittest.TestAllTypes.optional_foreign_message', index=16,
      number=19, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_import_message', full_name='proto3_arena_unittest.TestAllTypes.optional_import_message', index=17,
      number=20, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_enum', full_name='proto3_arena_unittest.TestAllTypes.optional_nested_enum', index=18,
      number=21, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_foreign_enum', full_name='proto3_arena_unittest.TestAllTypes.optional_foreign_enum', index=19,
      number=22, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string_piece', full_name='proto3_arena_unittest.TestAllTypes.optional_string_piece', index=20,
      number=24, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_cord', full_name='proto3_arena_unittest.TestAllTypes.optional_cord', index=21,
      number=25, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_public_import_message', full_name='proto3_arena_unittest.TestAllTypes.optional_public_import_message', index=22,
      number=26, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_lazy_message', full_name='proto3_arena_unittest.TestAllTypes.optional_lazy_message', index=23,
      number=27, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_lazy_import_message', full_name='proto3_arena_unittest.TestAllTypes.optional_lazy_import_message', index=24,
      number=115, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int32', full_name='proto3_arena_unittest.TestAllTypes.repeated_int32', index=25,
      number=31, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64', full_name='proto3_arena_unittest.TestAllTypes.repeated_int64', index=26,
      number=32, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32', full_name='proto3_arena_unittest.TestAllTypes.repeated_uint32', index=27,
      number=33, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64', full_name='proto3_arena_unittest.TestAllTypes.repeated_uint64', index=28,
      number=34, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint32', full_name='proto3_arena_unittest.TestAllTypes.repeated_sint32', index=29,
      number=35, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint64', full_name='proto3_arena_unittest.TestAllTypes.repeated_sint64', index=30,
      number=36, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed32', full_name='proto3_arena_unittest.TestAllTypes.repeated_fixed32', index=31,
      number=37, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed64', full_name='proto3_arena_unittest.TestAllTypes.repeated_fixed64', index=32,
      number=38, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed32', full_name='proto3_arena_unittest.TestAllTypes.repeated_sfixed32', index=33,
      number=39, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed64', full_name='proto3_arena_unittest.TestAllTypes.repeated_sfixed64', index=34,
      number=40, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float', full_name='proto3_arena_unittest.TestAllTypes.repeated_float', index=35,
      number=41, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double', full_name='proto3_arena_unittest.TestAllTypes.repeated_double', index=36,
      number=42, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool', full_name='proto3_arena_unittest.TestAllTypes.repeated_bool', index=37,
      number=43, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string', full_name='proto3_arena_unittest.TestAllTypes.repeated_string', index=38,
      number=44, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bytes', full_name='proto3_arena_unittest.TestAllTypes.repeated_bytes', index=39,
      number=45, type=12, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_message', full_name='proto3_arena_unittest.TestAllTypes.repeated_nested_message', index=40,
      number=48, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_foreign_message', full_name='proto3_arena_unittest.TestAllTypes.repeated_foreign_message', index=41,
      number=49, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_import_message', full_name='proto3_arena_unittest.TestAllTypes.repeated_import_message', index=42,
      number=50, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_enum', full_name='proto3_arena_unittest.TestAllTypes.repeated_nested_enum', index=43,
      number=51, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_foreign_enum', full_name='proto3_arena_unittest.TestAllTypes.repeated_foreign_enum', index=44,
      number=52, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string_piece', full_name='proto3_arena_unittest.TestAllTypes.repeated_string_piece', index=45,
      number=54, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_cord', full_name='proto3_arena_unittest.TestAllTypes.repeated_cord', index=46,
      number=55, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_lazy_message', full_name='proto3_arena_unittest.TestAllTypes.repeated_lazy_message', index=47,
      number=57, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_uint32', full_name='proto3_arena_unittest.TestAllTypes.oneof_uint32', index=48,
      number=111, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_nested_message', full_name='proto3_arena_unittest.TestAllTypes.oneof_nested_message', index=49,
      number=112, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_string', full_name='proto3_arena_unittest.TestAllTypes.oneof_string', index=50,
      number=113, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_bytes', full_name='proto3_arena_unittest.TestAllTypes.oneof_bytes', index=51,
      number=114, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTALLTYPES_NESTEDMESSAGE, ],
  enum_types=[
    _TESTALLTYPES_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='oneof_field', full_name='proto3_arena_unittest.TestAllTypes.oneof_field',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=110,
  serialized_end=2359,
)


_TESTPACKEDTYPES = _descriptor.Descriptor(
  name='TestPackedTypes',
  full_name='proto3_arena_unittest.TestPackedTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='packed_int32', full_name='proto3_arena_unittest.TestPackedTypes.packed_int32', index=0,
      number=90, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_int64', full_name='proto3_arena_unittest.TestPackedTypes.packed_int64', index=1,
      number=91, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_uint32', full_name='proto3_arena_unittest.TestPackedTypes.packed_uint32', index=2,
      number=92, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_uint64', full_name='proto3_arena_unittest.TestPackedTypes.packed_uint64', index=3,
      number=93, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_sint32', full_name='proto3_arena_unittest.TestPackedTypes.packed_sint32', index=4,
      number=94, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_sint64', full_name='proto3_arena_unittest.TestPackedTypes.packed_sint64', index=5,
      number=95, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_fixed32', full_name='proto3_arena_unittest.TestPackedTypes.packed_fixed32', index=6,
      number=96, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_fixed64', full_name='proto3_arena_unittest.TestPackedTypes.packed_fixed64', index=7,
      number=97, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_sfixed32', full_name='proto3_arena_unittest.TestPackedTypes.packed_sfixed32', index=8,
      number=98, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_sfixed64', full_name='proto3_arena_unittest.TestPackedTypes.packed_sfixed64', index=9,
      number=99, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_float', full_name='proto3_arena_unittest.TestPackedTypes.packed_float', index=10,
      number=100, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_double', full_name='proto3_arena_unittest.TestPackedTypes.packed_double', index=11,
      number=101, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_bool', full_name='proto3_arena_unittest.TestPackedTypes.packed_bool', index=12,
      number=102, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_enum', full_name='proto3_arena_unittest.TestPackedTypes.packed_enum', index=13,
      number=103, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2362,
  serialized_end=2792,
)


_TESTUNPACKEDTYPES = _descriptor.Descriptor(
  name='TestUnpackedTypes',
  full_name='proto3_arena_unittest.TestUnpackedTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='repeated_int32', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_int32', index=0,
      number=1, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_int64', index=1,
      number=2, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_uint32', index=2,
      number=3, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_uint64', index=3,
      number=4, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint32', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_sint32', index=4,
      number=5, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint64', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_sint64', index=5,
      number=6, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed32', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_fixed32', index=6,
      number=7, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed64', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_fixed64', index=7,
      number=8, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed32', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_sfixed32', index=8,
      number=9, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed64', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_sfixed64', index=9,
      number=10, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_float', index=10,
      number=11, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_double', index=11,
      number=12, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_bool', index=12,
      number=13, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_enum', full_name='proto3_arena_unittest.TestUnpackedTypes.repeated_nested_enum', index=13,
      number=14, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2795,
  serialized_end=3274,
)


_NESTEDTESTALLTYPES = _descriptor.Descriptor(
  name='NestedTestAllTypes',
  full_name='proto3_arena_unittest.NestedTestAllTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='child', full_name='proto3_arena_unittest.NestedTestAllTypes.child', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='payload', full_name='proto3_arena_unittest.NestedTestAllTypes.payload', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_child', full_name='proto3_arena_unittest.NestedTestAllTypes.repeated_child', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3277,
  serialized_end=3476,
)


_FOREIGNMESSAGE = _descriptor.Descriptor(
  name='ForeignMessage',
  full_name='proto3_arena_unittest.ForeignMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='c', full_name='proto3_arena_unittest.ForeignMessage.c', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3478,
  serialized_end=3505,
)


_TESTEMPTYMESSAGE = _descriptor.Descriptor(
  name='TestEmptyMessage',
  full_name='proto3_arena_unittest.TestEmptyMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3507,
  serialized_end=3525,
)

_TESTALLTYPES_NESTEDMESSAGE.containing_type = _TESTALLTYPES
_TESTALLTYPES.fields_by_name['optional_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['optional_foreign_message'].message_type = _FOREIGNMESSAGE
_TESTALLTYPES.fields_by_name['optional_import_message'].message_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTMESSAGE
_TESTALLTYPES.fields_by_name['optional_nested_enum'].enum_type = _TESTALLTYPES_NESTEDENUM
_TESTALLTYPES.fields_by_name['optional_foreign_enum'].enum_type = _FOREIGNENUM
_TESTALLTYPES.fields_by_name['optional_public_import_message'].message_type = google_dot_protobuf_dot_unittest__import__public__pb2._PUBLICIMPORTMESSAGE
_TESTALLTYPES.fields_by_name['optional_lazy_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['optional_lazy_import_message'].message_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTMESSAGE
_TESTALLTYPES.fields_by_name['repeated_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['repeated_foreign_message'].message_type = _FOREIGNMESSAGE
_TESTALLTYPES.fields_by_name['repeated_import_message'].message_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTMESSAGE
_TESTALLTYPES.fields_by_name['repeated_nested_enum'].enum_type = _TESTALLTYPES_NESTEDENUM
_TESTALLTYPES.fields_by_name['repeated_foreign_enum'].enum_type = _FOREIGNENUM
_TESTALLTYPES.fields_by_name['repeated_lazy_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['oneof_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES_NESTEDENUM.containing_type = _TESTALLTYPES
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_uint32'])
_TESTALLTYPES.fields_by_name['oneof_uint32'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_nested_message'])
_TESTALLTYPES.fields_by_name['oneof_nested_message'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_string'])
_TESTALLTYPES.fields_by_name['oneof_string'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_bytes'])
_TESTALLTYPES.fields_by_name['oneof_bytes'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTPACKEDTYPES.fields_by_name['packed_enum'].enum_type = _FOREIGNENUM
_TESTUNPACKEDTYPES.fields_by_name['repeated_nested_enum'].enum_type = _TESTALLTYPES_NESTEDENUM
_NESTEDTESTALLTYPES.fields_by_name['child'].message_type = _NESTEDTESTALLTYPES
_NESTEDTESTALLTYPES.fields_by_name['payload'].message_type = _TESTALLTYPES
_NESTEDTESTALLTYPES.fields_by_name['repeated_child'].message_type = _NESTEDTESTALLTYPES
DESCRIPTOR.message_types_by_name['TestAllTypes'] = _TESTALLTYPES
DESCRIPTOR.message_types_by_name['TestPackedTypes'] = _TESTPACKEDTYPES
DESCRIPTOR.message_types_by_name['TestUnpackedTypes'] = _TESTUNPACKEDTYPES
DESCRIPTOR.message_types_by_name['NestedTestAllTypes'] = _NESTEDTESTALLTYPES
DESCRIPTOR.message_types_by_name['ForeignMessage'] = _FOREIGNMESSAGE
DESCRIPTOR.message_types_by_name['TestEmptyMessage'] = _TESTEMPTYMESSAGE
DESCRIPTOR.enum_types_by_name['ForeignEnum'] = _FOREIGNENUM
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestAllTypes = _reflection.GeneratedProtocolMessageType('TestAllTypes', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPES_NESTEDMESSAGE,
    __module__ = 'google.protobuf.unittest_proto3_arena_pb2'
    # @@protoc_insertion_point(class_scope:proto3_arena_unittest.TestAllTypes.NestedMessage)
    ))
  ,
  DESCRIPTOR = _TESTALLTYPES,
  __module__ = 'google.protobuf.unittest_proto3_arena_pb2'
  # @@protoc_insertion_point(class_scope:proto3_arena_unittest.TestAllTypes)
  ))
_sym_db.RegisterMessage(TestAllTypes)
_sym_db.RegisterMessage(TestAllTypes.NestedMessage)

TestPackedTypes = _reflection.GeneratedProtocolMessageType('TestPackedTypes', (_message.Message,), dict(
  DESCRIPTOR = _TESTPACKEDTYPES,
  __module__ = 'google.protobuf.unittest_proto3_arena_pb2'
  # @@protoc_insertion_point(class_scope:proto3_arena_unittest.TestPackedTypes)
  ))
_sym_db.RegisterMessage(TestPackedTypes)

TestUnpackedTypes = _reflection.GeneratedProtocolMessageType('TestUnpackedTypes', (_message.Message,), dict(
  DESCRIPTOR = _TESTUNPACKEDTYPES,
  __module__ = 'google.protobuf.unittest_proto3_arena_pb2'
  # @@protoc_insertion_point(class_scope:proto3_arena_unittest.TestUnpackedTypes)
  ))
_sym_db.RegisterMessage(TestUnpackedTypes)

NestedTestAllTypes = _reflection.GeneratedProtocolMessageType('NestedTestAllTypes', (_message.Message,), dict(
  DESCRIPTOR = _NESTEDTESTALLTYPES,
  __module__ = 'google.protobuf.unittest_proto3_arena_pb2'
  # @@protoc_insertion_point(class_scope:proto3_arena_unittest.NestedTestAllTypes)
  ))
_sym_db.RegisterMessage(NestedTestAllTypes)

ForeignMessage = _reflection.GeneratedProtocolMessageType('ForeignMessage', (_message.Message,), dict(
  DESCRIPTOR = _FOREIGNMESSAGE,
  __module__ = 'google.protobuf.unittest_proto3_arena_pb2'
  # @@protoc_insertion_point(class_scope:proto3_arena_unittest.ForeignMessage)
  ))
_sym_db.RegisterMessage(ForeignMessage)

TestEmptyMessage = _reflection.GeneratedProtocolMessageType('TestEmptyMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTEMPTYMESSAGE,
  __module__ = 'google.protobuf.unittest_proto3_arena_pb2'
  # @@protoc_insertion_point(class_scope:proto3_arena_unittest.TestEmptyMessage)
  ))
_sym_db.RegisterMessage(TestEmptyMessage)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\370\001\001'))
_TESTALLTYPES.fields_by_name['optional_string_piece'].has_options = True
_TESTALLTYPES.fields_by_name['optional_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPES.fields_by_name['optional_cord'].has_options = True
_TESTALLTYPES.fields_by_name['optional_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTALLTYPES.fields_by_name['optional_lazy_message'].has_options = True
_TESTALLTYPES.fields_by_name['optional_lazy_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
_TESTALLTYPES.fields_by_name['optional_lazy_import_message'].has_options = True
_TESTALLTYPES.fields_by_name['optional_lazy_import_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
_TESTALLTYPES.fields_by_name['repeated_string_piece'].has_options = True
_TESTALLTYPES.fields_by_name['repeated_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPES.fields_by_name['repeated_cord'].has_options = True
_TESTALLTYPES.fields_by_name['repeated_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTALLTYPES.fields_by_name['repeated_lazy_message'].has_options = True
_TESTALLTYPES.fields_by_name['repeated_lazy_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
_TESTPACKEDTYPES.fields_by_name['packed_int32'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_int32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_int64'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_int64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_uint32'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_uint32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_uint64'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_uint64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_sint32'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_sint32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_sint64'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_sint64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_fixed32'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_fixed32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_fixed64'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_fixed64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_sfixed32'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_sfixed32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_sfixed64'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_sfixed64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_float'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_float']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_double'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_double']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_bool'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_bool']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_enum'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_enum']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_int32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_int32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_int64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_int64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_uint32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_uint32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_uint64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_uint64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_sint32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_sint32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_sint64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_sint64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_fixed32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_fixed32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_fixed64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_fixed64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_sfixed32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_sfixed32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_sfixed64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_sfixed64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_float'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_float']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_double'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_double']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_bool'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_bool']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_nested_enum'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_nested_enum']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
# @@protoc_insertion_point(module_scope)
PK�\�2�Kff$protobuf/map_proto2_unittest_pb2.pycnu�[����
���hc8@s�1ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZy
ejZWn ek
r�ejjjZnXejd
dddddded�dejg�Zejd
ddddddedejd
dddddddd d�ejd
d!dd"dd"ddd d�ejd
d#dd$dd$ddd d�gd%dddd&d'd(d)�	Zeje�eje�Z ejd
d*dd+dddedejd
d,ddddddd d�ejd
d-dd"dd"ddd d�ejd
d.dd$dd$ddd d�ejd
d/ddddddd d�gd%dddd&d0d(d1�	Z!eje!�eje!�Z"dZ#d"Z$d$Z%dZ&d"Z'd$Z(dZ)ej*d
d2dd3ddded%dd4ej+d
d5dd6dddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@ddAdd"dd$d dBd8dCd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&dKd(dL�Z/ej*d
dMddNddded%dd4ej+d
d5ddOdddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@ddPdd"dd$d dBd8dCd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&dQd(dR�Z0ej*d
dSddTddded%dd4ej+d
dUddVddddWd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
dZdd[dd"dd\d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�gdDgdEe/e0gdFgdddHe,dddIgdJgd&d]d(dR�Z1ej*d
d2dd^ddded%dd4ej+d
d5dd_dddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd`dd"dd$d dBd8dCd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&dad(db�Z2ej*d
dMddcddded%dd4ej+d
d5ddddddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@ddedd"dd$d dBd8dCd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&dfd(dg�Z3ej*d
dhddiddded%dd4ej+d
dUddjddddWd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
dZddkdd"dd\d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�gdDgdEe2e3gdFgdddHe,dddIgdJgd&dld(dg�Z4ej*d
dmddnddded%dd4ej+d
d5ddodddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@ddpdd"dd$d dBd8dCd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&dqd(dr�Z5ej*d
dsddtddded%dd4ej+d
duddvdddd"d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�gdDgdEe5gdFgdddHe,dddIgdJgd&dwd(dr�Z6ej*d
dxddyddded%dd4ej+d
d5ddzdddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd{dd"dd$d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d|d(d}�Z7ej*d
d~ddddded%dd4ej+d
d�dd�dddd"d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�gdDgdEe7gdFgdddHe,dddIgdJgd&d�d(d}�Z8ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z9ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d dd8d$d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z:ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8dd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z;ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d�d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z<ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z=ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d$d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z>ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8dd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z?ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d�d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z@ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��ZAej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d$d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��ZBej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d dCd8d�d9d"d:e,d;e,d<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��ZCej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d�d9d"d:e,d;ed��jDd��d<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��ZEej*d
d�dd�ddded%dd4ej+d
d�dd�dddd"d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd"dd$d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd$ddd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dddd�d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd�dd7d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd7dd�d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd�dd�d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd�ddCd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�ddCdd�d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd�ddYd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�ddYddXd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�ddXdd�d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�gdDgdEe9e:e;e<e=e>e?e@eAeBeCeEgdFgdddHe,dddIgdJgd&d�d(d��ZFej*d
d�dd�ddded%dd4ej+d
d�dd�dddd"d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdddHe,dddIgdJgd&d�d(d��ZGee/jHd@_Ie1e/_Jee0jHd@_Ie1e0_Je/e1jHdU_Ke0e1jHdZ_Ke!e2jHd@_Ie4e2_Je!e3jHd@_Ie4e3_Je2e4jHdU_Ke3e4jHdZ_KejLe5jHd@_Ie6e5_Je5e6jHdu_Ke8e7_Je7e8jHd�_Ke8e9jHd@_KeFe9_Je8e:jHd@_KeFe:_Je8e;jHd@_KeFe;_Je8e<jHd@_KeFe<_Je8e=jHd@_KeFe=_Je8e>jHd@_KeFe>_Je8e?jHd@_KeFe?_Je8e@jHd@_KeFe@_Je8eAjHd@_KeFeA_Je8eBjHd@_KeFeB_Je8eCjHd@_KeFeC_Je8eEjHd@_KeFeE_Je9eFjHd�_Ke:eFjHd�_Ke;eFjHd�_Ke<eFjHd�_Ke=eFjHd�_Ke>eFjHd�_Ke?eFjHd�_Ke@eFjHd�_KeAeFjHd�_KeBeFjHd�_KeCeFjHd�_KeEeFjHd�_KeFeGjHd�_Ke1ejMdS<e4ejMdh<e6ejMds<e8ejMd~<eFejMd�<eGejMd�<eejNd<e!ejNd*<ejOe�ejPdSe	jQfeRd2ejPd2e	jQfeRd�e/d�d���dMejPdMe	jQfeRd�e0d�d���d�e1d�d���ZSejTeS�ejTeSjU�ejTeSjV�ejPdhe	jQfeRd2ejPd2e	jQfeRd�e2d�d���dMejPdMe	jQfeRd�e3d�d���d�e4d�d���ZWejTeW�ejTeWjU�ejTeWjV�ejPdse	jQfeRdmejPdme	jQfeRd�e5d�d���d�e6d�d���ZXejTeX�ejTeXjY�ejPd~e	jQfeRdxejPdxe	jQfeRd�e7d�d���d�e8d�d���ZZejTeZ�ejTeZj[�ejPd�e	jQfeRd�ejPd�e	jQfeRd�e9d�d���d�ejPd�e	jQfeRd�e:d�d���d�ejPd�e	jQfeRd�e;d�d���d�ejPd�e	jQfeRd�e<d�d���d�ejPd�e	jQfeRd�e=d�d���d�ejPd�e	jQfeRd�e>d�d���d�ejPd�e	jQfeRd�e?d�d���d�ejPd�e	jQfeRd�e@d�d���d�ejPd�e	jQfeRd�eAd�d���d�ejPd�e	jQfeRd�eBd�d���d�ejPd�e	jQfeRd�eCd�d���d�ejPd�e	jQfeRd�eEd�d���d�eFd�d���Z\ejTe\�ejTe\j]�ejTe\j^�ejTe\j_�ejTe\j`�ejTe\ja�ejTe\jb�ejTe\jc�ejTe\jd�ejTe\je�ejTe\jf�ejTe\jg�ejTe\jh�ejPd�e	jQfeRd�eGd�d���ZiejTei�eje_kej-ejl�ed���e_meje/_kej-ej.�edG��e/_meje0_kej-ej.�edG��e0_meje2_kej-ej.�edG��e2_meje3_kej-ej.�edG��e3_meje5_kej-ej.�edG��e5_meje7_kej-ej.�edG��e7_meje9_kej-ej.�edG��e9_meje:_kej-ej.�edG��e:_meje;_kej-ej.�edG��e;_meje<_kej-ej.�edG��e<_meje=_kej-ej.�edG��e=_meje>_kej-ej.�edG��e>_meje?_kej-ej.�edG��e?_meje@_kej-ej.�edG��e@_mejeA_kej-ej.�edG��eA_mejeB_kej-ej.�edG��eB_mejeC_kej-ej.�edG��eC_mejeE_kej-ej.�edG��eE_mdS(�i����NiicCs|S(N((tx((sK/usr/lib/python2.7/site-packages/google/protobuf/map_proto2_unittest_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sK/usr/lib/python2.7/site-packages/google/protobuf/map_proto2_unittest_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_import_pb2tnames)google/protobuf/map_proto2_unittest.prototpackagetprotobuf_unittesttsyntaxtproto2t
serialized_pbsj
)google/protobuf/map_proto2_unittest.protoprotobuf_unittest%google/protobuf/unittest_import.proto"�
TestEnumMapJ
known_map_fielde (21.protobuf_unittest.TestEnumMap.KnownMapFieldEntryN
unknown_map_fieldf (23.protobuf_unittest.TestEnumMap.UnknownMapFieldEntryV
KnownMapFieldEntry
key (/
value (2 .protobuf_unittest.Proto2MapEnum:8X
UnknownMapFieldEntry
key (/
value (2 .protobuf_unittest.Proto2MapEnum:8"�
TestEnumMapPlusExtraS
known_map_fielde (2:.protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntryW
unknown_map_fieldf (2<.protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry_
KnownMapFieldEntry
key (8
value (2).protobuf_unittest.Proto2MapEnumPlusExtra:8a
UnknownMapFieldEntry
key (8
value (2).protobuf_unittest.Proto2MapEnumPlusExtra:8"�
TestImportEnumMapP
import_enum_amp (27.protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry`
ImportEnumAmpEntry
key (9
value (2*.protobuf_unittest_import.ImportEnumForMap:8"m

TestIntIntMap2
m (2'.protobuf_unittest.TestIntIntMap.MEntry(
MEntry
key (
value (:8"�
TestMaps8
m_int32 (2'.protobuf_unittest.TestMaps.MInt32Entry8
m_int64 (2'.protobuf_unittest.TestMaps.MInt64Entry:
m_uint32 (2(.protobuf_unittest.TestMaps.MUint32Entry:
m_uint64 (2(.protobuf_unittest.TestMaps.MUint64Entry:
m_sint32 (2(.protobuf_unittest.TestMaps.MSint32Entry:
m_sint64 (2(.protobuf_unittest.TestMaps.MSint64Entry<
	m_fixed32 (2).protobuf_unittest.TestMaps.MFixed32Entry<
	m_fixed64 (2).protobuf_unittest.TestMaps.MFixed64Entry>

m_sfixed32	 (2*.protobuf_unittest.TestMaps.MSfixed32Entry>

m_sfixed64
 (2*.protobuf_unittest.TestMaps.MSfixed64Entry6
m_bool (2&.protobuf_unittest.TestMaps.MBoolEntry:
m_string (2(.protobuf_unittest.TestMaps.MStringEntryO
MInt32Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8O
MInt64Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8P
MUint32Entry
key (
/
value (2 .protobuf_unittest.TestIntIntMap:8P
MUint64Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8P
MSint32Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8P
MSint64Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8Q

MFixed32Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8Q

MFixed64Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8R
MSfixed32Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8R
MSfixed64Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8N

MBoolEntry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8P
MStringEntry
key (	/
value (2 .protobuf_unittest.TestIntIntMap:8"<
TestSubmessageMaps&
m (2.protobuf_unittest.TestMaps*Z

Proto2MapEnum
PROTO2_MAP_ENUM_FOO
PROTO2_MAP_ENUM_BAR
PROTO2_MAP_ENUM_BAZ*�
Proto2MapEnumPlusExtra
E_PROTO2_MAP_ENUM_FOO
E_PROTO2_MAP_ENUM_BAR
E_PROTO2_MAP_ENUM_BAZ
E_PROTO2_MAP_ENUM_EXTRAB�tdependenciest
Proto2MapEnumt	full_namesprotobuf_unittest.Proto2MapEnumtfilenametfiletvaluestPROTO2_MAP_ENUM_FOOtindextnumbertoptionsttypetPROTO2_MAP_ENUM_BARitPROTO2_MAP_ENUM_BAZitcontaining_typetserialized_starti�tserialized_endi�tProto2MapEnumPlusExtras(protobuf_unittest.Proto2MapEnumPlusExtratE_PROTO2_MAP_ENUM_FOOtE_PROTO2_MAP_ENUM_BARtE_PROTO2_MAP_ENUM_BAZtE_PROTO2_MAP_ENUM_EXTRAi�ietKnownMapFieldEntrys0protobuf_unittest.TestEnumMap.KnownMapFieldEntrytfieldstkeys4protobuf_unittest.TestEnumMap.KnownMapFieldEntry.keyitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetvalues6protobuf_unittest.TestEnumMap.KnownMapFieldEntry.valueiit
extensionstnested_typest
enum_typess8t
is_extendabletextension_rangestoneofsiiitUnknownMapFieldEntrys2protobuf_unittest.TestEnumMap.UnknownMapFieldEntrys6protobuf_unittest.TestEnumMap.UnknownMapFieldEntry.keys8protobuf_unittest.TestEnumMap.UnknownMapFieldEntry.valueiki�tTestEnumMapsprotobuf_unittest.TestEnumMaptknown_map_fields-protobuf_unittest.TestEnumMap.known_map_fieldieii
tunknown_map_fields/protobuf_unittest.TestEnumMap.unknown_map_fieldifihs9protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntrys=protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntry.keys?protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntry.valuei�i�s;protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntrys?protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry.keysAprotobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry.valuei�iNtTestEnumMapPlusExtras&protobuf_unittest.TestEnumMapPlusExtras6protobuf_unittest.TestEnumMapPlusExtra.known_map_fields8protobuf_unittest.TestEnumMapPlusExtra.unknown_map_fieldi�tImportEnumAmpEntrys6protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntrys:protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry.keys<protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry.valuei�itTestImportEnumMaps#protobuf_unittest.TestImportEnumMaptimport_enum_amps3protobuf_unittest.TestImportEnumMap.import_enum_ampiQtMEntrys&protobuf_unittest.TestIntIntMap.MEntrys*protobuf_unittest.TestIntIntMap.MEntry.keys,protobuf_unittest.TestIntIntMap.MEntry.valuei_i�t
TestIntIntMapsprotobuf_unittest.TestIntIntMaptms!protobuf_unittest.TestIntIntMap.mitMInt32Entrys&protobuf_unittest.TestMaps.MInt32Entrys*protobuf_unittest.TestMaps.MInt32Entry.keys,protobuf_unittest.TestMaps.MInt32Entry.valueiji�tMInt64Entrys&protobuf_unittest.TestMaps.MInt64Entrys*protobuf_unittest.TestMaps.MInt64Entry.keys,protobuf_unittest.TestMaps.MInt64Entry.valuei�i
tMUint32Entrys'protobuf_unittest.TestMaps.MUint32Entrys+protobuf_unittest.TestMaps.MUint32Entry.keyi
s-protobuf_unittest.TestMaps.MUint32Entry.valueii\tMUint64Entrys'protobuf_unittest.TestMaps.MUint64Entrys+protobuf_unittest.TestMaps.MUint64Entry.keyis-protobuf_unittest.TestMaps.MUint64Entry.valuei^i�tMSint32Entrys'protobuf_unittest.TestMaps.MSint32Entrys+protobuf_unittest.TestMaps.MSint32Entry.keyis-protobuf_unittest.TestMaps.MSint32Entry.valuei�i	tMSint64Entrys'protobuf_unittest.TestMaps.MSint64Entrys+protobuf_unittest.TestMaps.MSint64Entry.keyis-protobuf_unittest.TestMaps.MSint64Entry.valuei	iR	t
MFixed32Entrys(protobuf_unittest.TestMaps.MFixed32Entrys,protobuf_unittest.TestMaps.MFixed32Entry.keyis.protobuf_unittest.TestMaps.MFixed32Entry.valueiT	i�	t
MFixed64Entrys(protobuf_unittest.TestMaps.MFixed64Entrys,protobuf_unittest.TestMaps.MFixed64Entry.keyis.protobuf_unittest.TestMaps.MFixed64Entry.valuei�	i�	tMSfixed32Entrys)protobuf_unittest.TestMaps.MSfixed32Entrys-protobuf_unittest.TestMaps.MSfixed32Entry.keyis/protobuf_unittest.TestMaps.MSfixed32Entry.valuei�	iL
tMSfixed64Entrys)protobuf_unittest.TestMaps.MSfixed64Entrys-protobuf_unittest.TestMaps.MSfixed64Entry.keyis/protobuf_unittest.TestMaps.MSfixed64Entry.valueiN
i�
t
MBoolEntrys%protobuf_unittest.TestMaps.MBoolEntrys)protobuf_unittest.TestMaps.MBoolEntry.keys+protobuf_unittest.TestMaps.MBoolEntry.valuei�
i�
tMStringEntrys'protobuf_unittest.TestMaps.MStringEntrys+protobuf_unittest.TestMaps.MStringEntry.keyi	Rsutf-8s-protobuf_unittest.TestMaps.MStringEntry.valuei�
iBtTestMapssprotobuf_unittest.TestMapstm_int32s"protobuf_unittest.TestMaps.m_int32tm_int64s"protobuf_unittest.TestMaps.m_int64tm_uint32s#protobuf_unittest.TestMaps.m_uint32tm_uint64s#protobuf_unittest.TestMaps.m_uint64tm_sint32s#protobuf_unittest.TestMaps.m_sint32tm_sint64s#protobuf_unittest.TestMaps.m_sint64t	m_fixed32s$protobuf_unittest.TestMaps.m_fixed32t	m_fixed64s$protobuf_unittest.TestMaps.m_fixed64t
m_sfixed32s%protobuf_unittest.TestMaps.m_sfixed32t
m_sfixed64s%protobuf_unittest.TestMaps.m_sfixed64tm_bools!protobuf_unittest.TestMaps.m_booltm_strings#protobuf_unittest.TestMaps.m_stringii�tTestSubmessageMapss$protobuf_unittest.TestSubmessageMapss&protobuf_unittest.TestSubmessageMaps.miDi�t
DESCRIPTORt
__module__s'google.protobuf.map_proto2_unittest_pb2s�(ntsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt-google_dot_protobuf_dot_unittest__import__pb2t5google_dot_protobuf_dot_unittest__import__public__pb2tAttributeErrortgoogletprotobuftunittest_import_public_pb2tFileDescriptorR^tEnumDescriptortNonetEnumValueDescriptort_PROTO2MAPENUMtRegisterEnumDescriptortEnumTypeWrapperRt_PROTO2MAPENUMPLUSEXTRAR"RRRR#R$R%R&t
DescriptortFieldDescriptortFalset
_ParseOptionstMessageOptionst_TESTENUMMAP_KNOWNMAPFIELDENTRYt!_TESTENUMMAP_UNKNOWNMAPFIELDENTRYt_TESTENUMMAPt(_TESTENUMMAPPLUSEXTRA_KNOWNMAPFIELDENTRYt*_TESTENUMMAPPLUSEXTRA_UNKNOWNMAPFIELDENTRYt_TESTENUMMAPPLUSEXTRAt%_TESTIMPORTENUMMAP_IMPORTENUMAMPENTRYt_TESTIMPORTENUMMAPt_TESTINTINTMAP_MENTRYt_TESTINTINTMAPt_TESTMAPS_MINT32ENTRYt_TESTMAPS_MINT64ENTRYt_TESTMAPS_MUINT32ENTRYt_TESTMAPS_MUINT64ENTRYt_TESTMAPS_MSINT32ENTRYt_TESTMAPS_MSINT64ENTRYt_TESTMAPS_MFIXED32ENTRYt_TESTMAPS_MFIXED64ENTRYt_TESTMAPS_MSFIXED32ENTRYt_TESTMAPS_MSFIXED64ENTRYt_TESTMAPS_MBOOLENTRYtdecodet_TESTMAPS_MSTRINGENTRYt	_TESTMAPSt_TESTSUBMESSAGEMAPStfields_by_nameR/RR.t_IMPORTENUMFORMAPtmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR:tRegisterMessageR'R9R=R?R>RBRARPRDRERFRGRHRIRJRKRLRMRNROR]tTruethas_optionstFileOptionst_options(((sK/usr/lib/python2.7/site-packages/google/protobuf/map_proto2_unittest_pb2.pyt<module>s$%

						
						
																																																																																																					*																						














	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	PK�\=�=��� protobuf/unittest_import_pb2.pyonu�[����
���hc-@s1ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZdd
lTejddddddded�dejgdejg�Zejdddddddedejddddd d!d"dd#d�ejdd$dd%d d&d"dd#d�ejdd'dd(d d)d"dd#d�gd*dd"dd+d,d-d.�	Zeje�eje�Zejdd/dd0dddedejdd1ddd dd"dd#d�ejdd2dd%d d%d"dd#d�ejdd3dd(d d(d"dd#d�gd*dd"dd+d4d-d5�	Zeje�eje�Zd!Zd&Z d)Z!dZ"d%Z#d(Z$ej%dd6dd7ddded*dd8ej&dd9dd:ddd d%d#d;d<d%d=d%d>e'd?dd@ddAdd*ddBe'dCdd"dde�gdDgdEgdFgd"ddGe'dddHgdIgd+dJd-dK�Z(e(ej)d6<eej*d<eej*d/<ej+e�ej,d6e	j-fe.dLe(dMdN��Z/ej0e/�e1e_2ej3ej4�edO��e_5dS(Pi����NiicCs|S(N((tx((sG/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sG/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_import_public_pb2(t*tnames%google/protobuf/unittest_import.prototpackagetprotobuf_unittest_importtsyntaxtproto2t
serialized_pbs
%google/protobuf/unittest_import.protoprotobuf_unittest_import,google/protobuf/unittest_import_public.proto"

ImportMessage	
d (*<

ImportEnum

IMPORT_FOO

IMPORT_BAR

IMPORT_BAZ	*1
ImportEnumForMap
UNKNOWN
FOO
BARB
com.google.protobuf.testH�Ptdependenciestpublic_dependenciest
ImportEnumt	full_names#protobuf_unittest_import.ImportEnumtfilenametfiletvaluest
IMPORT_FOOtindextnumberitoptionsttypet
IMPORT_BARiit
IMPORT_BAZii	tcontaining_typetserialized_starti�tserialized_endi�tImportEnumForMaps)protobuf_unittest_import.ImportEnumForMaptUNKNOWNtFOOtBARi�i�t
ImportMessages&protobuf_unittest_import.ImportMessagetfieldstds(protobuf_unittest_import.ImportMessage.ditcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsiqi�t
DESCRIPTORt
__module__s#google.protobuf.unittest_import_pb2s
com.google.protobuf.testH�(6tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt5google_dot_protobuf_dot_unittest__import__public__pb2t*google.protobuf.unittest_import_public_pb2tFileDescriptorR9tEnumDescriptortNonetEnumValueDescriptort_IMPORTENUMtRegisterEnumDescriptortEnumTypeWrapperRt_IMPORTENUMFORMAPR$RRR R%R&R't
DescriptortFieldDescriptortFalset_IMPORTMESSAGEtmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR(tRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((sG/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_pb2.pyt<module>s�%
						
					
			




	PK�\�>��VVprotobuf/pyext/python_pb2.pycnu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��ZdZejdddddddddddddddeddd dd!dd"dd#ed$dd%dd&e�Zd'Zejdd(dd)dddd'dddddddedgd dd!dd"dd#ed$dd%dd&e�Zejdd*dd+d,dd&ed"dd-ejdd.dd/dddddd0dddddeddd dd!dd"dd#ed$dd%dd&e�ejdd1dd2dddd'dddddddeddd dd!dd"dd#ed$dd%dd&e�gd3gd4gd5gd%dd6eddd7gd8gd9d:d;d<�Zejdd=dd>d,dd&ed"dd-ejdd?dd@dddddddddddedgd dd!dd"dd#ed$dd%dd&e�ejddAddBdddd'dddddddeddd dd!dd"dd#ed$dd%dd&e�ejddCddDdd'dddd0dddddeddd dd!dd"dd#ed$dd%dd&e�gd3gd4egd5gd%dd6eddd7gd8gd9dEd;d<�ZejddFddGd,dd&ed"dd-ejddHddIdddddd0dddddeddd dd!dd"dd#ed$dd%dd&e�ejddJddKdddd'dd0dddddedgd dd!dd"dd#ed$dd%dd&e�gd3gd4gd5gd%dd6eddd7gd8gd9dLd;dM�ZejddNddOd,dd&ed"dd-gd3gd4gd5gd%dd6eddd7dWgd8gd9dQd;dR�Zeejd1_ee_ eejd?_eejdA_eej!d=<eej!dF<eej!dN<eej"d<eej"d(<ej#e�e	j$d=ej%fe&d*e	j$d*ej%fe&dSedTdU��dSedTdU��Z'ej(e'�ej(e'j)�e	j$dFej%fe&dSedTdU��Z*ej(e*�e	j$dNej%fe&dSedTdU��Z+ej(e+�ee_e+j,e�ee_e+j,e�ee_-ej.ej/�edV��e_0dS(Xi����NiicCs|S(N((tx((sD/usr/lib/python2.7/site-packages/google/protobuf/pyext/python_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sD/usr/lib/python2.7/site-packages/google/protobuf/pyext/python_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames"google/protobuf/pyext/python.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbs	
"google/protobuf/pyext/python.protogoogle.protobuf.python.internal"�
TestAllTypes\
repeated_nested_message (2;.google.protobuf.python.internal.TestAllTypes.NestedMessage\
optional_nested_message (2;.google.protobuf.python.internal.TestAllTypes.NestedMessage
optional_int32 (X

NestedMessage

bb (;
cc (2/.google.protobuf.python.internal.ForeignMessage"&
ForeignMessage	
c (	
d ("
TestAllExtensions*����:�
!optional_nested_message_extension2.google.protobuf.python.internal.TestAllExtensions (2;.google.protobuf.python.internal.TestAllTypes.NestedMessage:�
!repeated_nested_message_extension2.google.protobuf.python.internal.TestAllExtensions (2;.google.protobuf.python.internal.TestAllTypes.NestedMessageBHit!optional_nested_message_extensiont	full_namesAgoogle.protobuf.python.internal.optional_nested_message_extensiontindextnumberttypeitcpp_typei
tlabelthas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfileit!repeated_nested_message_extensionsAgoogle.protobuf.python.internal.repeated_nested_message_extensiont
NestedMessages:google.protobuf.python.internal.TestAllTypes.NestedMessagetfilenametfieldstbbs=google.protobuf.python.internal.TestAllTypes.NestedMessage.bbitccs=google.protobuf.python.internal.TestAllTypes.NestedMessage.cct
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti,tserialized_endi�tTestAllTypess,google.protobuf.python.internal.TestAllTypestrepeated_nested_messagesDgoogle.protobuf.python.internal.TestAllTypes.repeated_nested_messagetoptional_nested_messagesDgoogle.protobuf.python.internal.TestAllTypes.optional_nested_messagetoptional_int32s;google.protobuf.python.internal.TestAllTypes.optional_int32iHtForeignMessages.google.protobuf.python.internal.ForeignMessagetcs0google.protobuf.python.internal.ForeignMessage.ctds0google.protobuf.python.internal.ForeignMessage.di�i�tTestAllExtensionss1google.protobuf.python.internal.TestAllExtensionsi i�i�t
DESCRIPTORt
__module__s google.protobuf.pyext.python_pb2sH(ii (1tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR5t.OPTIONAL_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRt.REPEATED_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERRt
Descriptort_TESTALLTYPES_NESTEDMESSAGEt
_TESTALLTYPESt_FOREIGNMESSAGEt_TESTALLEXTENSIONStfields_by_nameRRtmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR-tRegisterMessageR R1R4tRegisterExtensionthas_optionst
_ParseOptionstFileOptionst_options(((sD/usr/lib/python2.7/site-packages/google/protobuf/pyext/python_pb2.pyt<module>s\%																					








	
	
	PK�\�6�##protobuf/pyext/cpp_message.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Protocol message implementation hooks for C++ implementation.

Contains helper functions used to create protocol message classes from
Descriptor objects at runtime backed by the protocol buffer C++ API.
"""

__author__ = 'tibell@google.com (Johan Tibell)'

from google.protobuf.pyext import _message


class GeneratedProtocolMessageType(_message.MessageMeta):

  """Metaclass for protocol message classes created at runtime from Descriptors.

  The protocol compiler currently uses this metaclass to create protocol
  message classes at runtime.  Clients can also manually create their own
  classes at runtime, as in this example:

  mydescriptor = Descriptor(.....)
  factory = symbol_database.Default()
  factory.pool.AddDescriptor(mydescriptor)
  MyProtoClass = factory.GetPrototype(mydescriptor)
  myproto_instance = MyProtoClass()
  myproto.foo_field = 23
  ...

  The above example will not work for nested types. If you wish to include them,
  use reflection.MakeClass() instead of manually instantiating the class in
  order to create the appropriate class structure.
  """

  # Must be consistent with the protocol-compiler code in
  # proto2/compiler/internal/generator.*.
  _DESCRIPTOR_KEY = 'DESCRIPTOR'
PK�\�>��VVprotobuf/pyext/python_pb2.pyonu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��ZdZejdddddddddddddddeddd dd!dd"dd#ed$dd%dd&e�Zd'Zejdd(dd)dddd'dddddddedgd dd!dd"dd#ed$dd%dd&e�Zejdd*dd+d,dd&ed"dd-ejdd.dd/dddddd0dddddeddd dd!dd"dd#ed$dd%dd&e�ejdd1dd2dddd'dddddddeddd dd!dd"dd#ed$dd%dd&e�gd3gd4gd5gd%dd6eddd7gd8gd9d:d;d<�Zejdd=dd>d,dd&ed"dd-ejdd?dd@dddddddddddedgd dd!dd"dd#ed$dd%dd&e�ejddAddBdddd'dddddddeddd dd!dd"dd#ed$dd%dd&e�ejddCddDdd'dddd0dddddeddd dd!dd"dd#ed$dd%dd&e�gd3gd4egd5gd%dd6eddd7gd8gd9dEd;d<�ZejddFddGd,dd&ed"dd-ejddHddIdddddd0dddddeddd dd!dd"dd#ed$dd%dd&e�ejddJddKdddd'dd0dddddedgd dd!dd"dd#ed$dd%dd&e�gd3gd4gd5gd%dd6eddd7gd8gd9dLd;dM�ZejddNddOd,dd&ed"dd-gd3gd4gd5gd%dd6eddd7dWgd8gd9dQd;dR�Zeejd1_ee_ eejd?_eejdA_eej!d=<eej!dF<eej!dN<eej"d<eej"d(<ej#e�e	j$d=ej%fe&d*e	j$d*ej%fe&dSedTdU��dSedTdU��Z'ej(e'�ej(e'j)�e	j$dFej%fe&dSedTdU��Z*ej(e*�e	j$dNej%fe&dSedTdU��Z+ej(e+�ee_e+j,e�ee_e+j,e�ee_-ej.ej/�edV��e_0dS(Xi����NiicCs|S(N((tx((sD/usr/lib/python2.7/site-packages/google/protobuf/pyext/python_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sD/usr/lib/python2.7/site-packages/google/protobuf/pyext/python_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames"google/protobuf/pyext/python.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbs	
"google/protobuf/pyext/python.protogoogle.protobuf.python.internal"�
TestAllTypes\
repeated_nested_message (2;.google.protobuf.python.internal.TestAllTypes.NestedMessage\
optional_nested_message (2;.google.protobuf.python.internal.TestAllTypes.NestedMessage
optional_int32 (X

NestedMessage

bb (;
cc (2/.google.protobuf.python.internal.ForeignMessage"&
ForeignMessage	
c (	
d ("
TestAllExtensions*����:�
!optional_nested_message_extension2.google.protobuf.python.internal.TestAllExtensions (2;.google.protobuf.python.internal.TestAllTypes.NestedMessage:�
!repeated_nested_message_extension2.google.protobuf.python.internal.TestAllExtensions (2;.google.protobuf.python.internal.TestAllTypes.NestedMessageBHit!optional_nested_message_extensiont	full_namesAgoogle.protobuf.python.internal.optional_nested_message_extensiontindextnumberttypeitcpp_typei
tlabelthas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfileit!repeated_nested_message_extensionsAgoogle.protobuf.python.internal.repeated_nested_message_extensiont
NestedMessages:google.protobuf.python.internal.TestAllTypes.NestedMessagetfilenametfieldstbbs=google.protobuf.python.internal.TestAllTypes.NestedMessage.bbitccs=google.protobuf.python.internal.TestAllTypes.NestedMessage.cct
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti,tserialized_endi�tTestAllTypess,google.protobuf.python.internal.TestAllTypestrepeated_nested_messagesDgoogle.protobuf.python.internal.TestAllTypes.repeated_nested_messagetoptional_nested_messagesDgoogle.protobuf.python.internal.TestAllTypes.optional_nested_messagetoptional_int32s;google.protobuf.python.internal.TestAllTypes.optional_int32iHtForeignMessages.google.protobuf.python.internal.ForeignMessagetcs0google.protobuf.python.internal.ForeignMessage.ctds0google.protobuf.python.internal.ForeignMessage.di�i�tTestAllExtensionss1google.protobuf.python.internal.TestAllExtensionsi i�i�t
DESCRIPTORt
__module__s google.protobuf.pyext.python_pb2sH(ii (1tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR5t.OPTIONAL_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRt.REPEATED_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERRt
Descriptort_TESTALLTYPES_NESTEDMESSAGEt
_TESTALLTYPESt_FOREIGNMESSAGEt_TESTALLEXTENSIONStfields_by_nameRRtmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR-tRegisterMessageR R1R4tRegisterExtensionthas_optionst
_ParseOptionstFileOptionst_options(((sD/usr/lib/python2.7/site-packages/google/protobuf/pyext/python_pb2.pyt<module>s\%																					








	
	
	PK�\�?`Z�%�%protobuf/pyext/python_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/pyext/python.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/pyext/python.proto',
  package='google.protobuf.python.internal',
  syntax='proto2',
  serialized_pb=_b('\n\"google/protobuf/pyext/python.proto\x12\x1fgoogle.protobuf.python.internal\"\xbc\x02\n\x0cTestAllTypes\x12\\\n\x17repeated_nested_message\x18\x01 \x03(\x0b\x32;.google.protobuf.python.internal.TestAllTypes.NestedMessage\x12\\\n\x17optional_nested_message\x18\x02 \x01(\x0b\x32;.google.protobuf.python.internal.TestAllTypes.NestedMessage\x12\x16\n\x0eoptional_int32\x18\x03 \x01(\x05\x1aX\n\rNestedMessage\x12\n\n\x02\x62\x62\x18\x01 \x01(\x05\x12;\n\x02\x63\x63\x18\x02 \x01(\x0b\x32/.google.protobuf.python.internal.ForeignMessage\"&\n\x0e\x46oreignMessage\x12\t\n\x01\x63\x18\x01 \x01(\x05\x12\t\n\x01\x64\x18\x02 \x03(\x05\"\x1d\n\x11TestAllExtensions*\x08\x08\x01\x10\x80\x80\x80\x80\x02:\x9a\x01\n!optional_nested_message_extension\x12\x32.google.protobuf.python.internal.TestAllExtensions\x18\x01 \x01(\x0b\x32;.google.protobuf.python.internal.TestAllTypes.NestedMessage:\x9a\x01\n!repeated_nested_message_extension\x12\x32.google.protobuf.python.internal.TestAllExtensions\x18\x02 \x03(\x0b\x32;.google.protobuf.python.internal.TestAllTypes.NestedMessageB\x02H\x01')
)


OPTIONAL_NESTED_MESSAGE_EXTENSION_FIELD_NUMBER = 1
optional_nested_message_extension = _descriptor.FieldDescriptor(
  name='optional_nested_message_extension', full_name='google.protobuf.python.internal.optional_nested_message_extension', index=0,
  number=1, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_NESTED_MESSAGE_EXTENSION_FIELD_NUMBER = 2
repeated_nested_message_extension = _descriptor.FieldDescriptor(
  name='repeated_nested_message_extension', full_name='google.protobuf.python.internal.repeated_nested_message_extension', index=1,
  number=2, type=11, cpp_type=10, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)


_TESTALLTYPES_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='google.protobuf.python.internal.TestAllTypes.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bb', full_name='google.protobuf.python.internal.TestAllTypes.NestedMessage.bb', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='cc', full_name='google.protobuf.python.internal.TestAllTypes.NestedMessage.cc', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=300,
  serialized_end=388,
)

_TESTALLTYPES = _descriptor.Descriptor(
  name='TestAllTypes',
  full_name='google.protobuf.python.internal.TestAllTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='repeated_nested_message', full_name='google.protobuf.python.internal.TestAllTypes.repeated_nested_message', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_message', full_name='google.protobuf.python.internal.TestAllTypes.optional_nested_message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_int32', full_name='google.protobuf.python.internal.TestAllTypes.optional_int32', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTALLTYPES_NESTEDMESSAGE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=72,
  serialized_end=388,
)


_FOREIGNMESSAGE = _descriptor.Descriptor(
  name='ForeignMessage',
  full_name='google.protobuf.python.internal.ForeignMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='c', full_name='google.protobuf.python.internal.ForeignMessage.c', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='d', full_name='google.protobuf.python.internal.ForeignMessage.d', index=1,
      number=2, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=390,
  serialized_end=428,
)


_TESTALLEXTENSIONS = _descriptor.Descriptor(
  name='TestAllExtensions',
  full_name='google.protobuf.python.internal.TestAllExtensions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1, 536870912), ],
  oneofs=[
  ],
  serialized_start=430,
  serialized_end=459,
)

_TESTALLTYPES_NESTEDMESSAGE.fields_by_name['cc'].message_type = _FOREIGNMESSAGE
_TESTALLTYPES_NESTEDMESSAGE.containing_type = _TESTALLTYPES
_TESTALLTYPES.fields_by_name['repeated_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['optional_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
DESCRIPTOR.message_types_by_name['TestAllTypes'] = _TESTALLTYPES
DESCRIPTOR.message_types_by_name['ForeignMessage'] = _FOREIGNMESSAGE
DESCRIPTOR.message_types_by_name['TestAllExtensions'] = _TESTALLEXTENSIONS
DESCRIPTOR.extensions_by_name['optional_nested_message_extension'] = optional_nested_message_extension
DESCRIPTOR.extensions_by_name['repeated_nested_message_extension'] = repeated_nested_message_extension
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestAllTypes = _reflection.GeneratedProtocolMessageType('TestAllTypes', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPES_NESTEDMESSAGE,
    __module__ = 'google.protobuf.pyext.python_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.TestAllTypes.NestedMessage)
    ))
  ,
  DESCRIPTOR = _TESTALLTYPES,
  __module__ = 'google.protobuf.pyext.python_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.TestAllTypes)
  ))
_sym_db.RegisterMessage(TestAllTypes)
_sym_db.RegisterMessage(TestAllTypes.NestedMessage)

ForeignMessage = _reflection.GeneratedProtocolMessageType('ForeignMessage', (_message.Message,), dict(
  DESCRIPTOR = _FOREIGNMESSAGE,
  __module__ = 'google.protobuf.pyext.python_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.ForeignMessage)
  ))
_sym_db.RegisterMessage(ForeignMessage)

TestAllExtensions = _reflection.GeneratedProtocolMessageType('TestAllExtensions', (_message.Message,), dict(
  DESCRIPTOR = _TESTALLEXTENSIONS,
  __module__ = 'google.protobuf.pyext.python_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.TestAllExtensions)
  ))
_sym_db.RegisterMessage(TestAllExtensions)

optional_nested_message_extension.message_type = _TESTALLTYPES_NESTEDMESSAGE
TestAllExtensions.RegisterExtension(optional_nested_message_extension)
repeated_nested_message_extension.message_type = _TESTALLTYPES_NESTEDMESSAGE
TestAllExtensions.RegisterExtension(repeated_nested_message_extension)

DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('H\001'))
# @@protoc_insertion_point(module_scope)
PK�\�-���protobuf/pyext/__init__.pynu�[���try:
  __import__('pkg_resources').declare_namespace(__name__)
except ImportError:
  __path__ = __import__('pkgutil').extend_path(__path__, __name__)
PK�\�i�fprotobuf/pyext/cpp_message.pyonu�[����
���hc@s9dZdZddlmZdejfd��YZdS(s�Protocol message implementation hooks for C++ implementation.

Contains helper functions used to create protocol message classes from
Descriptor objects at runtime backed by the protocol buffer C++ API.
s tibell@google.com (Johan Tibell)i����(t_messagetGeneratedProtocolMessageTypecBseZdZdZRS(s�Metaclass for protocol message classes created at runtime from Descriptors.

  The protocol compiler currently uses this metaclass to create protocol
  message classes at runtime.  Clients can also manually create their own
  classes at runtime, as in this example:

  mydescriptor = Descriptor(.....)
  factory = symbol_database.Default()
  factory.pool.AddDescriptor(mydescriptor)
  MyProtoClass = factory.GetPrototype(mydescriptor)
  myproto_instance = MyProtoClass()
  myproto.foo_field = 23
  ...

  The above example will not work for nested types. If you wish to include them,
  use reflection.MakeClass() instead of manually instantiating the class in
  order to create the appropriate class structure.
  t
DESCRIPTOR(t__name__t
__module__t__doc__t_DESCRIPTOR_KEY(((sE/usr/lib/python2.7/site-packages/google/protobuf/pyext/cpp_message.pyR*sN(Rt
__author__tgoogle.protobuf.pyextRtMessageMetaR(((sE/usr/lib/python2.7/site-packages/google/protobuf/pyext/cpp_message.pyt<module>#sPK�\Xx3@__protobuf/pyext/__init__.pyonu�[����
���hc@sGyed�je�Wn)ek
rBed�jee�ZnXdS(t
pkg_resourcestpkgutilN(t
__import__tdeclare_namespacet__name__tImportErrortextend_patht__path__(((sB/usr/lib/python2.7/site-packages/google/protobuf/pyext/__init__.pyt<module>s
PK�\�i�fprotobuf/pyext/cpp_message.pycnu�[����
���hc@s9dZdZddlmZdejfd��YZdS(s�Protocol message implementation hooks for C++ implementation.

Contains helper functions used to create protocol message classes from
Descriptor objects at runtime backed by the protocol buffer C++ API.
s tibell@google.com (Johan Tibell)i����(t_messagetGeneratedProtocolMessageTypecBseZdZdZRS(s�Metaclass for protocol message classes created at runtime from Descriptors.

  The protocol compiler currently uses this metaclass to create protocol
  message classes at runtime.  Clients can also manually create their own
  classes at runtime, as in this example:

  mydescriptor = Descriptor(.....)
  factory = symbol_database.Default()
  factory.pool.AddDescriptor(mydescriptor)
  MyProtoClass = factory.GetPrototype(mydescriptor)
  myproto_instance = MyProtoClass()
  myproto.foo_field = 23
  ...

  The above example will not work for nested types. If you wish to include them,
  use reflection.MakeClass() instead of manually instantiating the class in
  order to create the appropriate class structure.
  t
DESCRIPTOR(t__name__t
__module__t__doc__t_DESCRIPTOR_KEY(((sE/usr/lib/python2.7/site-packages/google/protobuf/pyext/cpp_message.pyR*sN(Rt
__author__tgoogle.protobuf.pyextRtMessageMetaR(((sE/usr/lib/python2.7/site-packages/google/protobuf/pyext/cpp_message.pyt<module>#sPK�\Xx3@__protobuf/pyext/__init__.pycnu�[����
���hc@sGyed�je�Wn)ek
rBed�jee�ZnXdS(t
pkg_resourcestpkgutilN(t
__import__tdeclare_namespacet__name__tImportErrortextend_patht__path__(((sB/usr/lib/python2.7/site-packages/google/protobuf/pyext/__init__.pyt<module>s
PK�\��rrprotobuf/json_format.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""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())
"""

__author__ = 'jieluo@google.com (Jie Luo)'

try:
  from collections import OrderedDict
except ImportError:
  from ordereddict import OrderedDict  #PY26
import base64
import json
import math
import re
import six
import sys

from operator import methodcaller
from google.protobuf import descriptor
from google.protobuf import symbol_database

_TIMESTAMPFOMAT = '%Y-%m-%dT%H:%M:%S'
_INT_TYPES = frozenset([descriptor.FieldDescriptor.CPPTYPE_INT32,
                        descriptor.FieldDescriptor.CPPTYPE_UINT32,
                        descriptor.FieldDescriptor.CPPTYPE_INT64,
                        descriptor.FieldDescriptor.CPPTYPE_UINT64])
_INT64_TYPES = frozenset([descriptor.FieldDescriptor.CPPTYPE_INT64,
                          descriptor.FieldDescriptor.CPPTYPE_UINT64])
_FLOAT_TYPES = frozenset([descriptor.FieldDescriptor.CPPTYPE_FLOAT,
                          descriptor.FieldDescriptor.CPPTYPE_DOUBLE])
_INFINITY = 'Infinity'
_NEG_INFINITY = '-Infinity'
_NAN = 'NaN'

_UNPAIRED_SURROGATE_PATTERN = re.compile(six.u(
    r'[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]'
))

_VALID_EXTENSION_NAME = re.compile(r'\[[a-zA-Z0-9\._]*\]$')


class Error(Exception):
  """Top-level module error for json_format."""


class SerializeToJsonError(Error):
  """Thrown if serialization to JSON fails."""


class ParseError(Error):
  """Thrown in case of parsing error."""


def MessageToJson(message,
                  including_default_value_fields=False,
                  preserving_proto_field_name=False,
                  indent=2,
                  sort_keys=False):
  """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.

  Returns:
    A string containing the JSON formatted protocol buffer message.
  """
  printer = _Printer(including_default_value_fields,
                     preserving_proto_field_name)
  return printer.ToJsonString(message, indent, sort_keys)


def MessageToDict(message,
                  including_default_value_fields=False,
                  preserving_proto_field_name=False):
  """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.

  Returns:
    A dict representation of the protocol buffer message.
  """
  printer = _Printer(including_default_value_fields,
                     preserving_proto_field_name)
  # pylint: disable=protected-access
  return printer._MessageToJsonObject(message)


def _IsMapEntry(field):
  return (field.type == descriptor.FieldDescriptor.TYPE_MESSAGE and
          field.message_type.has_options and
          field.message_type.GetOptions().map_entry)


class _Printer(object):
  """JSON format printer for protocol message."""

  def __init__(self,
               including_default_value_fields=False,
               preserving_proto_field_name=False):
    self.including_default_value_fields = including_default_value_fields
    self.preserving_proto_field_name = preserving_proto_field_name

  def ToJsonString(self, message, indent, sort_keys):
    js = self._MessageToJsonObject(message)
    return json.dumps(js, indent=indent, sort_keys=sort_keys)

  def _MessageToJsonObject(self, message):
    """Converts message to an object according to Proto3 JSON Specification."""
    message_descriptor = message.DESCRIPTOR
    full_name = message_descriptor.full_name
    if _IsWrapperMessage(message_descriptor):
      return self._WrapperMessageToJsonObject(message)
    if full_name in _WKTJSONMETHODS:
      return methodcaller(_WKTJSONMETHODS[full_name][0], message)(self)
    js = {}
    return self._RegularMessageToJsonObject(message, js)

  def _RegularMessageToJsonObject(self, message, js):
    """Converts normal message according to Proto3 JSON Specification."""
    fields = message.ListFields()

    try:
      for field, value in fields:
        if self.preserving_proto_field_name:
          name = field.name
        else:
          name = field.json_name
        if _IsMapEntry(field):
          # Convert a map field.
          v_field = field.message_type.fields_by_name['value']
          js_map = {}
          for key in value:
            if isinstance(key, bool):
              if key:
                recorded_key = 'true'
              else:
                recorded_key = 'false'
            else:
              recorded_key = key
            js_map[recorded_key] = self._FieldToJsonObject(
                v_field, value[key])
          js[name] = js_map
        elif field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
          # Convert a repeated field.
          js[name] = [self._FieldToJsonObject(field, k)
                      for k in value]
        elif field.is_extension:
          f = field
          if (f.containing_type.GetOptions().message_set_wire_format and
              f.type == descriptor.FieldDescriptor.TYPE_MESSAGE and
              f.label == descriptor.FieldDescriptor.LABEL_OPTIONAL):
            f = f.message_type
          name = '[%s.%s]' % (f.full_name, name)
          js[name] = self._FieldToJsonObject(field, value)
        else:
          js[name] = self._FieldToJsonObject(field, value)

      # Serialize default value if including_default_value_fields is True.
      if self.including_default_value_fields:
        message_descriptor = message.DESCRIPTOR
        for field in message_descriptor.fields:
          # Singular message fields and oneof fields will not be affected.
          if ((field.label != descriptor.FieldDescriptor.LABEL_REPEATED and
               field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE) or
              field.containing_oneof):
            continue
          if self.preserving_proto_field_name:
            name = field.name
          else:
            name = field.json_name
          if name in js:
            # Skip the field which has been serailized already.
            continue
          if _IsMapEntry(field):
            js[name] = {}
          elif field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
            js[name] = []
          else:
            js[name] = self._FieldToJsonObject(field, field.default_value)

    except ValueError as e:
      raise SerializeToJsonError(
          'Failed to serialize {0} field: {1}.'.format(field.name, e))

    return js

  def _FieldToJsonObject(self, field, value):
    """Converts field value according to Proto3 JSON Specification."""
    if field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
      return self._MessageToJsonObject(value)
    elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_ENUM:
      enum_value = field.enum_type.values_by_number.get(value, None)
      if enum_value is not None:
        return enum_value.name
      else:
        if field.file.syntax == 'proto3':
          return value
        raise SerializeToJsonError('Enum field contains an integer value '
                                   'which can not mapped to an enum value.')
    elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_STRING:
      if field.type == descriptor.FieldDescriptor.TYPE_BYTES:
        # Use base64 Data encoding for bytes
        return base64.b64encode(value).decode('utf-8')
      else:
        return value
    elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_BOOL:
      return bool(value)
    elif field.cpp_type in _INT64_TYPES:
      return str(value)
    elif field.cpp_type in _FLOAT_TYPES:
      if math.isinf(value):
        if value < 0.0:
          return _NEG_INFINITY
        else:
          return _INFINITY
      if math.isnan(value):
        return _NAN
    return value

  def _AnyMessageToJsonObject(self, message):
    """Converts Any message according to Proto3 JSON Specification."""
    if not message.ListFields():
      return {}
    # Must print @type first, use OrderedDict instead of {}
    js = OrderedDict()
    type_url = message.type_url
    js['@type'] = type_url
    sub_message = _CreateMessageFromTypeUrl(type_url)
    sub_message.ParseFromString(message.value)
    message_descriptor = sub_message.DESCRIPTOR
    full_name = message_descriptor.full_name
    if _IsWrapperMessage(message_descriptor):
      js['value'] = self._WrapperMessageToJsonObject(sub_message)
      return js
    if full_name in _WKTJSONMETHODS:
      js['value'] = methodcaller(_WKTJSONMETHODS[full_name][0],
                                 sub_message)(self)
      return js
    return self._RegularMessageToJsonObject(sub_message, js)

  def _GenericMessageToJsonObject(self, message):
    """Converts message according to Proto3 JSON Specification."""
    # Duration, Timestamp and FieldMask have ToJsonString method to do the
    # convert. Users can also call the method directly.
    return message.ToJsonString()

  def _ValueMessageToJsonObject(self, message):
    """Converts Value message according to Proto3 JSON Specification."""
    which = message.WhichOneof('kind')
    # If the Value message is not set treat as null_value when serialize
    # to JSON. The parse back result will be different from original message.
    if which is None or which == 'null_value':
      return None
    if which == 'list_value':
      return self._ListValueMessageToJsonObject(message.list_value)
    if which == 'struct_value':
      value = message.struct_value
    else:
      value = getattr(message, which)
    oneof_descriptor = message.DESCRIPTOR.fields_by_name[which]
    return self._FieldToJsonObject(oneof_descriptor, value)

  def _ListValueMessageToJsonObject(self, message):
    """Converts ListValue message according to Proto3 JSON Specification."""
    return [self._ValueMessageToJsonObject(value)
            for value in message.values]

  def _StructMessageToJsonObject(self, message):
    """Converts Struct message according to Proto3 JSON Specification."""
    fields = message.fields
    ret = {}
    for key in fields:
      ret[key] = self._ValueMessageToJsonObject(fields[key])
    return ret

  def _WrapperMessageToJsonObject(self, message):
    return self._FieldToJsonObject(
        message.DESCRIPTOR.fields_by_name['value'], message.value)


def _IsWrapperMessage(message_descriptor):
  return message_descriptor.file.name == 'google/protobuf/wrappers.proto'


def _DuplicateChecker(js):
  result = {}
  for name, value in js:
    if name in result:
      raise ParseError('Failed to load JSON: duplicate key {0}.'.format(name))
    result[name] = value
  return result


def _CreateMessageFromTypeUrl(type_url):
  # TODO(jieluo): Should add a way that users can register the type resolver
  # instead of the default one.
  db = symbol_database.Default()
  type_name = type_url.split('/')[-1]
  try:
    message_descriptor = db.pool.FindMessageTypeByName(type_name)
  except KeyError:
    raise TypeError(
        'Can not find message descriptor by type_url: {0}.'.format(type_url))
  message_class = db.GetPrototype(message_descriptor)
  return message_class()


def Parse(text, message, ignore_unknown_fields=False):
  """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.

  Returns:
    The same message passed as argument.

  Raises::
    ParseError: On JSON parsing problems.
  """
  if not isinstance(text, six.text_type): text = text.decode('utf-8')
  try:
    if sys.version_info < (2, 7):
      # object_pair_hook is not supported before python2.7
      js = json.loads(text)
    else:
      js = json.loads(text, object_pairs_hook=_DuplicateChecker)
  except ValueError as e:
    raise ParseError('Failed to load JSON: {0}.'.format(str(e)))
  return ParseDict(js, message, ignore_unknown_fields)


def ParseDict(js_dict, message, ignore_unknown_fields=False):
  """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.

  Returns:
    The same message passed as argument.
  """
  parser = _Parser(ignore_unknown_fields)
  parser.ConvertMessage(js_dict, message)
  return message


_INT_OR_FLOAT = six.integer_types + (float,)


class _Parser(object):
  """JSON format parser for protocol message."""

  def __init__(self,
               ignore_unknown_fields):
    self.ignore_unknown_fields = ignore_unknown_fields

  def ConvertMessage(self, value, message):
    """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.
    """
    message_descriptor = message.DESCRIPTOR
    full_name = message_descriptor.full_name
    if _IsWrapperMessage(message_descriptor):
      self._ConvertWrapperMessage(value, message)
    elif full_name in _WKTJSONMETHODS:
      methodcaller(_WKTJSONMETHODS[full_name][1], value, message)(self)
    else:
      self._ConvertFieldValuePair(value, message)

  def _ConvertFieldValuePair(self, js, message):
    """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.
    """
    names = []
    message_descriptor = message.DESCRIPTOR
    fields_by_json_name = dict((f.json_name, f)
                               for f in message_descriptor.fields)
    for name in js:
      try:
        field = fields_by_json_name.get(name, None)
        if not field:
          field = message_descriptor.fields_by_name.get(name, None)
        if not field and _VALID_EXTENSION_NAME.match(name):
          if not message_descriptor.is_extendable:
            raise ParseError('Message type {0} does not have extensions'.format(
                message_descriptor.full_name))
          identifier = name[1:-1]  # strip [] brackets
          identifier = '.'.join(identifier.split('.')[:-1])
          # pylint: disable=protected-access
          field = message.Extensions._FindExtensionByName(identifier)
          # pylint: enable=protected-access
        if not field:
          if self.ignore_unknown_fields:
            continue
          raise ParseError(
              ('Message type "{0}" has no field named "{1}".\n'
               ' Available Fields(except extensions): {2}').format(
                   message_descriptor.full_name, name,
                   message_descriptor.fields))
        if name in names:
          raise ParseError('Message type "{0}" should not have multiple '
                           '"{1}" fields.'.format(
                               message.DESCRIPTOR.full_name, name))
        names.append(name)
        # Check no other oneof field is parsed.
        if field.containing_oneof is not None:
          oneof_name = field.containing_oneof.name
          if oneof_name in names:
            raise ParseError('Message type "{0}" should not have multiple '
                             '"{1}" oneof fields.'.format(
                                 message.DESCRIPTOR.full_name, oneof_name))
          names.append(oneof_name)

        value = js[name]
        if value is None:
          if (field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE
              and field.message_type.full_name == 'google.protobuf.Value'):
            sub_message = getattr(message, field.name)
            sub_message.null_value = 0
          else:
            message.ClearField(field.name)
          continue

        # Parse field value.
        if _IsMapEntry(field):
          message.ClearField(field.name)
          self._ConvertMapFieldValue(value, message, field)
        elif field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
          message.ClearField(field.name)
          if not isinstance(value, list):
            raise ParseError('repeated field {0} must be in [] which is '
                             '{1}.'.format(name, value))
          if field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
            # Repeated message field.
            for item in value:
              sub_message = getattr(message, field.name).add()
              # None is a null_value in Value.
              if (item is None and
                  sub_message.DESCRIPTOR.full_name != 'google.protobuf.Value'):
                raise ParseError('null is not allowed to be used as an element'
                                 ' in a repeated field.')
              self.ConvertMessage(item, sub_message)
          else:
            # Repeated scalar field.
            for item in value:
              if item is None:
                raise ParseError('null is not allowed to be used as an element'
                                 ' in a repeated field.')
              getattr(message, field.name).append(
                  _ConvertScalarFieldValue(item, field))
        elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
          if field.is_extension:
            sub_message = message.Extensions[field]
          else:
            sub_message = getattr(message, field.name)
          sub_message.SetInParent()
          self.ConvertMessage(value, sub_message)
        else:
          setattr(message, field.name, _ConvertScalarFieldValue(value, field))
      except ParseError as e:
        if field and field.containing_oneof is None:
          raise ParseError('Failed to parse {0} field: {1}'.format(name, e))
        else:
          raise ParseError(str(e))
      except ValueError as e:
        raise ParseError('Failed to parse {0} field: {1}.'.format(name, e))
      except TypeError as e:
        raise ParseError('Failed to parse {0} field: {1}.'.format(name, e))

  def _ConvertAnyMessage(self, value, message):
    """Convert a JSON representation into Any message."""
    if isinstance(value, dict) and not value:
      return
    try:
      type_url = value['@type']
    except KeyError:
      raise ParseError('@type is missing when parsing any message.')

    sub_message = _CreateMessageFromTypeUrl(type_url)
    message_descriptor = sub_message.DESCRIPTOR
    full_name = message_descriptor.full_name
    if _IsWrapperMessage(message_descriptor):
      self._ConvertWrapperMessage(value['value'], sub_message)
    elif full_name in _WKTJSONMETHODS:
      methodcaller(
          _WKTJSONMETHODS[full_name][1], value['value'], sub_message)(self)
    else:
      del value['@type']
      self._ConvertFieldValuePair(value, sub_message)
    # Sets Any message
    message.value = sub_message.SerializeToString()
    message.type_url = type_url

  def _ConvertGenericMessage(self, value, message):
    """Convert a JSON representation into message with FromJsonString."""
    # Duration, Timestamp, FieldMask have a FromJsonString method to do the
    # conversion. Users can also call the method directly.
    message.FromJsonString(value)

  def _ConvertValueMessage(self, value, message):
    """Convert a JSON representation into Value message."""
    if isinstance(value, dict):
      self._ConvertStructMessage(value, message.struct_value)
    elif isinstance(value, list):
      self. _ConvertListValueMessage(value, message.list_value)
    elif value is None:
      message.null_value = 0
    elif isinstance(value, bool):
      message.bool_value = value
    elif isinstance(value, six.string_types):
      message.string_value = value
    elif isinstance(value, _INT_OR_FLOAT):
      message.number_value = value
    else:
      raise ParseError('Unexpected type for Value message.')

  def _ConvertListValueMessage(self, value, message):
    """Convert a JSON representation into ListValue message."""
    if not isinstance(value, list):
      raise ParseError(
          'ListValue must be in [] which is {0}.'.format(value))
    message.ClearField('values')
    for item in value:
      self._ConvertValueMessage(item, message.values.add())

  def _ConvertStructMessage(self, value, message):
    """Convert a JSON representation into Struct message."""
    if not isinstance(value, dict):
      raise ParseError(
          'Struct must be in a dict which is {0}.'.format(value))
    for key in value:
      self._ConvertValueMessage(value[key], message.fields[key])
    return

  def _ConvertWrapperMessage(self, value, message):
    """Convert a JSON representation into Wrapper message."""
    field = message.DESCRIPTOR.fields_by_name['value']
    setattr(message, 'value', _ConvertScalarFieldValue(value, field))

  def _ConvertMapFieldValue(self, value, message, field):
    """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.
    """
    if not isinstance(value, dict):
      raise ParseError(
          'Map field {0} must be in a dict which is {1}.'.format(
              field.name, value))
    key_field = field.message_type.fields_by_name['key']
    value_field = field.message_type.fields_by_name['value']
    for key in value:
      key_value = _ConvertScalarFieldValue(key, key_field, True)
      if value_field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
        self.ConvertMessage(value[key], getattr(
            message, field.name)[key_value])
      else:
        getattr(message, field.name)[key_value] = _ConvertScalarFieldValue(
            value[key], value_field)


def _ConvertScalarFieldValue(value, field, require_str=False):
  """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.
  """
  if field.cpp_type in _INT_TYPES:
    return _ConvertInteger(value)
  elif field.cpp_type in _FLOAT_TYPES:
    return _ConvertFloat(value)
  elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_BOOL:
    return _ConvertBool(value, require_str)
  elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_STRING:
    if field.type == descriptor.FieldDescriptor.TYPE_BYTES:
      return base64.b64decode(value)
    else:
      # Checking for unpaired surrogates appears to be unreliable,
      # depending on the specific Python version, so we check manually.
      if _UNPAIRED_SURROGATE_PATTERN.search(value):
        raise ParseError('Unpaired surrogate')
      return value
  elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_ENUM:
    # Convert an enum value.
    enum_value = field.enum_type.values_by_name.get(value, None)
    if enum_value is None:
      try:
        number = int(value)
        enum_value = field.enum_type.values_by_number.get(number, None)
      except ValueError:
        raise ParseError('Invalid enum value {0} for enum type {1}.'.format(
            value, field.enum_type.full_name))
      if enum_value is None:
        if field.file.syntax == 'proto3':
          # Proto3 accepts unknown enums.
          return number
        raise ParseError('Invalid enum value {0} for enum type {1}.'.format(
            value, field.enum_type.full_name))
    return enum_value.number


def _ConvertInteger(value):
  """Convert an integer.

  Args:
    value: A scalar value to convert.

  Returns:
    The integer value.

  Raises:
    ParseError: If an integer couldn't be consumed.
  """
  if isinstance(value, float) and not value.is_integer():
    raise ParseError('Couldn\'t parse integer: {0}.'.format(value))

  if isinstance(value, six.text_type) and value.find(' ') != -1:
    raise ParseError('Couldn\'t parse integer: "{0}".'.format(value))

  return int(value)


def _ConvertFloat(value):
  """Convert an floating point number."""
  if value == 'nan':
    raise ParseError('Couldn\'t parse float "nan", use "NaN" instead.')
  try:
    # Assume Python compatible syntax.
    return float(value)
  except ValueError:
    # Check alternative spellings.
    if value == _NEG_INFINITY:
      return float('-inf')
    elif value == _INFINITY:
      return float('inf')
    elif value == _NAN:
      return float('nan')
    else:
      raise ParseError('Couldn\'t parse float: {0}.'.format(value))


def _ConvertBool(value, require_str):
  """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.
  """
  if require_str:
    if value == 'true':
      return True
    elif value == 'false':
      return False
    else:
      raise ParseError('Expected "true" or "false", not {0}.'.format(value))

  if not isinstance(value, bool):
    raise ParseError('Expected true or false without quotes.')
  return value

_WKTJSONMETHODS = {
    'google.protobuf.Any': ['_AnyMessageToJsonObject',
                            '_ConvertAnyMessage'],
    'google.protobuf.Duration': ['_GenericMessageToJsonObject',
                                 '_ConvertGenericMessage'],
    'google.protobuf.FieldMask': ['_GenericMessageToJsonObject',
                                  '_ConvertGenericMessage'],
    'google.protobuf.ListValue': ['_ListValueMessageToJsonObject',
                                  '_ConvertListValueMessage'],
    'google.protobuf.Struct': ['_StructMessageToJsonObject',
                               '_ConvertStructMessage'],
    'google.protobuf.Timestamp': ['_GenericMessageToJsonObject',
                                  '_ConvertGenericMessage'],
    'google.protobuf.Value': ['_ValueMessageToJsonObject',
                              '_ConvertValueMessage']
}
PK�\��6-protobuf/unittest_no_generic_services_pb2.pyonu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�Zejdd
ddddded��Zejdddddddedejdddddddddd�gd dddd!d"d#d$�	Zeje�eje�ZdZd%Zejdd&dd'dddd%dd(d)dd*dd+ed,dd-dd.dd dd/ed0dddde�Zej dd1dd2ddded dd3ejdd4dd5dddddd(d)dd*dd+ed,dd-dd.dd dd/ed0dddde�gd6gd7gd8gddd9eddd:dLgd<gd!d=d#d>�Z!e!ej"d1<eej#d<eej$d&<ej%e�ej&d1e	j'fe(d?e!d@dA��Z)ej*e)�e)j+e�ej,ddBddCdeddddd!dDd#dEdFej-ddGddHdddIddJe!dKe!dd�g�Z.ej/e.�e.ej0dB<dS(Mi����NiicCs|S(N((tx((sT/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_generic_services_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sT/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_generic_services_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames2google/protobuf/unittest_no_generic_services.prototpackages(google.protobuf.no_generic_services_testtsyntaxtproto2t
serialized_pbsm
2google/protobuf/unittest_no_generic_services.proto(google.protobuf.no_generic_services_test"#
TestMessage	
a (*	�����*
TestEnum
FOO2�
TestServices
Foo5.google.protobuf.no_generic_services_test.TestMessage5.google.protobuf.no_generic_services_test.TestMessage:N
test_extension5.google.protobuf.no_generic_services_test.TestMessage� (tTestEnumt	full_names1google.protobuf.no_generic_services_test.TestEnumtfilenametfiletvaluestFOOtindextnumberitoptionsttypetcontaining_typetserialized_starti�tserialized_endi�i�ttest_extensions7google.protobuf.no_generic_services_test.test_extensionitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetTestMessages4google.protobuf.no_generic_services_test.TestMessagetfieldstas6google.protobuf.no_generic_services_test.TestMessage.at
extensionstnested_typest
enum_typest
is_extendabletextension_rangesi toneofsi`i�t
DESCRIPTORt
__module__s0google.protobuf.unittest_no_generic_services_pb2tTestServices4google.protobuf.no_generic_services_test.TestServicei�itmethodstFoos8google.protobuf.no_generic_services_test.TestService.Footcontaining_servicet
input_typetoutput_type(i�i (1tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbtFileDescriptorR/tEnumDescriptortNonetEnumValueDescriptort	_TESTENUMtRegisterEnumDescriptortEnumTypeWrapperRRtTEST_EXTENSION_FIELD_NUMBERtFieldDescriptortFalsetTrueRt
Descriptort_TESTMESSAGEtmessage_types_by_nametenum_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR&tRegisterMessagetRegisterExtensiontServiceDescriptortMethodDescriptort_TESTSERVICEtRegisterServiceDescriptortservices_by_name(((sT/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_generic_services_pb2.pyt<module>s�%				
					





		
PK�\�ڍ:����protobuf/map_unittest_pb2.pyonu�[����
���hc?@swmddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZdd
lmZejddddddded�dejejg�Zejdddddddedejddddddd dd!d�ejdd"dd#dd#d dd!d�ejdd$dd%dd%d dd!d�gd&dd dd'd(d)d*�	Zeje�eje�ZdZd#Zd%Z ejdd+dd,dddedejdd-ddddd dd!d�gd&dd dd'd.d)d/�	Z!eje!�ej"dd0dd1ddded&dd2ej#dd3dd4dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd?dd#dd%d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dGd)dH�Z'ej"ddIddJddded&dd2ej#dd3ddKdddd#d!dd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddLdd#dd%d!dd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dMd)dN�Z(ej"ddOddPddded&dd2ej#dd3ddQdddd#d!dRd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddSdd#dd%d!dRd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dTd)dU�Z)ej"ddVddWddded&dd2ej#dd3ddXdddd#d!dYd6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddZdd#dd%d!dYd6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd[d)d\�Z*ej"dd]dd^ddded&dd2ej#dd3dd_dddd#d!d`d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddadd#dd%d!d`d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dbd)dc�Z+ej"dddddeddded&dd2ej#dd3ddfdddd#d!dgd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddhdd#dd%d!dgd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'did)dj�Z,ej"ddkddlddded&dd2ej#dd3ddmdddd#d!dnd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddodd#dd%d!dnd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dpd)dq�Z-ej"ddrddsddded&dd2ej#dd3ddtdddd#d!dud6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddvdd#dd%d!dud6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dwd)dx�Z.ej"ddyddzddded&dd2ej#dd3dd{dddd#d!d|d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd}dd#dd%d!d|d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd~d)d�Z/ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d�d6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z0ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d%d6dud7d#d8e$d9e1d�d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z2ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d#d6d5d7d#d8e$d9e1d�d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z3ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d�d6dnd7d#d8e$d9e$d:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6dnd7d#d8e$d9e$d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z4ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z6ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9ed��d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z7ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z8ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z9ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z:ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z;ej"dd�dd�ddded&dd2ej#dd�dd�dddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd#dd%d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd%ddd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�ddddYd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�ddYdd5d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd5ddud!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dduddnd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�ddndd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�ddRd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�ddRdd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd|d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd|dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd�dd`d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�dd`ddgd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd�ddgdd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAe'e(e)e*e+e,e-e.e/e0e2e3e4e6e7e8e9e:e;gdBgd ddDe$dddEgdFgd'd�d)d��Z<ej"dd�dd�ddded&dd2ej#dd�dd�dddd#d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ddDe$dddEgdFgd'd�d)d��Z=ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z>ej"dd�dd�ddded&dd2ej#dd�dd�dddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAe>gdBgd ddDe$dddEgdFgd'd�d)d��Z?ej"ddddddded&dd2ej#dd3dddddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dddd#dd%d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dd)d�Z@ej"ddddddded&dd2ej#dd3dddddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd	dd#dd%d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd
d)d�ZAej"dddd
ddded&dd2ej#dddddddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dddddd#dd%d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAe@eAgdBgd ddDe$dddEgdFgd'dd)d�ZBej"ddddddded&dd2ej#dd3dddddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dddd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dd)d�ZCej"ddddddded&dd2ej#dddddddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAeCgdBgd ddDe$dddEgdFgd'dd)d�ZDej"dd0ddddded&dd2ej#dd3dddddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd dd#dd%d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dGd)dH�ZEej"ddIdd!ddded&dd2ej#dd3dd"dddd#d!dd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd#dd#dd%d!dd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dMd)dN�ZFej"ddOdd$ddded&dd2ej#dd3dd%dddd#d!dRd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd&dd#dd%d!dRd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dTd)dU�ZGej"ddVdd'ddded&dd2ej#dd3dd(dddd#d!dYd6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd)dd#dd%d!dYd6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd[d)d\�ZHej"dd]dd*ddded&dd2ej#dd3dd+dddd#d!d`d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd,dd#dd%d!d`d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dbd)dc�ZIej"ddddd-ddded&dd2ej#dd3dd.dddd#d!dgd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd/dd#dd%d!dgd6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'did)dj�ZJej"ddkdd0ddded&dd2ej#dd3dd1dddd#d!dnd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd2dd#dd%d!dnd6dd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dpd)dq�ZKej"ddrdd3ddded&dd2ej#dd3dd4dddd#d!dud6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd5dd#dd%d!dud6dYd7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dwd)dx�ZLej"ddydd6ddded&dd2ej#dd3dd7dddd#d!d|d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd8dd#dd%d!d|d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd~d)d�ZMej"dd�dd9ddded&dd2ej#dd3dd:dddd#d!d�d6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd;dd#dd%d!d�d6d%d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZNej"dd�dd<ddded&dd2ej#dd3dd=dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>dd>dd#dd%d!d%d6dud7d#d8e$d9e1d�d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZOej"dd�dd?ddded&dd2ej#dd3dd@dddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddAdd#dd%d!d#d6d5d7d#d8e$d9e1d�d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZPej"dd�ddBddded&dd2ej#dd3ddCdddd#d!d�d6dnd7d#d8e$d9e$d:dd;dd&dd<e$d=dd dde�ej#dd>ddDdd#dd%d!d�d6dnd7d#d8e$d9e$d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZQej"dd�ddEddded&dd2ej#dd3ddFdddd#d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�ej#dd>ddGdd#dd%d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZRej"dd�ddHddded&dd2ej#dd3ddIdddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddJdd#dd%d!d�d6d�d7d#d8e$d9ed��d:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZSej"dd�ddKddded&dd2ej#dd3ddLdddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddMdd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZTej"dd�ddNddded&dd2ej#dd3ddOdddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddPdd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��ZUej"ddQddRddded&dd2ej#dd3ddSdddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddTdd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dUd)dV�ZVej"ddWddXddded&dd2ej#dd�ddYdddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddZdd#dd%d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd[dd%ddd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd\ddddYd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd]ddYdd5d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd^dd5ddud!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd_dduddnd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�dd`ddndd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddadd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddbdd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddcdd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddddd�dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddedd�ddRd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddfddRdd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddgdd�dd|d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddhdd|dd�d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#dd�ddidd�dd`d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�ej#ddjddkdd`ddgd!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVgdBgd ddDe$dddEgdFgd'dld)dV�ZWej"ddmddnddded&dd2ej#dd3ddodddd#d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�ej#dd>ddpdd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'dqd)dr�ZXej"ddsddtddded&dd2ej#dd!ddudddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAeXgdBe!gd ddDe$dddEgdFgd'dvd)d/�ZYej"ddwddxddded&dd2ej#dd3ddydddd#d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�ej#dd>ddzdd#dd%d!d5d6d#d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd{d)d|�ZZej"dd}dd~ddded&dd2ej#dddd�dddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAeZgdBgd ddDe$dddEgdFgd'd�d)d|�Z[ej"dd�dd�ddded&dd2ej#dd3dd�dddd#d!d�d6d�d7d#d8e$d9ed��j5d��d:dd;dd&dd<e$d=dd dde�ej#dd>dd�dd#dd%d!d�d6d�d7d#d8e$d9dd:dd;dd&dd<e$d=dd dde�gd@gdAgdBgd ej%ej&�edC��dDe$dddEgdFgd'd�d)d��Z\ej"dd�dd�ddded&dd2ej#dd�dd�dddd#d!d�d6d�d7dd8e$d9gd:dd;dd&dd<e$d=dd dde�gd@gdAe\gdBgd ddDe$dddEgdFgd'd�d)d��Z]e<e'_^e<e(_^e<e)_^e<e*_^e<e+_^e<e,_^e<e-_^e<e._^e<e/_^e<e0_^e<e2_^e<e3_^e<e4_^e<e6_^e<e7_^ee8j_d>_`e<e8_^ejae9j_d>_be<e9_^ejae:j_d>_be<e:_^ejce;j_d>_be<e;_^e'e<j_d�_be(e<j_d�_be)e<j_d�_be*e<j_d�_be+e<j_d�_be,e<j_d�_be-e<j_d�_be.e<j_d�_be/e<j_d�_be0e<j_d�_be2e<j_d�_be3e<j_d�_be4e<j_d�_be6e<j_d�_be7e<j_d�_be8e<j_d�_be9e<j_d�_be:e<j_d�_be;e<j_d�_be<e=j_d�_bejce>j_d>_be?e>_^e>e?j_d�_beBe@_^eBeA_^e@eBj_d_beAeBj_d_bejdeCj_d>_beDeC_^eCeDj_d_beWeE_^eWeF_^eWeG_^eWeH_^eWeI_^eWeJ_^eWeK_^eWeL_^eWeM_^eWeN_^eWeO_^eWeP_^eWeQ_^eWeR_^eWeS_^eeTj_d>_`eWeT_^ejaeUj_d>_beWeU_^ejaeVj_d>_beWeV_^eEeWj_d�_beFeWj_d�_beGeWj_d�_beHeWj_d�_beIeWj_d�_beJeWj_d�_beKeWj_d�_beLeWj_d�_beMeWj_d�_beNeWj_d�_beOeWj_d�_bePeWj_d�_beQeWj_d�_beReWj_d�_beSeWj_d�_beTeWj_d�_beUeWj_d�_beVeWj_dj_beYeXj_d>_beYeX_^eXeYj_d!_beYe!_^e[eZ_^eZe[j_d_be]e\j_d>_be]e\_^e\e]j_d�_be<ejed�<e=ejed�<e?ejed�<eBejed<eDejed<eWejedW<eYejeds<e[ejed}<e]ejed�<eejfd<ejge�ejhd�e	jifejd0ejhd0e	jifejd�e'd�d���dIejhdIe	jifejd�e(d�d���dOejhdOe	jifejd�e)d�d���dVejhdVe	jifejd�e*d�d���d]ejhd]e	jifejd�e+d�d���ddejhdde	jifejd�e,d�d���dkejhdke	jifejd�e-d�d���drejhdre	jifejd�e.d�d���dyejhdye	jifejd�e/d�d���d�ejhd�e	jifejd�e0d�d���d�ejhd�e	jifejd�e2d�d���d�ejhd�e	jifejd�e3d�d���d�ejhd�e	jifejd�e4d�d���d�ejhd�e	jifejd�e6d�d���d�ejhd�e	jifejd�e7d�d���d�ejhd�e	jifejd�e8d�d���d�ejhd�e	jifejd�e9d�d���d�ejhd�e	jifejd�e:d�d���d�ejhd�e	jifejd�e;d�d���d�e<d�d���Zkejlek�ejlekjm�ejlekjn�ejlekjo�ejlekjp�ejlekjq�ejlekjr�ejlekjs�ejlekjt�ejlekju�ejlekjv�ejlekjw�ejlekjx�ejlekjy�ejlekjz�ejlekj{�ejlekj|�ejlekj}�ejlekj~�ejlekj�ejhd�e	jifejd�e=d�d���Z�ejle��ejhd�e	jifejd�ejhd�e	jifejd�e>d�d���d�e?d�d���Z�ejle��ejle�j��ejhde	jifejdejhde	jifejd�e@d�d���dejhde	jifejd�eAd�d���d�eBd�d���Z�ejle��ejle�j��ejle�j��ejhde	jifejdejhde	jifejd�eCd�d���d�eDd�d���Z�ejle��ejle�j��ejhdWe	jifejd0ejhd0e	jifejd�eEd�d���dIejhdIe	jifejd�eFd�d���dOejhdOe	jifejd�eGd�d���dVejhdVe	jifejd�eHd�d���d]ejhd]e	jifejd�eId�d���ddejhdde	jifejd�eJd�d���dkejhdke	jifejd�eKd�d���drejhdre	jifejd�eLd�d���dyejhdye	jifejd�eMd�d���d�ejhd�e	jifejd�eNd�d���d�ejhd�e	jifejd�eOd�d���d�ejhd�e	jifejd�ePd�d���d�ejhd�e	jifejd�eQd�d���d�ejhd�e	jifejd�eRd�d���d�ejhd�e	jifejd�eSd�d���d�ejhd�e	jifejd�eTd�d���d�ejhd�e	jifejd�eUd�d���dQejhdQe	jifejd�eVd�d���d�eWd�d���Z�ejle��ejle�jm�ejle�jn�ejle�jo�ejle�jp�ejle�jq�ejle�jr�ejle�js�ejle�jt�ejle�ju�ejle�jv�ejle�jw�ejle�jx�ejle�jy�ejle�jz�ejle�j{�ejle�j|�ejle�j}�ejle�j��ejhdse	jifejdmejhdme	jifejd�eXd�d���d�eYd�d���Z�ejle��ejle�j��ejhd}e	jifejdwejhdwe	jifejd�eZd�d���d�e[d�d���Z�ejle��ejle�j��ejhd�e	jifejd�ejhd�e	jifejd�e\d�d���d�e]d�d���Z�ejle��ejle�j��e�e_�ej%ej��ed���e_�e�e'_�ej%ej&�edC��e'_�e�e(_�ej%ej&�edC��e(_�e�e)_�ej%ej&�edC��e)_�e�e*_�ej%ej&�edC��e*_�e�e+_�ej%ej&�edC��e+_�e�e,_�ej%ej&�edC��e,_�e�e-_�ej%ej&�edC��e-_�e�e._�ej%ej&�edC��e._�e�e/_�ej%ej&�edC��e/_�e�e0_�ej%ej&�edC��e0_�e�e2_�ej%ej&�edC��e2_�e�e3_�ej%ej&�edC��e3_�e�e4_�ej%ej&�edC��e4_�e�e6_�ej%ej&�edC��e6_�e�e7_�ej%ej&�edC��e7_�e�e8_�ej%ej&�edC��e8_�e�e9_�ej%ej&�edC��e9_�e�e:_�ej%ej&�edC��e:_�e�e;_�ej%ej&�edC��e;_�e�e>_�ej%ej&�edC��e>_�e�e@_�ej%ej&�edC��e@_�e�eA_�ej%ej&�edC��eA_�e�eC_�ej%ej&�edC��eC_�e�eE_�ej%ej&�edC��eE_�e�eF_�ej%ej&�edC��eF_�e�eG_�ej%ej&�edC��eG_�e�eH_�ej%ej&�edC��eH_�e�eI_�ej%ej&�edC��eI_�e�eJ_�ej%ej&�edC��eJ_�e�eK_�ej%ej&�edC��eK_�e�eL_�ej%ej&�edC��eL_�e�eM_�ej%ej&�edC��eM_�e�eN_�ej%ej&�edC��eN_�e�eO_�ej%ej&�edC��eO_�e�eP_�ej%ej&�edC��eP_�e�eQ_�ej%ej&�edC��eQ_�e�eR_�ej%ej&�edC��eR_�e�eS_�ej%ej&�edC��eS_�e�eT_�ej%ej&�edC��eT_�e�eU_�ej%ej&�edC��eU_�e�eV_�ej%ej&�edC��eV_�e�eX_�ej%ej&�edC��eX_�e�eZ_�ej%ej&�edC��eZ_�e�e\_�ej%ej&�edC��e\_�dS(�i����NiicCs|S(N((tx((sD/usr/lib/python2.7/site-packages/google/protobuf/map_unittest_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sD/usr/lib/python2.7/site-packages/google/protobuf/map_unittest_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_pb2(tunittest_no_arena_pb2tnames"google/protobuf/map_unittest.prototpackagetprotobuf_unittesttsyntaxtproto3t
serialized_pbs}
"google/protobuf/map_unittest.protoprotobuf_unittestgoogle/protobuf/unittest.proto'google/protobuf/unittest_no_arena.proto"�
TestMapF
map_int32_int32 (2-.protobuf_unittest.TestMap.MapInt32Int32EntryF
map_int64_int64 (2-.protobuf_unittest.TestMap.MapInt64Int64EntryJ
map_uint32_uint32 (2/.protobuf_unittest.TestMap.MapUint32Uint32EntryJ
map_uint64_uint64 (2/.protobuf_unittest.TestMap.MapUint64Uint64EntryJ
map_sint32_sint32 (2/.protobuf_unittest.TestMap.MapSint32Sint32EntryJ
map_sint64_sint64 (2/.protobuf_unittest.TestMap.MapSint64Sint64EntryN
map_fixed32_fixed32 (21.protobuf_unittest.TestMap.MapFixed32Fixed32EntryN
map_fixed64_fixed64 (21.protobuf_unittest.TestMap.MapFixed64Fixed64EntryR
map_sfixed32_sfixed32	 (23.protobuf_unittest.TestMap.MapSfixed32Sfixed32EntryR
map_sfixed64_sfixed64
 (23.protobuf_unittest.TestMap.MapSfixed64Sfixed64EntryF
map_int32_float (2-.protobuf_unittest.TestMap.MapInt32FloatEntryH
map_int32_double (2..protobuf_unittest.TestMap.MapInt32DoubleEntryB

map_bool_bool
 (2+.protobuf_unittest.TestMap.MapBoolBoolEntryJ
map_string_string (2/.protobuf_unittest.TestMap.MapStringStringEntryF
map_int32_bytes (2-.protobuf_unittest.TestMap.MapInt32BytesEntryD
map_int32_enum (2,.protobuf_unittest.TestMap.MapInt32EnumEntryY
map_int32_foreign_message (26.protobuf_unittest.TestMap.MapInt32ForeignMessageEntry[
map_string_foreign_message (27.protobuf_unittest.TestMap.MapStringForeignMessageEntryM
map_int32_all_types (20.protobuf_unittest.TestMap.MapInt32AllTypesEntry4
MapInt32Int32Entry
key (
value (:84
MapInt64Int64Entry
key (
value (:86
MapUint32Uint32Entry
key (

value (
:86
MapUint64Uint64Entry
key (
value (:86
MapSint32Sint32Entry
key (
value (:86
MapSint64Sint64Entry
key (
value (:88
MapFixed32Fixed32Entry
key (
value (:88
MapFixed64Fixed64Entry
key (
value (:8:
MapSfixed32Sfixed32Entry
key (
value (:8:
MapSfixed64Sfixed64Entry
key (
value (:84
MapInt32FloatEntry
key (
value (:85
MapInt32DoubleEntry
key (
value (:82
MapBoolBoolEntry
key (
value (:86
MapStringStringEntry
key (	
value (	:84
MapInt32BytesEntry
key (
value (:8O
MapInt32EnumEntry
key ()
value (2.protobuf_unittest.MapEnum:8`
MapInt32ForeignMessageEntry
key (0
value (2!.protobuf_unittest.ForeignMessage:8a
MapStringForeignMessageEntry
key (	0
value (2!.protobuf_unittest.ForeignMessage:8X
MapInt32AllTypesEntry
key (.
value (2.protobuf_unittest.TestAllTypes:8"A
TestMapSubmessage,
test_map (2.protobuf_unittest.TestMap"�
TestMessageMapQ
map_int32_message (26.protobuf_unittest.TestMessageMap.MapInt32MessageEntryW
MapInt32MessageEntry
key (.
value (2.protobuf_unittest.TestAllTypes:8"�
TestSameTypeMap:
map1 (2,.protobuf_unittest.TestSameTypeMap.Map1Entry:
map2 (2,.protobuf_unittest.TestSameTypeMap.Map2Entry+
	Map1Entry
key (
value (:8+
	Map2Entry
key (
value (:8"�
TestRequiredMessageMapJ
	map_field (27.protobuf_unittest.TestRequiredMessageMap.MapFieldEntryP

MapFieldEntry
key (.
value (2.protobuf_unittest.TestRequired:8"�
TestArenaMapK
map_int32_int32 (22.protobuf_unittest.TestArenaMap.MapInt32Int32EntryK
map_int64_int64 (22.protobuf_unittest.TestArenaMap.MapInt64Int64EntryO
map_uint32_uint32 (24.protobuf_unittest.TestArenaMap.MapUint32Uint32EntryO
map_uint64_uint64 (24.protobuf_unittest.TestArenaMap.MapUint64Uint64EntryO
map_sint32_sint32 (24.protobuf_unittest.TestArenaMap.MapSint32Sint32EntryO
map_sint64_sint64 (24.protobuf_unittest.TestArenaMap.MapSint64Sint64EntryS
map_fixed32_fixed32 (26.protobuf_unittest.TestArenaMap.MapFixed32Fixed32EntryS
map_fixed64_fixed64 (26.protobuf_unittest.TestArenaMap.MapFixed64Fixed64EntryW
map_sfixed32_sfixed32	 (28.protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32EntryW
map_sfixed64_sfixed64
 (28.protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64EntryK
map_int32_float (22.protobuf_unittest.TestArenaMap.MapInt32FloatEntryM
map_int32_double (23.protobuf_unittest.TestArenaMap.MapInt32DoubleEntryG

map_bool_bool
 (20.protobuf_unittest.TestArenaMap.MapBoolBoolEntryO
map_string_string (24.protobuf_unittest.TestArenaMap.MapStringStringEntryK
map_int32_bytes (22.protobuf_unittest.TestArenaMap.MapInt32BytesEntryI
map_int32_enum (21.protobuf_unittest.TestArenaMap.MapInt32EnumEntry^
map_int32_foreign_message (2;.protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntryn
"map_int32_foreign_message_no_arena (2B.protobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry4
MapInt32Int32Entry
key (
value (:84
MapInt64Int64Entry
key (
value (:86
MapUint32Uint32Entry
key (

value (
:86
MapUint64Uint64Entry
key (
value (:86
MapSint32Sint32Entry
key (
value (:86
MapSint64Sint64Entry
key (
value (:88
MapFixed32Fixed32Entry
key (
value (:88
MapFixed64Fixed64Entry
key (
value (:8:
MapSfixed32Sfixed32Entry
key (
value (:8:
MapSfixed64Sfixed64Entry
key (
value (:84
MapInt32FloatEntry
key (
value (:85
MapInt32DoubleEntry
key (
value (:82
MapBoolBoolEntry
key (
value (:86
MapStringStringEntry
key (	
value (	:84
MapInt32BytesEntry
key (
value (:8O
MapInt32EnumEntry
key ()
value (2.protobuf_unittest.MapEnum:8`
MapInt32ForeignMessageEntry
key (0
value (2!.protobuf_unittest.ForeignMessage:8p
"MapInt32ForeignMessageNoArenaEntry
key (9
value (2*.protobuf_unittest_no_arena.ForeignMessage:8"�
MessageContainingEnumCalledTypeJ
type (2<.protobuf_unittest.MessageContainingEnumCalledType.TypeEntry_
	TypeEntry
key (	A
value (22.protobuf_unittest.MessageContainingEnumCalledType:8"
Type
TYPE_FOO"�
MessageContainingMapCalledEntryL
entry (2=.protobuf_unittest.MessageContainingMapCalledEntry.EntryEntry,

EntryEntry
key (
value (:8"�
TestRecursiveMapMessage<
a (21.protobuf_unittest.TestRecursiveMapMessage.AEntryT
AEntry
key (	9
value (2*.protobuf_unittest.TestRecursiveMapMessage:8*?
MapEnum
MAP_ENUM_FOO
MAP_ENUM_BAR
MAP_ENUM_BAZB�bproto3tdependenciestMapEnumt	full_namesprotobuf_unittest.MapEnumtfilenametfiletvaluestMAP_ENUM_FOOtindextnumbertoptionsttypetMAP_ENUM_BARitMAP_ENUM_BAZitcontaining_typetserialized_starti1tserialized_endiptTypes6protobuf_unittest.MessageContainingEnumCalledType.TypetTYPE_FOOi�i�tMapInt32Int32Entrys,protobuf_unittest.TestMap.MapInt32Int32Entrytfieldstkeys0protobuf_unittest.TestMap.MapInt32Int32Entry.keyitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetvalues2protobuf_unittest.TestMap.MapInt32Int32Entry.valuet
extensionstnested_typest
enum_typess8t
is_extendabletextension_rangestoneofsiMi�tMapInt64Int64Entrys,protobuf_unittest.TestMap.MapInt64Int64Entrys0protobuf_unittest.TestMap.MapInt64Int64Entry.keys2protobuf_unittest.TestMap.MapInt64Int64Entry.valuei�i�tMapUint32Uint32Entrys.protobuf_unittest.TestMap.MapUint32Uint32Entrys2protobuf_unittest.TestMap.MapUint32Uint32Entry.keyi
s4protobuf_unittest.TestMap.MapUint32Uint32Entry.valuei�i�tMapUint64Uint64Entrys.protobuf_unittest.TestMap.MapUint64Uint64Entrys2protobuf_unittest.TestMap.MapUint64Uint64Entry.keyis4protobuf_unittest.TestMap.MapUint64Uint64Entry.valuei�i'tMapSint32Sint32Entrys.protobuf_unittest.TestMap.MapSint32Sint32Entrys2protobuf_unittest.TestMap.MapSint32Sint32Entry.keyis4protobuf_unittest.TestMap.MapSint32Sint32Entry.valuei)i_tMapSint64Sint64Entrys.protobuf_unittest.TestMap.MapSint64Sint64Entrys2protobuf_unittest.TestMap.MapSint64Sint64Entry.keyis4protobuf_unittest.TestMap.MapSint64Sint64Entry.valueiai�tMapFixed32Fixed32Entrys0protobuf_unittest.TestMap.MapFixed32Fixed32Entrys4protobuf_unittest.TestMap.MapFixed32Fixed32Entry.keyis6protobuf_unittest.TestMap.MapFixed32Fixed32Entry.valuei�i�tMapFixed64Fixed64Entrys0protobuf_unittest.TestMap.MapFixed64Fixed64Entrys4protobuf_unittest.TestMap.MapFixed64Fixed64Entry.keyis6protobuf_unittest.TestMap.MapFixed64Fixed64Entry.valuei�itMapSfixed32Sfixed32Entrys2protobuf_unittest.TestMap.MapSfixed32Sfixed32Entrys6protobuf_unittest.TestMap.MapSfixed32Sfixed32Entry.keyis8protobuf_unittest.TestMap.MapSfixed32Sfixed32Entry.valuei
iGtMapSfixed64Sfixed64Entrys2protobuf_unittest.TestMap.MapSfixed64Sfixed64Entrys6protobuf_unittest.TestMap.MapSfixed64Sfixed64Entry.keyis8protobuf_unittest.TestMap.MapSfixed64Sfixed64Entry.valueiIi�tMapInt32FloatEntrys,protobuf_unittest.TestMap.MapInt32FloatEntrys0protobuf_unittest.TestMap.MapInt32FloatEntry.keys2protobuf_unittest.TestMap.MapInt32FloatEntry.valuei�i�tMapInt32DoubleEntrys-protobuf_unittest.TestMap.MapInt32DoubleEntrys1protobuf_unittest.TestMap.MapInt32DoubleEntry.keys3protobuf_unittest.TestMap.MapInt32DoubleEntry.valuei�i�tMapBoolBoolEntrys*protobuf_unittest.TestMap.MapBoolBoolEntrys.protobuf_unittest.TestMap.MapBoolBoolEntry.keyis0protobuf_unittest.TestMap.MapBoolBoolEntry.valuei�i$	tMapStringStringEntrys.protobuf_unittest.TestMap.MapStringStringEntrys2protobuf_unittest.TestMap.MapStringStringEntry.keyi	Rsutf-8s4protobuf_unittest.TestMap.MapStringStringEntry.valuei&	i\	tMapInt32BytesEntrys,protobuf_unittest.TestMap.MapInt32BytesEntrys0protobuf_unittest.TestMap.MapInt32BytesEntry.keys2protobuf_unittest.TestMap.MapInt32BytesEntry.valueii^	i�	tMapInt32EnumEntrys+protobuf_unittest.TestMap.MapInt32EnumEntrys/protobuf_unittest.TestMap.MapInt32EnumEntry.keys1protobuf_unittest.TestMap.MapInt32EnumEntry.valueii�	i�	tMapInt32ForeignMessageEntrys5protobuf_unittest.TestMap.MapInt32ForeignMessageEntrys9protobuf_unittest.TestMap.MapInt32ForeignMessageEntry.keys;protobuf_unittest.TestMap.MapInt32ForeignMessageEntry.valueii
i�	iE
tMapStringForeignMessageEntrys6protobuf_unittest.TestMap.MapStringForeignMessageEntrys:protobuf_unittest.TestMap.MapStringForeignMessageEntry.keys<protobuf_unittest.TestMap.MapStringForeignMessageEntry.valueiG
i�
tMapInt32AllTypesEntrys/protobuf_unittest.TestMap.MapInt32AllTypesEntrys3protobuf_unittest.TestMap.MapInt32AllTypesEntry.keys5protobuf_unittest.TestMap.MapInt32AllTypesEntry.valuei�
itTestMapsprotobuf_unittest.TestMaptmap_int32_int32s)protobuf_unittest.TestMap.map_int32_int32tmap_int64_int64s)protobuf_unittest.TestMap.map_int64_int64tmap_uint32_uint32s+protobuf_unittest.TestMap.map_uint32_uint32tmap_uint64_uint64s+protobuf_unittest.TestMap.map_uint64_uint64tmap_sint32_sint32s+protobuf_unittest.TestMap.map_sint32_sint32tmap_sint64_sint64s+protobuf_unittest.TestMap.map_sint64_sint64tmap_fixed32_fixed32s-protobuf_unittest.TestMap.map_fixed32_fixed32tmap_fixed64_fixed64s-protobuf_unittest.TestMap.map_fixed64_fixed64tmap_sfixed32_sfixed32s/protobuf_unittest.TestMap.map_sfixed32_sfixed32tmap_sfixed64_sfixed64s/protobuf_unittest.TestMap.map_sfixed64_sfixed64tmap_int32_floats)protobuf_unittest.TestMap.map_int32_floattmap_int32_doubles*protobuf_unittest.TestMap.map_int32_doublet
map_bool_bools'protobuf_unittest.TestMap.map_bool_booltmap_string_strings+protobuf_unittest.TestMap.map_string_stringtmap_int32_bytess)protobuf_unittest.TestMap.map_int32_bytestmap_int32_enums(protobuf_unittest.TestMap.map_int32_enumtmap_int32_foreign_messages3protobuf_unittest.TestMap.map_int32_foreign_messagetmap_string_foreign_messages4protobuf_unittest.TestMap.map_string_foreign_messagetmap_int32_all_typess-protobuf_unittest.TestMap.map_int32_all_typesii�tTestMapSubmessages#protobuf_unittest.TestMapSubmessagettest_maps,protobuf_unittest.TestMapSubmessage.test_mapiiEtMapInt32MessageEntrys5protobuf_unittest.TestMessageMap.MapInt32MessageEntrys9protobuf_unittest.TestMessageMap.MapInt32MessageEntry.keys;protobuf_unittest.TestMessageMap.MapInt32MessageEntry.valuei�itTestMessageMaps protobuf_unittest.TestMessageMaptmap_int32_messages2protobuf_unittest.TestMessageMap.map_int32_messageiHt	Map1Entrys+protobuf_unittest.TestSameTypeMap.Map1Entrys/protobuf_unittest.TestSameTypeMap.Map1Entry.keys1protobuf_unittest.TestSameTypeMap.Map1Entry.valuei�i�t	Map2Entrys+protobuf_unittest.TestSameTypeMap.Map2Entrys/protobuf_unittest.TestSameTypeMap.Map2Entry.keys1protobuf_unittest.TestSameTypeMap.Map2Entry.valuei�i�tTestSameTypeMaps!protobuf_unittest.TestSameTypeMaptmap1s&protobuf_unittest.TestSameTypeMap.map1tmap2s&protobuf_unittest.TestSameTypeMap.map2it
MapFieldEntrys6protobuf_unittest.TestRequiredMessageMap.MapFieldEntrys:protobuf_unittest.TestRequiredMessageMap.MapFieldEntry.keys<protobuf_unittest.TestRequiredMessageMap.MapFieldEntry.valueiS
i�
tTestRequiredMessageMaps(protobuf_unittest.TestRequiredMessageMapt	map_fields2protobuf_unittest.TestRequiredMessageMap.map_fieldi�s1protobuf_unittest.TestArenaMap.MapInt32Int32Entrys5protobuf_unittest.TestArenaMap.MapInt32Int32Entry.keys7protobuf_unittest.TestArenaMap.MapInt32Int32Entry.values1protobuf_unittest.TestArenaMap.MapInt64Int64Entrys5protobuf_unittest.TestArenaMap.MapInt64Int64Entry.keys7protobuf_unittest.TestArenaMap.MapInt64Int64Entry.values3protobuf_unittest.TestArenaMap.MapUint32Uint32Entrys7protobuf_unittest.TestArenaMap.MapUint32Uint32Entry.keys9protobuf_unittest.TestArenaMap.MapUint32Uint32Entry.values3protobuf_unittest.TestArenaMap.MapUint64Uint64Entrys7protobuf_unittest.TestArenaMap.MapUint64Uint64Entry.keys9protobuf_unittest.TestArenaMap.MapUint64Uint64Entry.values3protobuf_unittest.TestArenaMap.MapSint32Sint32Entrys7protobuf_unittest.TestArenaMap.MapSint32Sint32Entry.keys9protobuf_unittest.TestArenaMap.MapSint32Sint32Entry.values3protobuf_unittest.TestArenaMap.MapSint64Sint64Entrys7protobuf_unittest.TestArenaMap.MapSint64Sint64Entry.keys9protobuf_unittest.TestArenaMap.MapSint64Sint64Entry.values5protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entrys9protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entry.keys;protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entry.values5protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entrys9protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entry.keys;protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entry.values7protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entrys;protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entry.keys=protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entry.values7protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entrys;protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entry.keys=protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entry.values1protobuf_unittest.TestArenaMap.MapInt32FloatEntrys5protobuf_unittest.TestArenaMap.MapInt32FloatEntry.keys7protobuf_unittest.TestArenaMap.MapInt32FloatEntry.values2protobuf_unittest.TestArenaMap.MapInt32DoubleEntrys6protobuf_unittest.TestArenaMap.MapInt32DoubleEntry.keys8protobuf_unittest.TestArenaMap.MapInt32DoubleEntry.values/protobuf_unittest.TestArenaMap.MapBoolBoolEntrys3protobuf_unittest.TestArenaMap.MapBoolBoolEntry.keys5protobuf_unittest.TestArenaMap.MapBoolBoolEntry.values3protobuf_unittest.TestArenaMap.MapStringStringEntrys7protobuf_unittest.TestArenaMap.MapStringStringEntry.keys9protobuf_unittest.TestArenaMap.MapStringStringEntry.values1protobuf_unittest.TestArenaMap.MapInt32BytesEntrys5protobuf_unittest.TestArenaMap.MapInt32BytesEntry.keys7protobuf_unittest.TestArenaMap.MapInt32BytesEntry.values0protobuf_unittest.TestArenaMap.MapInt32EnumEntrys4protobuf_unittest.TestArenaMap.MapInt32EnumEntry.keys6protobuf_unittest.TestArenaMap.MapInt32EnumEntry.values:protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntrys>protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntry.keys@protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntry.valuet"MapInt32ForeignMessageNoArenaEntrysAprotobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntrysEprotobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry.keysGprotobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry.valuei�i�tTestArenaMapsprotobuf_unittest.TestArenaMaps.protobuf_unittest.TestArenaMap.map_int32_int32s.protobuf_unittest.TestArenaMap.map_int64_int64s0protobuf_unittest.TestArenaMap.map_uint32_uint32s0protobuf_unittest.TestArenaMap.map_uint64_uint64s0protobuf_unittest.TestArenaMap.map_sint32_sint32s0protobuf_unittest.TestArenaMap.map_sint64_sint64s2protobuf_unittest.TestArenaMap.map_fixed32_fixed32s2protobuf_unittest.TestArenaMap.map_fixed64_fixed64s4protobuf_unittest.TestArenaMap.map_sfixed32_sfixed32s4protobuf_unittest.TestArenaMap.map_sfixed64_sfixed64s.protobuf_unittest.TestArenaMap.map_int32_floats/protobuf_unittest.TestArenaMap.map_int32_doubles,protobuf_unittest.TestArenaMap.map_bool_bools0protobuf_unittest.TestArenaMap.map_string_strings.protobuf_unittest.TestArenaMap.map_int32_bytess-protobuf_unittest.TestArenaMap.map_int32_enums8protobuf_unittest.TestArenaMap.map_int32_foreign_messaget"map_int32_foreign_message_no_arenasAprotobuf_unittest.TestArenaMap.map_int32_foreign_message_no_arenai�
t	TypeEntrys;protobuf_unittest.MessageContainingEnumCalledType.TypeEntrys?protobuf_unittest.MessageContainingEnumCalledType.TypeEntry.keysAprotobuf_unittest.MessageContainingEnumCalledType.TypeEntry.valueiji�tMessageContainingEnumCalledTypes1protobuf_unittest.MessageContainingEnumCalledTypes6protobuf_unittest.MessageContainingEnumCalledType.typei�t
EntryEntrys<protobuf_unittest.MessageContainingMapCalledEntry.EntryEntrys@protobuf_unittest.MessageContainingMapCalledEntry.EntryEntry.keysBprotobuf_unittest.MessageContainingMapCalledEntry.EntryEntry.valueiSitMessageContainingMapCalledEntrys1protobuf_unittest.MessageContainingMapCalledEntrytentrys7protobuf_unittest.MessageContainingMapCalledEntry.entryi�tAEntrys0protobuf_unittest.TestRecursiveMapMessage.AEntrys4protobuf_unittest.TestRecursiveMapMessage.AEntry.keys6protobuf_unittest.TestRecursiveMapMessage.AEntry.valuei�i/tTestRecursiveMapMessages)protobuf_unittest.TestRecursiveMapMessagetas+protobuf_unittest.TestRecursiveMapMessage.ai�t
DESCRIPTORt
__module__s google.protobuf.map_unittest_pb2s�(�tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt%google_dot_protobuf_dot_unittest__pb2Rt0google_dot_protobuf_dot_unittest__no__arena__pb2tFileDescriptorRutEnumDescriptortNonetEnumValueDescriptort_MAPENUMtRegisterEnumDescriptortEnumTypeWrapperRRRRt%_MESSAGECONTAININGENUMCALLEDTYPE_TYPEt
DescriptortFieldDescriptortFalset
_ParseOptionstMessageOptionst_TESTMAP_MAPINT32INT32ENTRYt_TESTMAP_MAPINT64INT64ENTRYt_TESTMAP_MAPUINT32UINT32ENTRYt_TESTMAP_MAPUINT64UINT64ENTRYt_TESTMAP_MAPSINT32SINT32ENTRYt_TESTMAP_MAPSINT64SINT64ENTRYt_TESTMAP_MAPFIXED32FIXED32ENTRYt_TESTMAP_MAPFIXED64FIXED64ENTRYt!_TESTMAP_MAPSFIXED32SFIXED32ENTRYt!_TESTMAP_MAPSFIXED64SFIXED64ENTRYtfloatt_TESTMAP_MAPINT32FLOATENTRYt_TESTMAP_MAPINT32DOUBLEENTRYt_TESTMAP_MAPBOOLBOOLENTRYtdecodet_TESTMAP_MAPSTRINGSTRINGENTRYt_TESTMAP_MAPINT32BYTESENTRYt_TESTMAP_MAPINT32ENUMENTRYt$_TESTMAP_MAPINT32FOREIGNMESSAGEENTRYt%_TESTMAP_MAPSTRINGFOREIGNMESSAGEENTRYt_TESTMAP_MAPINT32ALLTYPESENTRYt_TESTMAPt_TESTMAPSUBMESSAGEt$_TESTMESSAGEMAP_MAPINT32MESSAGEENTRYt_TESTMESSAGEMAPt_TESTSAMETYPEMAP_MAP1ENTRYt_TESTSAMETYPEMAP_MAP2ENTRYt_TESTSAMETYPEMAPt%_TESTREQUIREDMESSAGEMAP_MAPFIELDENTRYt_TESTREQUIREDMESSAGEMAPt _TESTARENAMAP_MAPINT32INT32ENTRYt _TESTARENAMAP_MAPINT64INT64ENTRYt"_TESTARENAMAP_MAPUINT32UINT32ENTRYt"_TESTARENAMAP_MAPUINT64UINT64ENTRYt"_TESTARENAMAP_MAPSINT32SINT32ENTRYt"_TESTARENAMAP_MAPSINT64SINT64ENTRYt$_TESTARENAMAP_MAPFIXED32FIXED32ENTRYt$_TESTARENAMAP_MAPFIXED64FIXED64ENTRYt&_TESTARENAMAP_MAPSFIXED32SFIXED32ENTRYt&_TESTARENAMAP_MAPSFIXED64SFIXED64ENTRYt _TESTARENAMAP_MAPINT32FLOATENTRYt!_TESTARENAMAP_MAPINT32DOUBLEENTRYt_TESTARENAMAP_MAPBOOLBOOLENTRYt"_TESTARENAMAP_MAPSTRINGSTRINGENTRYt _TESTARENAMAP_MAPINT32BYTESENTRYt_TESTARENAMAP_MAPINT32ENUMENTRYt)_TESTARENAMAP_MAPINT32FOREIGNMESSAGEENTRYt0_TESTARENAMAP_MAPINT32FOREIGNMESSAGENOARENAENTRYt
_TESTARENAMAPt*_MESSAGECONTAININGENUMCALLEDTYPE_TYPEENTRYt _MESSAGECONTAININGENUMCALLEDTYPEt+_MESSAGECONTAININGMAPCALLEDENTRY_ENTRYENTRYt _MESSAGECONTAININGMAPCALLEDENTRYt_TESTRECURSIVEMAPMESSAGE_AENTRYt_TESTRECURSIVEMAPMESSAGER tfields_by_nameR-t_FOREIGNMESSAGER,t
_TESTALLTYPESt
_TESTREQUIREDtmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRItRegisterMessageR%R7R8R9R:R;R<R=R>R?R@RARBRCRDRERFRGRHR]R`R_RdRbRcRhRgRkRjRnRmRpRoRsRrtTruethas_optionstFileOptionst_options(((sD/usr/lib/python2.7/site-packages/google/protobuf/map_unittest_pb2.pyt<module>s�%						
			
																																																																																																?																																																																																																																											<																																																																							



















	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	PK�\
�Q:&	&	&protobuf/unittest_import_public_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest_import_public.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest_import_public.proto',
  package='protobuf_unittest_import',
  syntax='proto2',
  serialized_pb=_b('\n,google/protobuf/unittest_import_public.proto\x12\x18protobuf_unittest_import\" \n\x13PublicImportMessage\x12\t\n\x01\x65\x18\x01 \x01(\x05\x42\x1a\n\x18\x63om.google.protobuf.test')
)




_PUBLICIMPORTMESSAGE = _descriptor.Descriptor(
  name='PublicImportMessage',
  full_name='protobuf_unittest_import.PublicImportMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='e', full_name='protobuf_unittest_import.PublicImportMessage.e', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=74,
  serialized_end=106,
)

DESCRIPTOR.message_types_by_name['PublicImportMessage'] = _PUBLICIMPORTMESSAGE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

PublicImportMessage = _reflection.GeneratedProtocolMessageType('PublicImportMessage', (_message.Message,), dict(
  DESCRIPTOR = _PUBLICIMPORTMESSAGE,
  __module__ = 'google.protobuf.unittest_import_public_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest_import.PublicImportMessage)
  ))
_sym_db.RegisterMessage(PublicImportMessage)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\030com.google.protobuf.test'))
# @@protoc_insertion_point(module_scope)
PK	�\ӄ���protobuf/struct_pb2.pycnu�[����
���hc2@s�
ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�Zejdd
ddddded��Zejdddddddedejdddddddddd�gddddd d!d"d#�	Zeje�eje�ZdZejdd$dd%dddeddd&ejdd'dd(dddd)dd*d+d*d,d)d-ed.ed/�jd0�d1dd2dddd3ed4dddde�ejdd5dd6dd)dd7dd8d+d9d,d)d-ed.dd1dd2dddd3ed4dddde�gd:gd;gd<gdejej �ed=��d>eddd?gd@gd dAd"dB�Z!ejddCddDdddeddd&ejdd&ddEdddd)dd8d+d9d,dd-ed.gd1dd2dddd3ed4dddde�gd:gd;e!gd<gddd>eddd?gd@gd dFd"dB�Z"ejddGddHdddeddd&ejddIddJdddd)ddKd+dLd,d)d-ed.dd1dd2dddd3ed4dddde�ejddMddNdd)dd7dd)d+dOd,d)d-ed.e#d�d1dd2dddd3ed4dddde�ejddPddQdd7dddd*d+d*d,d)d-ed.ed/�jd0�d1dd2dddd3ed4dddde�ejddRddSddddTddLd+dUd,d)d-ed.ed1dd2dddd3ed4dddde�ejddVddWddTddOdd8d+d9d,d)d-ed.dd1dd2dddd3ed4dddde�ejddXddYddOddZdd8d+d9d,d)d-ed.dd1dd2dddd3ed4dddde�gd:gd;gd<gddd>eddd?gd@ej$dd[dd\ddddd&g�gd d]d"d^�Z%ejdd_dd`dddeddd&ejddddadddd)dd8d+d9d,dd-ed.gd1dd2dddd3ed4dddde�gd:gd;gd<gddd>eddd?gd@gd dbd"dc�Z&e%e!j'd5_(e"e!_)e!e"j'd&_(ee%j'dI_*e"e%j'dV_(e&e%j'dX_(e%j+d[j,j-e%j'dI�e%j+d[e%j'dI_.e%j+d[j,j-e%j'dM�e%j+d[e%j'dM_.e%j+d[j,j-e%j'dP�e%j+d[e%j'dP_.e%j+d[j,j-e%j'dR�e%j+d[e%j'dR_.e%j+d[j,j-e%j'dV�e%j+d[e%j'dV_.e%j+d[j,j-e%j'dX�e%j+d[e%j'dX_.e%e&j'd_(e"ej/dC<e%ej/dG<e&ej/d_<eej0d<ej1e�ej2dCe	j3fe4d$ej2d$e	j3fe4dde!dedf��dde"dedf��Z5ej6e5�ej6e5j7�ej2dGe	j3fe4dde%dedf��Z8ej6e8�ej2d_e	j3fe4dde&dedf��Z9ej6e9�e:e_;ejej<�edg��e_=e:e!_;ejej �ed=��e!_=dS(hi����NiicCs|S(N((tx((s>/usr/lib/python2.7/site-packages/google/protobuf/struct_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s>/usr/lib/python2.7/site-packages/google/protobuf/struct_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/struct.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/struct.protogoogle.protobuf"�
Struct3
fields (2#.google.protobuf.Struct.FieldsEntryE
FieldsEntry
key (	%
value (2.google.protobuf.Value:8"�
Value0

null_value (2.google.protobuf.NullValueH
number_value (H
string_value (	H

bool_value (H/
struct_value (2.google.protobuf.StructH0

list_value (2.google.protobuf.ListValueHB
kind"3
	ListValue&
values (2.google.protobuf.Value*
	NullValue

NULL_VALUEB�
com.google.protobufBStructProtoPZ1github.com/golang/protobuf/ptypes/struct;structpb��GPB�Google.Protobuf.WellKnownTypesbproto3t	NullValuet	full_namesgoogle.protobuf.NullValuetfilenametfiletvaluest
NULL_VALUEtindextnumbertoptionsttypetcontaining_typetserialized_starti�tserialized_endi�tFieldsEntrys"google.protobuf.Struct.FieldsEntrytfieldstkeys&google.protobuf.Struct.FieldsEntry.keyii	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetvalues(google.protobuf.Struct.FieldsEntry.valueiii
t
extensionstnested_typest
enum_typess8t
is_extendabletextension_rangestoneofsiqi�tStructsgoogle.protobuf.Structsgoogle.protobuf.Struct.fieldsi2tValuesgoogle.protobuf.Valuet
null_values google.protobuf.Value.null_valueiitnumber_values"google.protobuf.Value.number_valueitstring_values"google.protobuf.Value.string_valuet
bool_values google.protobuf.Value.bool_valueiitstruct_values"google.protobuf.Value.struct_valuet
list_values google.protobuf.Value.list_valueitkindsgoogle.protobuf.Value.kindi�i�t	ListValuesgoogle.protobuf.ListValues google.protobuf.ListValue.valuesi�i�t
DESCRIPTORt
__module__sgoogle.protobuf.struct_pb2s�
com.google.protobufBStructProtoPZ1github.com/golang/protobuf/ptypes/struct;structpb��GPB�Google.Protobuf.WellKnownTypes(>tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbtFileDescriptorR9tEnumDescriptortNonetEnumValueDescriptort
_NULLVALUEtRegisterEnumDescriptortEnumTypeWrapperRRt
DescriptortFieldDescriptortFalsetdecodet
_ParseOptionstMessageOptionst_STRUCT_FIELDSENTRYt_STRUCTtfloattOneofDescriptort_VALUEt
_LISTVALUEtfields_by_nameR$RR%toneofs_by_nameRtappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR/tRegisterMessageRR0R8tTruethas_optionstFileOptionst_options(((s>/usr/lib/python2.7/site-packages/google/protobuf/struct_pb2.pyt<module>s�%				
																					







	!	PK	�\�m�Hlmlm"protobuf/unittest_no_arena_pb2.pyonu�[����
���hcy@s�.ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZy
ejZWn ek
r�ejjjZnXdd
lmZejddddddded�dejejg�Zejdddddddedejdddddd d!dd"d�ejdd#dd$dd%d!dd"d�ejdd&dd'dd(d!dd"d�gd)dd!dd*d+d,d-�	Zej e�ej!e�Z"d Z#d%Z$d(Z%ejdd.dd/dddedejdd0dddd$d!dd"d�ejdd1dd$dd'd!dd"d�ejdd2dd'ddd!dd"d�ejdd3ddddd!dd"d�gd)dd!dd*d4d,d5�	Z&ej e&�ej'dd6dd7ddded)dd8ej(dd9dd:dddd$d"d%d;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�gdCgdDgdEgd!ddFe)dddGgdHgd*dId,dJ�Z*ej'ddKddLddded)dd8ej(ddMddNddddOd"d%d;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�gdCgdDgdEgd!ddFe)dddGgdHgd*dPd,dQ�Z+ej'ddRddSddded)dd8ej(ddMddTddddUd"d%d;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�gdCgdDgdEgd!ddFe)dddGgdHgd*dVd,dW�Z,ej'ddXddYddded)dd8ej(ddZdd[dddd$d"d%d;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd\dd]dd$dd'd"dd;d'd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd^dd_dd'ddd"d`d;dd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddaddbdddd d"d d;d d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddcddddd dd%d"dOd;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddeddfdd%dd(d"dgd;d'd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddhddidd(ddjd"djd;dd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddkddlddjddmd"d(d;d d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddnddoddmddpd"dqd;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddrddsddpddtd"dud;d'd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddvddwddtddxd"d'd;d(d<d$d=e)d>e-d�d?dd@dd)ddAe)dBdd!dde�ej(ddyddzddxdd{d"d$d;d%d<d$d=e)d>e-d�d?dd@dd)ddAe)dBdd!dde�ej(dd|dd}dd{dd`d"dmd;djd<d$d=e)d>e)d?dd@dd)ddAe)dBdd!dde�ej(dd~dddd`dd�d"dpd;dpd<d$d=e)d>ed��j.d��d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�ddqd"d{d;dpd<d$d=e)d>ed��d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�ddqddud"dtd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dduddgd"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�ddOdd�d"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�ddgdd�d"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d�d;dmd<d$d=e)d>d$d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d�d;dmd<d$d=e)d>d d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d�d;dmd<d$d=e)d>djd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dpd;dpd<d$d=e)d>ed��j.d��d?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"dpd;dpd<d$d=e)d>ed��j.d��d?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"d%d;d$d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dd;d'd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d`d;dd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d d;d d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dOd;d$d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dgd;d'd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"djd;dd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d(d;d d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dqd;d$d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dud;d'd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d'd;d(d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d$d;d%d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dmd;djd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dpd;dpd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d{d;dpd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dtd;dtd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dxd;dtd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dxd;dtd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dxd;dtd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d�d;dmd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d�d;dmd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�ddUdd�d"d�d;dmd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dpd;dpd<dd=e)d>gd?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"dpd;dpd<dd=e)d>gd?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"dxd;dtd<dd=e)d>gd?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"d%d;d$d<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dd;d'd<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d`d;dd<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�ddd"d d;d d<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(dddddd�ddd"dOd;d$d<d$d=e1d>dd?dd@dd)ddAe)dBdd!dde�ej(ddddddddd"dgd;d'd<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(dd	dd
dd�ddd"djd;dd<d$d=e1d>dUd?dd@dd)ddAe)dBdd!dde�ej(dddd
ddddd"d(d;d d<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(ddddddddd"dqd;d$d<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(ddddddddd"dud;d'd<d$d=e1d>dd?dd@dd)ddAe)dBdd!dde�ej(dddddd�ddd"d'd;d(d<d$d=e1d>e-d�d?dd@dd)ddAe)dBdd!dde�ej(dddddd�ddd"d$d;d%d<d$d=e1d>e-d �d?dd@dd)ddAe)dBdd!dde�ej(dd!dd"dd�dd#d"dmd;djd<d$d=e1d>e1d?dd@dd)ddAe)dBdd!dde�ej(dd$dd%dddd&d"dpd;dpd<d$d=e1d>ed'�j.d��d?dd@dd)ddAe)dBdd!dde�ej(dd(dd)dddd*d"d{d;dpd<d$d=e1d>ed+�d?dd@dd)ddAe)dBdd!dde�ej(dd,dd-dddd.d"d�d;dmd<d$d=e1d>d'd?dd@dd)ddAe)dBdd!dde�ej(dd/dd0dddd1d"d�d;dmd<d$d=e1d>d%d?dd@dd)ddAe)dBdd!dde�ej(dd2dd3dddd4d"d�d;dmd<d$d=e1d>dmd?dd@dd)ddAe)dBdd!dde�ej(dd5dd6dddd7d"dpd;dpd<d$d=e1d>ed8�j.d��d?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd9dd:dddd;d"dpd;dpd<d$d=e1d>ed<�j.d��d?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd=dd>dddd?d"d`d;dd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd@ddAddddBd"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddCddDdd#ddEd"dpd;dpd<d$d=e)d>ed��j.d��d?dd@dd)ddAe)dBdd!dde�ej(ddFddGdd&ddHd"d{d;dpd<d$d=e)d>ed��d?dd@dd)ddAe)dBdd!dde�ej(ddIddJdd*ddKd"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!ej/ej0�ed���de�gLdCgdDe*e+e,gdEe&gd!ddFe)dddGgdHej2ddLddMddd)dd8g�gd*dNd,dO�Z3ej'ddPddQddded)dd8ej(ddRddSdddd$d"d%d;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�gdCgdDgdEgd!ddFe)dddGgdHgd*dTd,dU�Z4ej'ddVddWddded)dd8ej(ddXddYdddd$d"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�gdCgdDgdEgd!ddFe)dddGgdHgd*dZd,d[�Z5e3e*_6e3e+_6e3e,_6e+e3j7d�_8e*e3j7d�_8e4e3j7d�_8ej9e3j7d�_8e&e3j7d�_:ee3j7d�_:ej;e3j7d�_:ej<e3j7d�_8e*e3j7d�_8e,e3j7d�_8e*e3j7d�_8e4e3j7d�_8ej9e3j7d�_8e&e3j7d�_:ee3j7d�_:ej;e3j7d�_:e*e3j7d�_8e&e3j7d,_:ee3j7d/_:ej;e3j7d2_:e*e3j7d@_8e*e3j7dI_8e3e&_6e3j=dLj>j?e3j7d=�e3j=dLe3j7d=_@e3j=dLj>j?e3j7d@�e3j=dLe3j7d@_@e3j=dLj>j?e3j7dC�e3j=dLe3j7dC_@e3j=dLj>j?e3j7dF�e3j=dLe3j7dF_@e3j=dLj>j?e3j7dI�e3j=dLe3j7dI_@ejAe5j7dX_8e3ejBdX<e4ejBdP<e5ejBdV<eejCd<ejDe�ejEdXe	jFfeGd6ejEd6e	jFfeGd\e*d]d^��dKejEdKe	jFfeGd\e+d]d^��dRejEdRe	jFfeGd\e,d]d^��d\e3d]d^��ZHejIeH�ejIeHjJ�ejIeHjK�ejIeHjL�ejEdPe	jFfeGd\e4d]d^��ZMejIeM�ejEdVe	jFfeGd\e5d]d^��ZNejIeN�e1e_Oej/ejP�ed_��e_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d5_Oej/ej0�ed���e3j7d5_Qe1e3j7d9_Oej/ej0�ed���e3j7d9_Qe1e3j7dI_Oej/ej0�ed���e3j7dI_QdS(`i����NiicCs|S(N((tx((sI/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sI/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_import_pb2(tunittest_arena_pb2tnames'google/protobuf/unittest_no_arena.prototpackagetprotobuf_unittest_no_arenatsyntaxtproto2t
serialized_pbs�
'google/protobuf/unittest_no_arena.protoprotobuf_unittest_no_arena%google/protobuf/unittest_import.proto$google/protobuf/unittest_arena.proto"�
TestAllTypes
optional_int32 (
optional_int64 (
optional_uint32 (

optional_uint64 (
optional_sint32 (
optional_sint64 (
optional_fixed32 (
optional_fixed64 (
optional_sfixed32	 (
optional_sfixed64
 (
optional_float (
optional_double (

optional_bool
 (
optional_string (	
optional_bytes (M

optionalgroup (
26.protobuf_unittest_no_arena.TestAllTypes.OptionalGroupW
optional_nested_message (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageL
optional_foreign_message (2*.protobuf_unittest_no_arena.ForeignMessageH
optional_import_message (2'.protobuf_unittest_import.ImportMessageQ
optional_nested_enum (23.protobuf_unittest_no_arena.TestAllTypes.NestedEnumF
optional_foreign_enum (2'.protobuf_unittest_no_arena.ForeignEnumB
optional_import_enum (2$.protobuf_unittest_import.ImportEnum!
optional_string_piece (	B

optional_cord (	BU
optional_public_import_message (2-.protobuf_unittest_import.PublicImportMessageT
optional_message (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageB(
repeated_int32 (
repeated_int64  (
repeated_uint32! (

repeated_uint64" (
repeated_sint32# (
repeated_sint64$ (
repeated_fixed32% (
repeated_fixed64& (
repeated_sfixed32' (
repeated_sfixed64( (
repeated_float) (
repeated_double* (

repeated_bool+ (
repeated_string, (	
repeated_bytes- (M

repeatedgroup. (
26.protobuf_unittest_no_arena.TestAllTypes.RepeatedGroupW
repeated_nested_message0 (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageL
repeated_foreign_message1 (2*.protobuf_unittest_no_arena.ForeignMessageH
repeated_import_message2 (2'.protobuf_unittest_import.ImportMessageQ
repeated_nested_enum3 (23.protobuf_unittest_no_arena.TestAllTypes.NestedEnumF
repeated_foreign_enum4 (2'.protobuf_unittest_no_arena.ForeignEnumB
repeated_import_enum5 (2$.protobuf_unittest_import.ImportEnum!
repeated_string_piece6 (	B

repeated_cord7 (	BY
repeated_lazy_message9 (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageB(

default_int32= (:41

default_int64> (:42
default_uint32? (
:43
default_uint64@ (:44
default_sint32A (:-45
default_sint64B (:46
default_fixed32C (:47
default_fixed64D (:48
default_sfixed32E (:49
default_sfixed64F (:-50

default_floatG (:51.5
default_doubleH (:52000
default_boolI (:true
default_stringJ (	:hello

default_bytesK (:worldU
default_nested_enumQ (23.protobuf_unittest_no_arena.TestAllTypes.NestedEnum:BARR
default_foreign_enumR (2'.protobuf_unittest_no_arena.ForeignEnum:FOREIGN_BARM
default_import_enumS (2$.protobuf_unittest_import.ImportEnum:
IMPORT_BAR%
default_string_pieceT (	:abcB
default_cordU (	:123B
oneof_uint32o (
HV
oneof_nested_messagep (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageH
oneof_stringq (	H
oneof_bytesr (H_
lazy_oneof_nested_messages (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageB(H

NestedMessage

bb (

OptionalGroup	
a (

RepeatedGroup	
a/ ("9

NestedEnum
FOO
BAR
BAZ
NEG���������B
oneof_field"
ForeignMessage	
c ("P
TestNoArenaMessage:

arena_message (2#.proto2_arena_unittest.ArenaMessage*@
ForeignEnum
FOREIGN_FOO
FOREIGN_BAR
FOREIGN_BAZB%B
UnittestProtoH�����NOARNtdependenciestForeignEnumt	full_names&protobuf_unittest_no_arena.ForeignEnumtfilenametfiletvaluestFOREIGN_FOOtindextnumberitoptionsttypetFOREIGN_BARiitFOREIGN_BAZiitcontaining_typetserialized_startiVtserialized_endi�t
NestedEnums2protobuf_unittest_no_arena.TestAllTypes.NestedEnumtFOOtBARtBAZtNEGi�
i�
t
NestedMessages5protobuf_unittest_no_arena.TestAllTypes.NestedMessagetfieldstbbs8protobuf_unittest_no_arena.TestAllTypes.NestedMessage.bbtcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsiH
ic
t
OptionalGroups5protobuf_unittest_no_arena.TestAllTypes.OptionalGrouptas7protobuf_unittest_no_arena.TestAllTypes.OptionalGroup.aiie
i
t
RepeatedGroups5protobuf_unittest_no_arena.TestAllTypes.RepeatedGroups7protobuf_unittest_no_arena.TestAllTypes.RepeatedGroup.ai/i�
i�
tTestAllTypess'protobuf_unittest_no_arena.TestAllTypestoptional_int32s6protobuf_unittest_no_arena.TestAllTypes.optional_int32toptional_int64s6protobuf_unittest_no_arena.TestAllTypes.optional_int64toptional_uint32s7protobuf_unittest_no_arena.TestAllTypes.optional_uint32i
toptional_uint64s7protobuf_unittest_no_arena.TestAllTypes.optional_uint64toptional_sint32s7protobuf_unittest_no_arena.TestAllTypes.optional_sint32toptional_sint64s7protobuf_unittest_no_arena.TestAllTypes.optional_sint64itoptional_fixed32s8protobuf_unittest_no_arena.TestAllTypes.optional_fixed32itoptional_fixed64s8protobuf_unittest_no_arena.TestAllTypes.optional_fixed64itoptional_sfixed32s9protobuf_unittest_no_arena.TestAllTypes.optional_sfixed32i	itoptional_sfixed64s9protobuf_unittest_no_arena.TestAllTypes.optional_sfixed64i
itoptional_floats6protobuf_unittest_no_arena.TestAllTypes.optional_floatitoptional_doubles7protobuf_unittest_no_arena.TestAllTypes.optional_doubleit
optional_bools5protobuf_unittest_no_arena.TestAllTypes.optional_booltoptional_strings7protobuf_unittest_no_arena.TestAllTypes.optional_stringiRsutf-8toptional_bytess6protobuf_unittest_no_arena.TestAllTypes.optional_bytest
optionalgroups5protobuf_unittest_no_arena.TestAllTypes.optionalgrouptoptional_nested_messages?protobuf_unittest_no_arena.TestAllTypes.optional_nested_messagetoptional_foreign_messages@protobuf_unittest_no_arena.TestAllTypes.optional_foreign_messageitoptional_import_messages?protobuf_unittest_no_arena.TestAllTypes.optional_import_messageitoptional_nested_enums<protobuf_unittest_no_arena.TestAllTypes.optional_nested_enumitoptional_foreign_enums=protobuf_unittest_no_arena.TestAllTypes.optional_foreign_enumitoptional_import_enums<protobuf_unittest_no_arena.TestAllTypes.optional_import_enumitoptional_string_pieces=protobuf_unittest_no_arena.TestAllTypes.optional_string_pieceist
optional_cords5protobuf_unittest_no_arena.TestAllTypes.optional_cordistoptional_public_import_messagesFprotobuf_unittest_no_arena.TestAllTypes.optional_public_import_messageitoptional_messages8protobuf_unittest_no_arena.TestAllTypes.optional_messageis(trepeated_int32s6protobuf_unittest_no_arena.TestAllTypes.repeated_int32itrepeated_int64s6protobuf_unittest_no_arena.TestAllTypes.repeated_int64i trepeated_uint32s7protobuf_unittest_no_arena.TestAllTypes.repeated_uint32ii!trepeated_uint64s7protobuf_unittest_no_arena.TestAllTypes.repeated_uint64ii"trepeated_sint32s7protobuf_unittest_no_arena.TestAllTypes.repeated_sint32ii#trepeated_sint64s7protobuf_unittest_no_arena.TestAllTypes.repeated_sint64i$trepeated_fixed32s8protobuf_unittest_no_arena.TestAllTypes.repeated_fixed32i%trepeated_fixed64s8protobuf_unittest_no_arena.TestAllTypes.repeated_fixed64i&trepeated_sfixed32s9protobuf_unittest_no_arena.TestAllTypes.repeated_sfixed32i'trepeated_sfixed64s9protobuf_unittest_no_arena.TestAllTypes.repeated_sfixed64i(trepeated_floats6protobuf_unittest_no_arena.TestAllTypes.repeated_floati)trepeated_doubles7protobuf_unittest_no_arena.TestAllTypes.repeated_doublei*t
repeated_bools5protobuf_unittest_no_arena.TestAllTypes.repeated_booli+trepeated_strings7protobuf_unittest_no_arena.TestAllTypes.repeated_stringi,trepeated_bytess6protobuf_unittest_no_arena.TestAllTypes.repeated_bytesi-t
repeatedgroups5protobuf_unittest_no_arena.TestAllTypes.repeatedgroupi.trepeated_nested_messages?protobuf_unittest_no_arena.TestAllTypes.repeated_nested_messagei0trepeated_foreign_messages@protobuf_unittest_no_arena.TestAllTypes.repeated_foreign_messagei1trepeated_import_messages?protobuf_unittest_no_arena.TestAllTypes.repeated_import_messagei2trepeated_nested_enums<protobuf_unittest_no_arena.TestAllTypes.repeated_nested_enumi3trepeated_foreign_enums=protobuf_unittest_no_arena.TestAllTypes.repeated_foreign_enumi4trepeated_import_enums<protobuf_unittest_no_arena.TestAllTypes.repeated_import_enumi5trepeated_string_pieces=protobuf_unittest_no_arena.TestAllTypes.repeated_string_piecei6t
repeated_cords5protobuf_unittest_no_arena.TestAllTypes.repeated_cordi7trepeated_lazy_messages=protobuf_unittest_no_arena.TestAllTypes.repeated_lazy_messagei9t
default_int32s5protobuf_unittest_no_arena.TestAllTypes.default_int32i=t
default_int64s5protobuf_unittest_no_arena.TestAllTypes.default_int64i>tdefault_uint32s6protobuf_unittest_no_arena.TestAllTypes.default_uint32i?tdefault_uint64s6protobuf_unittest_no_arena.TestAllTypes.default_uint64i@tdefault_sint32s6protobuf_unittest_no_arena.TestAllTypes.default_sint32iAi���tdefault_sint64s6protobuf_unittest_no_arena.TestAllTypes.default_sint64i8iBtdefault_fixed32s7protobuf_unittest_no_arena.TestAllTypes.default_fixed32iCtdefault_fixed64s7protobuf_unittest_no_arena.TestAllTypes.default_fixed64i:iDtdefault_sfixed32s8protobuf_unittest_no_arena.TestAllTypes.default_sfixed32i;iEtdefault_sfixed64s8protobuf_unittest_no_arena.TestAllTypes.default_sfixed64i<iFi���t
default_floats5protobuf_unittest_no_arena.TestAllTypes.default_floatiGg�I@tdefault_doubles6protobuf_unittest_no_arena.TestAllTypes.default_doubleiHi �tdefault_bools4protobuf_unittest_no_arena.TestAllTypes.default_booliItdefault_strings6protobuf_unittest_no_arena.TestAllTypes.default_stringiJthellot
default_bytess5protobuf_unittest_no_arena.TestAllTypes.default_bytesiKtworldtdefault_nested_enums;protobuf_unittest_no_arena.TestAllTypes.default_nested_enumiQtdefault_foreign_enums<protobuf_unittest_no_arena.TestAllTypes.default_foreign_enumiRtdefault_import_enums;protobuf_unittest_no_arena.TestAllTypes.default_import_enumiStdefault_string_pieces<protobuf_unittest_no_arena.TestAllTypes.default_string_pieceiTtabctdefault_cords4protobuf_unittest_no_arena.TestAllTypes.default_cordiUt123toneof_uint32s4protobuf_unittest_no_arena.TestAllTypes.oneof_uint32iotoneof_nested_messages<protobuf_unittest_no_arena.TestAllTypes.oneof_nested_messageiptoneof_strings4protobuf_unittest_no_arena.TestAllTypes.oneof_stringiqtoneof_bytess3protobuf_unittest_no_arena.TestAllTypes.oneof_bytesirtlazy_oneof_nested_messagesAprotobuf_unittest_no_arena.TestAllTypes.lazy_oneof_nested_messageistoneof_fields3protobuf_unittest_no_arena.TestAllTypes.oneof_fieldi�i�
tForeignMessages)protobuf_unittest_no_arena.ForeignMessagetcs+protobuf_unittest_no_arena.ForeignMessage.ci�
itTestNoArenaMessages-protobuf_unittest_no_arena.TestNoArenaMessaget
arena_messages;protobuf_unittest_no_arena.TestNoArenaMessage.arena_messageiiTt
DESCRIPTORt
__module__s%google.protobuf.unittest_no_arena_pb2s%B
UnittestProtoH�����NOARN(Rtsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt-google_dot_protobuf_dot_unittest__import__pb2t5google_dot_protobuf_dot_unittest__import__public__pb2tAttributeErrortgoogletprotobuftunittest_import_public_pb2Rt,google_dot_protobuf_dot_unittest__arena__pb2tFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_FOREIGNENUMtRegisterEnumDescriptortEnumTypeWrapperRRRRt_TESTALLTYPES_NESTEDENUMt
DescriptortFieldDescriptortFalset_TESTALLTYPES_NESTEDMESSAGEt_TESTALLTYPES_OPTIONALGROUPt_TESTALLTYPES_REPEATEDGROUPtfloattdecodet
_ParseOptionstFieldOptionstTruetOneofDescriptort
_TESTALLTYPESt_FOREIGNMESSAGEt_TESTNOARENAMESSAGER tfields_by_nameR/t_IMPORTMESSAGER0t_IMPORTENUMt_PUBLICIMPORTMESSAGEtoneofs_by_nameR)tappendtcontaining_oneoft
_ARENAMESSAGEtmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR<tRegisterMessageR(R9R;R�R�thas_optionstFileOptionst_options(((sI/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_pb2.pyt<module>sx%

						
						
																																	$	$		$																							$	$	$																			$	$					*													







	!((((((((PK
�\�O��protobuf/api_pb2.pycnu�[����
���hc3@s�
ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZddlmZejd
dddddded�dejejg�Zejd
ddddddedddejd
d
dddddd d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
d.dd/dd dd0d!d1d#d2d$dd%ed&gd)dd*dddd+ed,dd-dde�ejd
d-dd3dd0ddd!d1d#d2d$dd%ed&gd)dd*dddd+ed,dd-dde�ejd
d4dd5dddd6d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
d7dd8dd6dd9d!d1d#d2d$d d%ed&dd)dd*dddd+ed,dd-dde�ejd
d:dd;dd9dd<d!d1d#d2d$dd%ed&gd)dd*dddd+ed,dd-dde�ejd
ddd=dd<dd>d!d?d#d@d$d d%ed&dd)dd*dddd+ed,dd-dde�gdAgdBgdCgd-ddDedddEgdFgdGdHdIdJ�Zejd
dKddLdddedddejd
d
ddMdddd d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
dNddOdd dd0d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
dPddQdd0ddd!d@d#d>d$d d%ed&ed)dd*dddd+ed,dd-dde�ejd
dRddSdddd6d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
dTddUdd6dd9d!d@d#d>d$d d%ed&ed)dd*dddd+ed,dd-dde�ejd
d-ddVdd9dd<d!d1d#d2d$dd%ed&gd)dd*dddd+ed,dd-dde�ejd
dddWdd<dd>d!d?d#d@d$d d%ed&dd)dd*dddd+ed,dd-dde�gdAgdBgdCgd-ddDedddEgdFgdGdXdIdY�Zejd
dZdd[dddedddejd
d
dd\dddd d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejd
d]dd^dd dd0d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�gdAgdBgdCgd-ddDedddEgdFgdGd_dId`�Zeejd._ejejd-_ej ejd7_eejd:_ej!ejd_"ejejd-_ej!ejd_"eej#d<eej#dK<eej#dZ<ej$e�e	j%dej&fe'daedbdc��Z(ej)e(�e	j%dKej&fe'daedbdc��Z*ej)e*�e	j%dZej&fe'daedbdc��Z+ej)e+�e,e_-ej.ej/�edd��e_0dS(ei����NiicCs|S(N((tx((s;/usr/lib/python2.7/site-packages/google/protobuf/api_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s;/usr/lib/python2.7/site-packages/google/protobuf/api_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tsource_context_pb2(ttype_pb2tnamesgoogle/protobuf/api.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/api.protogoogle.protobuf$google/protobuf/source_context.protogoogle/protobuf/type.proto"�
Api
name (	(
methods (2.google.protobuf.Method(
options (2.google.protobuf.Option
version (	6
source_context (2.google.protobuf.SourceContext&
mixins (2.google.protobuf.Mixin'
syntax (2.google.protobuf.Syntax"�
Method
name (	
request_type_url (	
request_streaming (
response_type_url (	
response_streaming ((
options (2.google.protobuf.Option'
syntax (2.google.protobuf.Syntax"#
Mixin
name (	
root (	Bu
com.google.protobufBApiProtoPZ+google.golang.org/genproto/protobuf/api;api�GPB�Google.Protobuf.WellKnownTypesbproto3tdependenciestApit	full_namesgoogle.protobuf.Apitfilenametfiletcontaining_typetfieldssgoogle.protobuf.Api.nametindextnumberittypei	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetoptionstmethodssgoogle.protobuf.Api.methodsiii
sgoogle.protobuf.Api.optionstversionsgoogle.protobuf.Api.versionitsource_contexts"google.protobuf.Api.source_contextitmixinssgoogle.protobuf.Api.mixinsisgoogle.protobuf.Api.syntaxiiit
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiqtserialized_endirtMethodsgoogle.protobuf.Methodsgoogle.protobuf.Method.nametrequest_type_urls'google.protobuf.Method.request_type_urltrequest_streamings(google.protobuf.Method.request_streamingtresponse_type_urls(google.protobuf.Method.response_type_urltresponse_streamings)google.protobuf.Method.response_streamingsgoogle.protobuf.Method.optionssgoogle.protobuf.Method.syntaxiuiJtMixinsgoogle.protobuf.Mixinsgoogle.protobuf.Mixin.nametrootsgoogle.protobuf.Mixin.rootiLiot
DESCRIPTORt
__module__sgoogle.protobuf.api_pb2su
com.google.protobufBApiProtoPZ+google.golang.org/genproto/protobuf/api;api�GPB�Google.Protobuf.WellKnownTypes(1tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbR
t,google_dot_protobuf_dot_source__context__pb2Rt!google_dot_protobuf_dot_type__pb2tFileDescriptorR7t
DescriptortNonetFieldDescriptortFalsetdecodet_APIt_METHODt_MIXINtfields_by_nameRt_OPTIONt_SOURCECONTEXTt_SYNTAXR tmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR0R5tTruethas_optionst
_ParseOptionstFileOptionst_options(((s;/usr/lib/python2.7/site-packages/google/protobuf/api_pb2.pyt<module>s�%																							






	PK
�\,y�(protobuf/source_context_pb2.pycnu�[����
���hc-@sddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!d d"dd#ed$ed%�jd&�d'dd(dddd)ed*dd+dde�gd,gd-gd.gd+dd/eddd0gd1gd2d3d4d5�Zeejd<eje�e	jdejfed6ed7d8��Zeje�ee_ej ej!�ed9��e_"dS(:i����NiicCs|S(N((tx((sF/usr/lib/python2.7/site-packages/google/protobuf/source_context_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sF/usr/lib/python2.7/site-packages/google/protobuf/source_context_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames$google/protobuf/source_context.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
$google/protobuf/source_context.protogoogle.protobuf""

SourceContext
	file_name (	B�
com.google.protobufBSourceContextProtoPZAgoogle.golang.org/genproto/protobuf/source_context;source_context�GPB�Google.Protobuf.WellKnownTypesbproto3t
SourceContextt	full_namesgoogle.protobuf.SourceContexttfilenametfiletcontaining_typetfieldst	file_names'google.protobuf.SourceContext.file_nametindextnumberittypei	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti9tserialized_endi[t
DESCRIPTORt
__module__s"google.protobuf.source_context_pb2s�
com.google.protobufBSourceContextProtoPZAgoogle.golang.org/genproto/protobuf/source_context;source_context�GPB�Google.Protobuf.WellKnownTypes(#tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR*t
DescriptortNonetFieldDescriptortFalsetdecodet_SOURCECONTEXTtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((sF/usr/lib/python2.7/site-packages/google/protobuf/source_context_pb2.pyt<module>sV%				


	PK�\lu�p
�
�%protobuf/test_messages_proto3_pb2.pycnu�[����
���hc�@s�addlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZdd
lmZddlmZddlmZddlmZddlmZejddddddded�dejejejejejejg�Zejddddddded ej!dd!d"dd#dd$dd%d�ej!dd&d"d'd#d'd$dd%d�ej!dd(d"d)d#d)d$dd%d�gd*dd$dd+d,d-d.�	Z"ej#e"�ej$e"�Z%dZ&d'Z'd)Z(ejdd/dd0ddded ej!dd1d"dd#dd$dd%d�ej!dd2d"d'd#d'd$dd%d�ej!dd3d"d)d#d)d$dd%d�ej!dd4d"dd#dd$dd%d�gd*dd$dd+d5d-d6�	Z)ej#e)�ej*dd7dd8ddded*dd9ej+dd:dd;d"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddEddFd"d'd#d)d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ddLe,dddMgdNgd+dOd-dP�Z-ej*ddQddRddded*dd9ej+ddSddTd"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUddVd"d'd#d)d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+dXd-dY�Z0ej*ddZdd[ddded*dd9ej+ddSdd\d"dd#d'd%dd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd]d"d'd#d)d%dd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d^d-d_�Z1ej*dd`ddaddded*dd9ej+ddSddbd"dd#d'd%dcd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdddd"d'd#d)d%dcd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+ded-df�Z2ej*ddgddhddded*dd9ej+ddSddid"dd#d'd%djd=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUddkd"d'd#d)d%djd=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+dld-dm�Z3ej*ddnddoddded*dd9ej+ddSddpd"dd#d'd%dqd=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUddrd"d'd#d)d%dqd=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+dsd-dt�Z4ej*dduddvddded*dd9ej+ddSddwd"dd#d'd%dxd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUddyd"d'd#d)d%dxd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+dzd-d{�Z5ej*dd|dd}ddded*dd9ej+ddSdd~d"dd#d'd%dd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%dd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z6ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z7ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z8ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z9ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d)d=d�d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z;ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d'd=d<d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z<ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=dd>d'd?e,d@e,dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=dd>d'd?e,d@e,dAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z=ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z?ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d�d>d'd?e,d@ed��dAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��Z@ej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��ZAej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��ZBej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d�d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��ZCej*dd�dd�ddded*dd9ej+ddSdd�d"dd#d'd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+ddUdd�d"d'd#d)d%d�d=d�d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ej.ej/�edW��dLe,dddMgdNgd+d�d-d��ZDej*dd�dd�ddded*dd9ej+dd�dd�d"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d'd#d)d%dd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d)d#dd%dcd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dd#djd%djd=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"djd#d<d%dqd=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d<d#d�d%dxd=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#dd%dd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dd#d�d%d�d=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%d�d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#dHd%d�d=d)d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dHd#dGd%d)d=d�d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dGd#d�d%d'd=d<d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#dcd%d�d=dd>d'd?e,d@e,dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dcd#d�d%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%d�d=d�d>d'd?e,d@ed��dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#dxd%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dqd#d�d%d�d=d�d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dxd#d�d%d�d=d�d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�ddd"d�d#dd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$ej.ejE�ed��de�ej+ddddd"dd#dd%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$ej.ejE�ed��de�ej+dddd	d"d�d#d
d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddddd"d�d#d
d%d<d=d'd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dd=d)d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dcd=dd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%djd=djd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dqd=d'd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"d
d#dd%dxd=d)d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dddd d"d!d#d"d%dd=dd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd#dd$d"d%d#d&d%d�d=djd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd'dd(d"d)d#d*d%d�d=d'd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd+dd,d"d
d#d-d%d�d=d)d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd.dd/d"dd#d0d%d)d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd1dd2d"dd#d3d%d'd=d<d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd4dd5d"dd#d6d%d�d=dd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd7dd8d"dd#d9d%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd:dd;d"dd#d<d%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd=dd>d"d"d#d?d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd@ddAd"d&d#dBd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddCddDd"d*d#dEd%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddFddGd"d-d#dHd%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddIddJd"d0d#dKd%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$ej.ejE�ed��de�ej+ddLddMd"d3d#dNd%d�d=d�d>dd?e,d@gdAddBdd*ddCe,dDdd$ej.ejE�ed��de�ej+ddOddPd"d6d#dQd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddRddSd"d9d#dTd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddUddVd"d<d#dWd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddXddYd"dZd#d[d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd\dd]d"d^d#d_d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd`ddad"d?d#dbd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddcdddd"dBd#ded%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddfddgd"dhd#did%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddjddkd"dEd#dld%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddmddnd"dHd#dod%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddpddqd"drd#dsd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddtddud"dKd#dvd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddwddxd"dNd#dyd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddzdd{d"dQd#d|d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd}dd~d"dTd#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dWd#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d[d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d_d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dbd#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"ded#d�d%dcd=dd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"did#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dld#d�d%d�d=d�d>d'd?e,d@ed��j>d��dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dod#d�d%d�d=d�d>d'd?e,d@ed��dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dsd#d�d%d�d=dd>d'd?e,d@e,dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dvd#d�d%djd=djd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dyd#d�d%d)d=d�d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d|d#d�d%d'd=d<d>d'd?e,d@e:d�dAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"dd#d�d%d�d=d�d>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�dd�d"d�d#d�d%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd�ddd"dd#dd%dGd=dHd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"d	d#d
d%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"d
d#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%dGd=dHd>dd?e,d@gdAddBdd*ddCe,dDdd$dde�ej+ddddd"dd#dd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dddd d"d!d#d"d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd#dd$d"d%d#d&d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd'dd(d"d)d#d*d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd+dd,d"d-d#d.d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd/dd0d"d1d#d2d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd3dd4d"d5d#d6d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd7dd8d"d9d#d:d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd;dd<d"d=d#d>d%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+dd?dd@d"dAd#dBd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddCddDd"d�d#dEd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddFddGd"d�d#dHd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddIddJd"d�d#dKd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddLddMd"d�d#dNd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddOddPd"d�d#dQd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddRddSd"d�d#dTd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddUddVd"d�d#dWd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�ej+ddXddYd"d�d#dZd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gwdIgdJe-e0e1e2e3e4e5e6e7e8e9e;e<e=e?e@eAeBeCeDgdKe)gd$ddLe,dddMgdNejFdd[dd\d"dd*dd9g�gd+d]d-d^�ZGej*dd_dd`ddded*dd9ej+ddaddbd"dd#d'd%d<d=d'd>d'd?e,d@ddAddBdd*ddCe,dDdd$dde�gdIgdJgdKgd$ddLe,dddMgdNgd+dcd-dd�ZHeGe-jIdE_JeGe-_KeGe0_KeGe1_KeGe2_KeGe3_KeGe4_KeGe5_KeGe6_KeGe7_KeGe8_KeGe9_KeGe;_KeGe<_KeGe=_KeGe?_KeGe@_Ke-eAjIdU_JeGeA_KeHeBjIdU_JeGeB_Ke)eCjIdU_LeGeC_Ke"eDjIdU_LeGeD_Ke-eGjId�_JeHeGjId�_Je)eGjId�_Le"eGjId�_LeGeGjId_Je-eGjId=_JeHeGjId@_Je)eGjIdC_Le"eGjIdF_Le0eGjIdO_Je1eGjIdR_Je2eGjIdU_Je3eGjIdX_Je4eGjId\_Je5eGjId`_Je6eGjIdc_Je7eGjIdf_Je8eGjIdj_Je9eGjIdm_Je;eGjIdp_Je<eGjIdt_Je=eGjIdw_Je?eGjIdz_Je@eGjId}_JeAeGjId�_JeBeGjId�_JeCeGjId�_JeDeGjId�_Je-eGjId�_Je)eGjId�_LejMeGjId�_JejNeGjId�_JejOeGjId�_JejPeGjId�_JejQeGjId�_JejReGjId�_JejSeGjId�_JejTeGjId�_JejUeGjId�_JejMeGjId�_JejNeGjId�_JejOeGjId�_JejPeGjId�_JejQeGjId�_JejReGjId�_JejSeGjId�_JejTeGjId�_JejUeGjId�_JejVeGjId�_JejWeGjId�_JejXeGjId�_JejYeGjId�_JejZeGjId�_Jej[eGjId�_JejVeGjId_JejWeGjId_JejXeGjId_JejYeGjId_JejZeGjId_Jej[eGjId_JeGe)_KeGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGj\d[j]j^eGjId��eGj\d[eGjId�__eGej`d�<eHej`d_<e"ejad<ejbe�ejcd�e	jdfeed7ejcd7e	jdfeedee-dfdg��dQejcdQe	jdfeedee0dfdg��dZejcdZe	jdfeedee1dfdg��d`ejcd`e	jdfeedee2dfdg��dgejcdge	jdfeedee3dfdg��dnejcdne	jdfeedee4dfdg��duejcdue	jdfeedee5dfdg��d|ejcd|e	jdfeedee6dfdg��d�ejcd�e	jdfeedee7dfdg��d�ejcd�e	jdfeedee8dfdg��d�ejcd�e	jdfeedee9dfdg��d�ejcd�e	jdfeedee;dfdg��d�ejcd�e	jdfeedee<dfdg��d�ejcd�e	jdfeedee=dfdg��d�ejcd�e	jdfeedee?dfdg��d�ejcd�e	jdfeedee@dfdg��d�ejcd�e	jdfeedeeAdfdg��d�ejcd�e	jdfeedeeBdfdg��d�ejcd�e	jdfeedeeCdfdg��d�ejcd�e	jdfeedeeDdfdg��deeGdfdg��Zfejgef�ejgefjh�ejgefji�ejgefjj�ejgefjk�ejgefjl�ejgefjm�ejgefjn�ejgefjo�ejgefjp�ejgefjq�ejgefjr�ejgefjs�ejgefjt�ejgefju�ejgefjv�ejgefjw�ejgefjx�ejgefjy�ejgefjz�ejgefj{�ejcd_e	jdfeedeeHdfdg��Z|ejge|�e}e_~ej.ej�edh��e_�e}e0_~ej.ej/�edW��e0_�e}e1_~ej.ej/�edW��e1_�e}e2_~ej.ej/�edW��e2_�e}e3_~ej.ej/�edW��e3_�e}e4_~ej.ej/�edW��e4_�e}e5_~ej.ej/�edW��e5_�e}e6_~ej.ej/�edW��e6_�e}e7_~ej.ej/�edW��e7_�e}e8_~ej.ej/�edW��e8_�e}e9_~ej.ej/�edW��e9_�e}e;_~ej.ej/�edW��e;_�e}e<_~ej.ej/�edW��e<_�e}e=_~ej.ej/�edW��e=_�e}e?_~ej.ej/�edW��e?_�e}e@_~ej.ej/�edW��e@_�e}eA_~ej.ej/�edW��eA_�e}eB_~ej.ej/�edW��eB_�e}eC_~ej.ej/�edW��eC_�e}eD_~ej.ej/�edW��eD_�e}eGjId�_~ej.ejE�ed��eGjId�_�e}eGjId_~ej.ejE�ed��eGjId_�e}eGjIdI_~ej.ejE�ed��eGjIdI_�e}eGjIdL_~ej.ejE�ed��eGjIdL_�dS(ii����NiicCs|S(N((tx((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto3_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto3_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tany_pb2(tduration_pb2(tfield_mask_pb2(t
struct_pb2(t
timestamp_pb2(twrappers_pb2tnames*google/protobuf/test_messages_proto3.prototpackagesprotobuf_test_messages.proto3tsyntaxtproto3t
serialized_pbs_
*google/protobuf/test_messages_proto3.protoprotobuf_test_messages.proto3google/protobuf/any.protogoogle/protobuf/duration.proto google/protobuf/field_mask.protogoogle/protobuf/struct.protogoogle/protobuf/timestamp.protogoogle/protobuf/wrappers.proto"�;
TestAllTypesProto3
optional_int32 (
optional_int64 (
optional_uint32 (

optional_uint64 (
optional_sint32 (
optional_sint64 (
optional_fixed32 (
optional_fixed64 (
optional_sfixed32	 (
optional_sfixed64
 (
optional_float (
optional_double (

optional_bool
 (
optional_string (	
optional_bytes (`
optional_nested_message (2?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessageO
optional_foreign_message (2-.protobuf_test_messages.proto3.ForeignMessageZ
optional_nested_enum (2<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnumI
optional_foreign_enum (2*.protobuf_test_messages.proto3.ForeignEnum!
optional_string_piece (	B

optional_cord (	BL
recursive_message (21.protobuf_test_messages.proto3.TestAllTypesProto3
repeated_int32 (
repeated_int64  (
repeated_uint32! (

repeated_uint64" (
repeated_sint32# (
repeated_sint64$ (
repeated_fixed32% (
repeated_fixed64& (
repeated_sfixed32' (
repeated_sfixed64( (
repeated_float) (
repeated_double* (

repeated_bool+ (
repeated_string, (	
repeated_bytes- (`
repeated_nested_message0 (2?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessageO
repeated_foreign_message1 (2-.protobuf_test_messages.proto3.ForeignMessageZ
repeated_nested_enum3 (2<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnumI
repeated_foreign_enum4 (2*.protobuf_test_messages.proto3.ForeignEnum!
repeated_string_piece6 (	B

repeated_cord7 (	B]
map_int32_int328 (2D.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry]
map_int64_int649 (2D.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entrya
map_uint32_uint32: (2F.protobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entrya
map_uint64_uint64; (2F.protobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entrya
map_sint32_sint32< (2F.protobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entrya
map_sint64_sint64= (2F.protobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entrye
map_fixed32_fixed32> (2H.protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entrye
map_fixed64_fixed64? (2H.protobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entryi
map_sfixed32_sfixed32@ (2J.protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entryi
map_sfixed64_sfixed64A (2J.protobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry]
map_int32_floatB (2D.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry_
map_int32_doubleC (2E.protobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntryY

map_bool_boolD (2B.protobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntrya
map_string_stringE (2F.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry_
map_string_bytesF (2E.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntryp
map_string_nested_messageG (2M.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntryr
map_string_foreign_messageH (2N.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntryj
map_string_nested_enumI (2J.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntryl
map_string_foreign_enumJ (2K.protobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry
oneof_uint32o (
H_
oneof_nested_messagep (2?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessageH
oneof_stringq (	H
oneof_bytesr (H

oneof_bools (H
oneof_uint64t (H
oneof_floatu (H
oneof_doublev (HR

oneof_enumw (2<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnumH:
optional_bool_wrapper� (2.google.protobuf.BoolValue<
optional_int32_wrapper� (2.google.protobuf.Int32Value<
optional_int64_wrapper� (2.google.protobuf.Int64Value>
optional_uint32_wrapper� (2.google.protobuf.UInt32Value>
optional_uint64_wrapper� (2.google.protobuf.UInt64Value<
optional_float_wrapper� (2.google.protobuf.FloatValue>
optional_double_wrapper� (2.google.protobuf.DoubleValue>
optional_string_wrapper� (2.google.protobuf.StringValue<
optional_bytes_wrapper� (2.google.protobuf.BytesValue:
repeated_bool_wrapper� (2.google.protobuf.BoolValue<
repeated_int32_wrapper� (2.google.protobuf.Int32Value<
repeated_int64_wrapper� (2.google.protobuf.Int64Value>
repeated_uint32_wrapper� (2.google.protobuf.UInt32Value>
repeated_uint64_wrapper� (2.google.protobuf.UInt64Value<
repeated_float_wrapper� (2.google.protobuf.FloatValue>
repeated_double_wrapper� (2.google.protobuf.DoubleValue>
repeated_string_wrapper� (2.google.protobuf.StringValue<
repeated_bytes_wrapper� (2.google.protobuf.BytesValue5
optional_duration� (2.google.protobuf.Duration7
optional_timestamp� (2.google.protobuf.Timestamp8
optional_field_mask� (2.google.protobuf.FieldMask1
optional_struct� (2.google.protobuf.Struct+
optional_any� (2.google.protobuf.Any/
optional_value� (2.google.protobuf.Value5
repeated_duration� (2.google.protobuf.Duration7
repeated_timestamp� (2.google.protobuf.Timestamp7
repeated_fieldmask� (2.google.protobuf.FieldMask1
repeated_struct� (2.google.protobuf.Struct+
repeated_any� (2.google.protobuf.Any/
repeated_value� (2.google.protobuf.Value

fieldname1� (
field_name2� (
_field_name3� (

field__name4_� (
field0name5� (

field_0_name6� (

fieldName7� (

FieldName8� (
field_Name9� (
Field_Name10� (
FIELD_NAME11� (
FIELD_name12� (
__field_name13� (
__Field_name14� (

field__name15� (

field__Name16� (
field_name17__� (
Field_name18__� (b

NestedMessage	
a (F
corecursive (21.protobuf_test_messages.proto3.TestAllTypesProto34
MapInt32Int32Entry
key (
value (:84
MapInt64Int64Entry
key (
value (:86
MapUint32Uint32Entry
key (

value (
:86
MapUint64Uint64Entry
key (
value (:86
MapSint32Sint32Entry
key (
value (:86
MapSint64Sint64Entry
key (
value (:88
MapFixed32Fixed32Entry
key (
value (:88
MapFixed64Fixed64Entry
key (
value (:8:
MapSfixed32Sfixed32Entry
key (
value (:8:
MapSfixed64Sfixed64Entry
key (
value (:84
MapInt32FloatEntry
key (
value (:85
MapInt32DoubleEntry
key (
value (:82
MapBoolBoolEntry
key (
value (:86
MapStringStringEntry
key (	
value (	:85
MapStringBytesEntry
key (	
value (:8~
MapStringNestedMessageEntry
key (	N
value (2?.protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage:8m
MapStringForeignMessageEntry
key (	<
value (2-.protobuf_test_messages.proto3.ForeignMessage:8x
MapStringNestedEnumEntry
key (	K
value (2<.protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnum:8g
MapStringForeignEnumEntry
key (	9
value (2*.protobuf_test_messages.proto3.ForeignEnum:8"9

NestedEnum
FOO
BAR
BAZ
NEG���������B
oneof_fieldJ��"
ForeignMessage	
c (*@
ForeignEnum
FOREIGN_FOO
FOREIGN_BAR
FOREIGN_BAZB8
(com.google.protobuf_test_messages.proto3H��Proto3bproto3tdependenciestForeignEnumt	full_names)protobuf_test_messages.proto3.ForeignEnumtfilenametfiletvaluestFOREIGN_FOOtindextnumbertoptionsttypetFOREIGN_BARitFOREIGN_BAZitcontaining_typetserialized_starti�tserialized_endit
NestedEnums;protobuf_test_messages.proto3.TestAllTypesProto3.NestedEnumtFOOtBARtBAZtNEGini�t
NestedMessages>protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessagetfieldstas@protobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.aitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetcorecursivesJprotobuf_test_messages.proto3.TestAllTypesProto3.NestedMessage.corecursiveii
t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi�iRtMapInt32Int32EntrysCprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32EntrytkeysGprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry.keytvaluesIprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32Int32Entry.values8iTi�tMapInt64Int64EntrysCprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64EntrysGprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry.keysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt64Int64Entry.valuei�i�tMapUint32Uint32EntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry.keyi
sKprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint32Uint32Entry.valuei�i�tMapUint64Uint64EntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry.keyisKprotobuf_test_messages.proto3.TestAllTypesProto3.MapUint64Uint64Entry.valuei�i.tMapSint32Sint32EntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry.keyisKprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint32Sint32Entry.valuei0iftMapSint64Sint64EntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry.keyisKprotobuf_test_messages.proto3.TestAllTypesProto3.MapSint64Sint64Entry.valueihi�tMapFixed32Fixed32EntrysGprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32EntrysKprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry.keyisMprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed32Fixed32Entry.valuei�i�tMapFixed64Fixed64EntrysGprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64EntrysKprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry.keyisMprotobuf_test_messages.proto3.TestAllTypesProto3.MapFixed64Fixed64Entry.valuei�itMapSfixed32Sfixed32EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32EntrysMprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry.keyisOprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed32Sfixed32Entry.valueiiNtMapSfixed64Sfixed64EntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64EntrysMprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry.keyisOprotobuf_test_messages.proto3.TestAllTypesProto3.MapSfixed64Sfixed64Entry.valueiPi�tMapInt32FloatEntrysCprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntrysGprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry.keysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32FloatEntry.valuei�i�tMapInt32DoubleEntrysDprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntrysHprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry.keysJprotobuf_test_messages.proto3.TestAllTypesProto3.MapInt32DoubleEntry.valuei�i�tMapBoolBoolEntrysAprotobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry.keyisGprotobuf_test_messages.proto3.TestAllTypesProto3.MapBoolBoolEntry.valuei�i+tMapStringStringEntrysEprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry.keyi	Rsutf-8sKprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringStringEntry.valuei-ictMapStringBytesEntrysDprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntrysHprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry.keysJprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringBytesEntry.valueiiei�tMapStringNestedMessageEntrysLprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntrysPprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.keysRprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedMessageEntry.valuei�itMapStringForeignMessageEntrysMprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntrysQprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.keysSprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignMessageEntry.valueii�tMapStringNestedEnumEntrysIprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntrysMprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.keysOprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringNestedEnumEntry.valueii�itMapStringForeignEnumEntrysJprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntrysNprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.keysPprotobuf_test_messages.proto3.TestAllTypesProto3.MapStringForeignEnumEntry.valueiiltTestAllTypesProto3s0protobuf_test_messages.proto3.TestAllTypesProto3toptional_int32s?protobuf_test_messages.proto3.TestAllTypesProto3.optional_int32toptional_int64s?protobuf_test_messages.proto3.TestAllTypesProto3.optional_int64toptional_uint32s@protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint32toptional_uint64s@protobuf_test_messages.proto3.TestAllTypesProto3.optional_uint64toptional_sint32s@protobuf_test_messages.proto3.TestAllTypesProto3.optional_sint32toptional_sint64s@protobuf_test_messages.proto3.TestAllTypesProto3.optional_sint64toptional_fixed32sAprotobuf_test_messages.proto3.TestAllTypesProto3.optional_fixed32toptional_fixed64sAprotobuf_test_messages.proto3.TestAllTypesProto3.optional_fixed64toptional_sfixed32sBprotobuf_test_messages.proto3.TestAllTypesProto3.optional_sfixed32toptional_sfixed64sBprotobuf_test_messages.proto3.TestAllTypesProto3.optional_sfixed64toptional_floats?protobuf_test_messages.proto3.TestAllTypesProto3.optional_floattoptional_doubles@protobuf_test_messages.proto3.TestAllTypesProto3.optional_doublet
optional_bools>protobuf_test_messages.proto3.TestAllTypesProto3.optional_booltoptional_strings@protobuf_test_messages.proto3.TestAllTypesProto3.optional_stringtoptional_bytess?protobuf_test_messages.proto3.TestAllTypesProto3.optional_bytestoptional_nested_messagesHprotobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_messagetoptional_foreign_messagesIprotobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_messageitoptional_nested_enumsEprotobuf_test_messages.proto3.TestAllTypesProto3.optional_nested_enumitoptional_foreign_enumsFprotobuf_test_messages.proto3.TestAllTypesProto3.optional_foreign_enumitoptional_string_piecesFprotobuf_test_messages.proto3.TestAllTypesProto3.optional_string_pieceist
optional_cords>protobuf_test_messages.proto3.TestAllTypesProto3.optional_cordiistrecursive_messagesBprotobuf_test_messages.proto3.TestAllTypesProto3.recursive_messageitrepeated_int32s?protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int32itrepeated_int64s?protobuf_test_messages.proto3.TestAllTypesProto3.repeated_int64ii trepeated_uint32s@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint32i!trepeated_uint64s@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint64i"trepeated_sint32s@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_sint32ii#trepeated_sint64s@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_sint64i$trepeated_fixed32sAprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_fixed32ii%trepeated_fixed64sAprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_fixed64ii&trepeated_sfixed32sBprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_sfixed32ii'trepeated_sfixed64sBprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_sfixed64i(trepeated_floats?protobuf_test_messages.proto3.TestAllTypesProto3.repeated_floati)trepeated_doubles@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_doublei*t
repeated_bools>protobuf_test_messages.proto3.TestAllTypesProto3.repeated_booli+trepeated_strings@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_stringi,trepeated_bytess?protobuf_test_messages.proto3.TestAllTypesProto3.repeated_bytesi-trepeated_nested_messagesHprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_messagei0trepeated_foreign_messagesIprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_messagei1trepeated_nested_enumsEprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_nested_enumi3trepeated_foreign_enumsFprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_foreign_enumi4trepeated_string_piecesFprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_string_piecei6t
repeated_cords>protobuf_test_messages.proto3.TestAllTypesProto3.repeated_cordi7tmap_int32_int32s@protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_int32i8tmap_int64_int64s@protobuf_test_messages.proto3.TestAllTypesProto3.map_int64_int64i9tmap_uint32_uint32sBprotobuf_test_messages.proto3.TestAllTypesProto3.map_uint32_uint32i:tmap_uint64_uint64sBprotobuf_test_messages.proto3.TestAllTypesProto3.map_uint64_uint64i.i;tmap_sint32_sint32sBprotobuf_test_messages.proto3.TestAllTypesProto3.map_sint32_sint32i/i<tmap_sint64_sint64sBprotobuf_test_messages.proto3.TestAllTypesProto3.map_sint64_sint64i=tmap_fixed32_fixed32sDprotobuf_test_messages.proto3.TestAllTypesProto3.map_fixed32_fixed32i>tmap_fixed64_fixed64sDprotobuf_test_messages.proto3.TestAllTypesProto3.map_fixed64_fixed64i2i?tmap_sfixed32_sfixed32sFprotobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed32_sfixed32i@tmap_sfixed64_sfixed64sFprotobuf_test_messages.proto3.TestAllTypesProto3.map_sfixed64_sfixed64iAtmap_int32_floats@protobuf_test_messages.proto3.TestAllTypesProto3.map_int32_floati5iBtmap_int32_doublesAprotobuf_test_messages.proto3.TestAllTypesProto3.map_int32_doubleiCt
map_bool_bools>protobuf_test_messages.proto3.TestAllTypesProto3.map_bool_booliDtmap_string_stringsBprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_stringiEtmap_string_bytessAprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_bytesiFtmap_string_nested_messagesJprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_messageiGtmap_string_foreign_messagesKprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_messageiHtmap_string_nested_enumsGprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_nested_enumiItmap_string_foreign_enumsHprotobuf_test_messages.proto3.TestAllTypesProto3.map_string_foreign_enumiJtoneof_uint32s=protobuf_test_messages.proto3.TestAllTypesProto3.oneof_uint32iotoneof_nested_messagesEprotobuf_test_messages.proto3.TestAllTypesProto3.oneof_nested_messageiptoneof_strings=protobuf_test_messages.proto3.TestAllTypesProto3.oneof_stringiqtoneof_bytess<protobuf_test_messages.proto3.TestAllTypesProto3.oneof_bytesirt
oneof_bools;protobuf_test_messages.proto3.TestAllTypesProto3.oneof_boolistoneof_uint64s=protobuf_test_messages.proto3.TestAllTypesProto3.oneof_uint64ittoneof_floats<protobuf_test_messages.proto3.TestAllTypesProto3.oneof_floatiutoneof_doubles=protobuf_test_messages.proto3.TestAllTypesProto3.oneof_doubleivt
oneof_enums;protobuf_test_messages.proto3.TestAllTypesProto3.oneof_enumiwtoptional_bool_wrappersFprotobuf_test_messages.proto3.TestAllTypesProto3.optional_bool_wrapperi�toptional_int32_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.optional_int32_wrapperi�toptional_int64_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.optional_int64_wrapperi�toptional_uint32_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.optional_uint32_wrapperi�toptional_uint64_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.optional_uint64_wrapperiKi�toptional_float_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.optional_float_wrapperiLi�toptional_double_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.optional_double_wrapperiMi�toptional_string_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.optional_string_wrapperiNi�toptional_bytes_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.optional_bytes_wrapperiOi�trepeated_bool_wrappersFprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_bool_wrapperiPi�trepeated_int32_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_int32_wrapperiQi�trepeated_int64_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_int64_wrapperiRi�trepeated_uint32_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint32_wrapperiSi�trepeated_uint64_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_uint64_wrapperiTi�trepeated_float_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_float_wrapperiUi�trepeated_double_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_double_wrapperiVi�trepeated_string_wrappersHprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_string_wrapperiWi�trepeated_bytes_wrappersGprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_bytes_wrapperiXi�toptional_durationsBprotobuf_test_messages.proto3.TestAllTypesProto3.optional_durationiYi-toptional_timestampsCprotobuf_test_messages.proto3.TestAllTypesProto3.optional_timestampiZi.toptional_field_masksDprotobuf_test_messages.proto3.TestAllTypesProto3.optional_field_maski[i/toptional_structs@protobuf_test_messages.proto3.TestAllTypesProto3.optional_structi\i0toptional_anys=protobuf_test_messages.proto3.TestAllTypesProto3.optional_anyi]i1toptional_values?protobuf_test_messages.proto3.TestAllTypesProto3.optional_valuei^i2trepeated_durationsBprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_durationi_i7trepeated_timestampsCprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_timestampi`i8trepeated_fieldmasksCprotobuf_test_messages.proto3.TestAllTypesProto3.repeated_fieldmaskiai9trepeated_structs@protobuf_test_messages.proto3.TestAllTypesProto3.repeated_structibiDtrepeated_anys=protobuf_test_messages.proto3.TestAllTypesProto3.repeated_anyici;trepeated_values?protobuf_test_messages.proto3.TestAllTypesProto3.repeated_valueidi<t
fieldname1s;protobuf_test_messages.proto3.TestAllTypesProto3.fieldname1iei�tfield_name2s<protobuf_test_messages.proto3.TestAllTypesProto3.field_name2ifi�t_field_name3s=protobuf_test_messages.proto3.TestAllTypesProto3._field_name3igi�t
field__name4_s>protobuf_test_messages.proto3.TestAllTypesProto3.field__name4_ihi�tfield0name5s<protobuf_test_messages.proto3.TestAllTypesProto3.field0name5iii�t
field_0_name6s>protobuf_test_messages.proto3.TestAllTypesProto3.field_0_name6iji�t
fieldName7s;protobuf_test_messages.proto3.TestAllTypesProto3.fieldName7iki�t
FieldName8s;protobuf_test_messages.proto3.TestAllTypesProto3.FieldName8ili�tfield_Name9s<protobuf_test_messages.proto3.TestAllTypesProto3.field_Name9imi�tField_Name10s=protobuf_test_messages.proto3.TestAllTypesProto3.Field_Name10ini�tFIELD_NAME11s=protobuf_test_messages.proto3.TestAllTypesProto3.FIELD_NAME11i�tFIELD_name12s=protobuf_test_messages.proto3.TestAllTypesProto3.FIELD_name12i�t__field_name13s?protobuf_test_messages.proto3.TestAllTypesProto3.__field_name13i�t__Field_name14s?protobuf_test_messages.proto3.TestAllTypesProto3.__Field_name14i�t
field__name15s>protobuf_test_messages.proto3.TestAllTypesProto3.field__name15i�t
field__Name16s>protobuf_test_messages.proto3.TestAllTypesProto3.field__Name16i�tfield_name17__s?protobuf_test_messages.proto3.TestAllTypesProto3.field_name17__i�tField_name18__s?protobuf_test_messages.proto3.TestAllTypesProto3.Field_name18__i�toneof_fields<protobuf_test_messages.proto3.TestAllTypesProto3.oneof_fieldi
i�tForeignMessages,protobuf_test_messages.proto3.ForeignMessagetcs.protobuf_test_messages.proto3.ForeignMessage.ci�i�t
DESCRIPTORt
__module__s(google.protobuf.test_messages_proto3_pb2s8
(com.google.protobuf_test_messages.proto3H��Proto3(�tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt google_dot_protobuf_dot_any__pb2Rt%google_dot_protobuf_dot_duration__pb2R
t(google_dot_protobuf_dot_field__mask__pb2Rt#google_dot_protobuf_dot_struct__pb2Rt&google_dot_protobuf_dot_timestamp__pb2Rt%google_dot_protobuf_dot_wrappers__pb2tFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_FOREIGNENUMtRegisterEnumDescriptortEnumTypeWrapperRRR!R"t_TESTALLTYPESPROTO3_NESTEDENUMt
DescriptortFieldDescriptortFalset!_TESTALLTYPESPROTO3_NESTEDMESSAGEt
_ParseOptionstMessageOptionst&_TESTALLTYPESPROTO3_MAPINT32INT32ENTRYt&_TESTALLTYPESPROTO3_MAPINT64INT64ENTRYt(_TESTALLTYPESPROTO3_MAPUINT32UINT32ENTRYt(_TESTALLTYPESPROTO3_MAPUINT64UINT64ENTRYt(_TESTALLTYPESPROTO3_MAPSINT32SINT32ENTRYt(_TESTALLTYPESPROTO3_MAPSINT64SINT64ENTRYt*_TESTALLTYPESPROTO3_MAPFIXED32FIXED32ENTRYt*_TESTALLTYPESPROTO3_MAPFIXED64FIXED64ENTRYt,_TESTALLTYPESPROTO3_MAPSFIXED32SFIXED32ENTRYt,_TESTALLTYPESPROTO3_MAPSFIXED64SFIXED64ENTRYtfloatt&_TESTALLTYPESPROTO3_MAPINT32FLOATENTRYt'_TESTALLTYPESPROTO3_MAPINT32DOUBLEENTRYt$_TESTALLTYPESPROTO3_MAPBOOLBOOLENTRYtdecodet(_TESTALLTYPESPROTO3_MAPSTRINGSTRINGENTRYt'_TESTALLTYPESPROTO3_MAPSTRINGBYTESENTRYt/_TESTALLTYPESPROTO3_MAPSTRINGNESTEDMESSAGEENTRYt0_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNMESSAGEENTRYt,_TESTALLTYPESPROTO3_MAPSTRINGNESTEDENUMENTRYt-_TESTALLTYPESPROTO3_MAPSTRINGFOREIGNENUMENTRYtFieldOptionstOneofDescriptort_TESTALLTYPESPROTO3t_FOREIGNMESSAGEtfields_by_nameR2R#R3t
_BOOLVALUEt_INT32VALUEt_INT64VALUEt_UINT32VALUEt_UINT64VALUEt_FLOATVALUEt_DOUBLEVALUEt_STRINGVALUEt_BYTESVALUEt	_DURATIONt
_TIMESTAMPt
_FIELDMASKt_STRUCTt_ANYt_VALUEtoneofs_by_nameR,tappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRRtRegisterMessageR+R=R@RARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQR�tTruethas_optionstFileOptionst_options(((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto3_pb2.pyt<module>s%	-					
						
																																																																																																					$	$																					$	$																																																																												B																											





	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!(((PK�\ZV�))protobuf/duration_pb2.pyonu�[����
���hc.@stddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejddddddddddd d!d"dd#ed$dd%dd&dddd'ed(dd)dde�ejdd*dd+dddd!dd,d dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd-gd.gd/gd)dd0eddd1gd2gd3d4d5d6�Zeejd<eje�e	jdejfed7ed8d9��Zeje�ee_ejej �ed:��e_!dS(;i����NiicCs|S(N((tx((s@/usr/lib/python2.7/site-packages/google/protobuf/duration_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s@/usr/lib/python2.7/site-packages/google/protobuf/duration_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/duration.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/duration.protogoogle.protobuf"*
Duration
seconds (
nanos (B|
com.google.protobufB
DurationProtoPZ*github.com/golang/protobuf/ptypes/duration��GPB�Google.Protobuf.WellKnownTypesbproto3tDurationt	full_namesgoogle.protobuf.Durationtfilenametfiletcontaining_typetfieldstsecondss google.protobuf.Duration.secondstindextnumberittypetcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionstnanossgoogle.protobuf.Duration.nanosit
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti3tserialized_endi]t
DESCRIPTORt
__module__sgoogle.protobuf.duration_pb2s|
com.google.protobufB
DurationProtoPZ*github.com/golang/protobuf/ptypes/duration��GPB�Google.Protobuf.WellKnownTypes("tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR+t
DescriptortNonetFieldDescriptortFalset	_DURATIONtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((s@/usr/lib/python2.7/site-packages/google/protobuf/duration_pb2.pyt<module>sd%					


	PK�\ۭ�,�#�#protobuf/service.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""DEPRECATED:  Declares the RPC service interfaces.

This module declares the abstract interfaces underlying proto2 RPC
services.  These are intended to be independent of any particular RPC
implementation, so that proto2 services can be used on top of a variety
of implementations.  Starting with version 2.3.0, RPC implementations should
not try to build on these, but should instead provide code generator plugins
which generate code specific to the particular RPC implementation.  This way
the generated code can be more appropriate for the implementation in use
and can avoid unnecessary layers of indirection.
"""

__author__ = 'petar@google.com (Petar Petrov)'


class RpcException(Exception):
  """Exception raised on failed blocking RPC method call."""
  pass


class Service(object):

  """Abstract base interface for protocol-buffer-based RPC services.

  Services themselves are abstract classes (implemented either by servers or as
  stubs), but they subclass this base interface. The methods of this
  interface can be used to call the methods of the service without knowing
  its exact type at compile time (analogous to the Message interface).
  """

  def GetDescriptor():
    """Retrieves this service's descriptor."""
    raise NotImplementedError

  def CallMethod(self, method_descriptor, rpc_controller,
                 request, done):
    """Calls a method of the service specified by method_descriptor.

    If "done" is None then the call is blocking and the response
    message will be returned directly.  Otherwise the call is asynchronous
    and "done" will later be called with the response value.

    In the blocking case, RpcException will be raised on error.

    Preconditions:
    * method_descriptor.service == GetDescriptor
    * request is of the exact same classes as returned by
      GetRequestClass(method).
    * After the call has started, the request must not be modified.
    * "rpc_controller" is of the correct type for the RPC implementation being
      used by this Service.  For stubs, the "correct type" depends on the
      RpcChannel which the stub is using.

    Postconditions:
    * "done" will be called when the method is complete.  This may be
      before CallMethod() returns or it may be at some point in the future.
    * If the RPC failed, the response value passed to "done" will be None.
      Further details about the failure can be found by querying the
      RpcController.
    """
    raise NotImplementedError

  def GetRequestClass(self, method_descriptor):
    """Returns the class of the request message for the specified method.

    CallMethod() requires that the request is of a particular subclass of
    Message. GetRequestClass() gets the default instance of this required
    type.

    Example:
      method = service.GetDescriptor().FindMethodByName("Foo")
      request = stub.GetRequestClass(method)()
      request.ParseFromString(input)
      service.CallMethod(method, request, callback)
    """
    raise NotImplementedError

  def GetResponseClass(self, method_descriptor):
    """Returns the class of the response message for the specified method.

    This method isn't really needed, as the RpcChannel's CallMethod constructs
    the response protocol message. It's provided anyway in case it is useful
    for the caller to know the response type in advance.
    """
    raise NotImplementedError


class RpcController(object):

  """An RpcController mediates a single method call.

  The primary purpose of the controller is to provide a way to manipulate
  settings specific to the RPC implementation and to find out about RPC-level
  errors. The methods provided by the RpcController interface are intended
  to be a "least common denominator" set of features which we expect all
  implementations to support.  Specific implementations may provide more
  advanced features (e.g. deadline propagation).
  """

  # Client-side methods below

  def Reset(self):
    """Resets the RpcController to its initial state.

    After the RpcController has been reset, it may be reused in
    a new call. Must not be called while an RPC is in progress.
    """
    raise NotImplementedError

  def Failed(self):
    """Returns true if the call failed.

    After a call has finished, returns true if the call failed.  The possible
    reasons for failure depend on the RPC implementation.  Failed() must not
    be called before a call has finished.  If Failed() returns true, the
    contents of the response message are undefined.
    """
    raise NotImplementedError

  def ErrorText(self):
    """If Failed is true, returns a human-readable description of the error."""
    raise NotImplementedError

  def StartCancel(self):
    """Initiate cancellation.

    Advises the RPC system that the caller desires that the RPC call be
    canceled.  The RPC system may cancel it immediately, may wait awhile and
    then cancel it, or may not even cancel the call at all.  If the call is
    canceled, the "done" callback will still be called and the RpcController
    will indicate that the call failed at that time.
    """
    raise NotImplementedError

  # Server-side methods below

  def SetFailed(self, reason):
    """Sets a failure reason.

    Causes Failed() to return true on the client side.  "reason" will be
    incorporated into the message returned by ErrorText().  If you find
    you need to return machine-readable information about failures, you
    should incorporate it into your response protocol buffer and should
    NOT call SetFailed().
    """
    raise NotImplementedError

  def IsCanceled(self):
    """Checks if the client cancelled the RPC.

    If true, indicates that the client canceled the RPC, so the server may
    as well give up on replying to it.  The server should still call the
    final "done" callback.
    """
    raise NotImplementedError

  def NotifyOnCancel(self, callback):
    """Sets a callback to invoke on cancel.

    Asks that the given callback be called when the RPC is canceled.  The
    callback will always be called exactly once.  If the RPC completes without
    being canceled, the callback will be called after completion.  If the RPC
    has already been canceled when NotifyOnCancel() is called, the callback
    will be called immediately.

    NotifyOnCancel() must be called no more than once per request.
    """
    raise NotImplementedError


class RpcChannel(object):

  """Abstract interface for an RPC channel.

  An RpcChannel represents a communication line to a service which can be used
  to call that service's methods.  The service may be running on another
  machine. Normally, you should not use an RpcChannel directly, but instead
  construct a stub {@link Service} wrapping it.  Example:

  Example:
    RpcChannel channel = rpcImpl.Channel("remotehost.example.com:1234")
    RpcController controller = rpcImpl.Controller()
    MyService service = MyService_Stub(channel)
    service.MyMethod(controller, request, callback)
  """

  def CallMethod(self, method_descriptor, rpc_controller,
                 request, response_class, done):
    """Calls the method identified by the descriptor.

    Call the given method of the remote service.  The signature of this
    procedure looks the same as Service.CallMethod(), but the requirements
    are less strict in one important way:  the request object doesn't have to
    be of any specific class as long as its descriptor is method.input_type.
    """
    raise NotImplementedError
PK
�\W8�yy protobuf/descriptor_database.pycnu�[����
���hc@s[dZdZdefd��YZdefd��YZdefd��YZd�Zd	S(
s*Provides a container for DescriptorProtos.s"matthewtoia@google.com (Matt Toia)tErrorcBseZRS((t__name__t
__module__(((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyR$st,DescriptorDatabaseConflictingDefinitionErrorcBseZdZRS(sGRaised when a proto is added with the same name & different descriptor.(RRt__doc__(((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyR(stDescriptorDatabasecBs2eZdZd�Zd�Zd�Zd�ZRS(sEA container accepting FileDescriptorProtos and maps DescriptorProtos.cCsi|_i|_dS(N(t_file_desc_protos_by_filet_file_desc_protos_by_symbol(tself((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyt__init__/s	cs1�j}||jkr(�|j|<n&|j|�krNtd|��n�j}x:�jD]/}|jj�fd�t||�D��qaWx0�jD]%}�|jdj	||jf�<q�Wx0�j
D]%}�|jdj	||jf�<q�Wx0�jD]%}�|jdj	||jf�<qWdS(sMAdds the FileDescriptorProto and its types to this database.

    Args:
      file_desc_proto: The FileDescriptorProto to add.
    Raises:
      DescriptorDatabaseConflictingDefinitionError: if an attempt is made to
        add a proto with the same name but different definition than an
        exisiting proto in the database.
    s0%s already added, but with different descriptor.c3s|]}|�fVqdS(N((t.0tname(tfile_desc_proto(sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pys	<genexpr>Hst.N(RRRtpackagetmessage_typeRtupdatet_ExtractSymbolst	enum_typetjoint	extensiontservice(RRt
proto_nameRtmessagetenumRR((RsG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pytAdd3s 
			$##cCs|j|S(s�Finds the file descriptor proto by file name.

    Typically the file name is a relative path ending to a .proto file. The
    proto with the given name will have to have been added to this database
    using the Add method or else an error will be raised.

    Args:
      name: The file name to find.

    Returns:
      The file descriptor proto matching the name.

    Raises:
      KeyError if no file by the given name was added.
    (R(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pytFindFileByNameSscCsGy|j|SWn1tk
rB|jd�\}}}|j|SXdS(s�Finds the file descriptor proto containing the specified symbol.

    The symbol should be a fully qualified name including the file descriptor's
    package and any containing messages. Some examples:

    'some.package.name.Message'
    'some.package.name.Message.NestedEnum'
    'some.package.name.Message.some_field'

    The file descriptor proto containing the specified symbol must be added to
    this database using the Add method or else an error will be raised.

    Args:
      symbol: The fully qualified symbol name.

    Returns:
      The file descriptor proto containing the symbol.

    Raises:
      KeyError if no file contains the specified symbol.
    R
N(RtKeyErrort
rpartition(Rtsymbolt	top_levelt_((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pytFindFileContainingSymbolfs

(RRRR	RRR (((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyR,s
		 	ccs�|r|d|jn|j}|Vx0|jD]%}xt||�D]}|VqEWq/Wx(|jD]}dj||jf�VqbWdS(s�Pulls out all the symbols from a descriptor proto.

  Args:
    desc_proto: The proto to extract symbols from.
    package: The package containing the descriptor type.

  Yields:
    The fully qualified name found in the descriptor.
  R
N(Rtnested_typeRRR(t
desc_protoRtmessage_nameR!RR((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyR�s
 
N(Rt
__author__t	ExceptionRRtobjectRR(((sG/usr/lib/python2.7/site-packages/google/protobuf/descriptor_database.pyt<module>s
\PK
�\protobuf/util/__init__.pynu�[���PK
�\0X[����(protobuf/util/json_format_proto3_pb2.pyonu�[����
���hcB@s�JddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZejddddddded�dej ej ej ej ej ej ej g�Z ej!ddddddde d ej#dd!d"dd#dd$dd%d�ej#dd&d"d'd#d'd$dd%d�gd(dd$dd)d*d+d,�	Z$ej%e$�ej&e$�Z'dZ(d'Z)ej*dd-dd.ddde d(dd/ej+dd0dd1d"dd#d'd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dAd+dB�Z-ej*ddCddDddde d(dd/ej+ddEddFd"dd#d'd%dGd3dHd4d'd5e,d6e,d7dd8dd(dd9e,d:dd$dde �ej+ddIddJd"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddLddMd"dKd#dd%dd3dKd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddNddOd"dd#dPd%dQd3dd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddRddSd"dPd#d2d%dPd3dPd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddTddUd"d2d#dVd%dKd3dVd4d'd5e,d6e.d�d7dd8dd(dd9e,d:dd$dde �ej+ddWddXd"dVd#dHd%d'd3d2d4d'd5e,d6e.d�d7dd8dd(dd9e,d:dd$dde �ej+ddYddZd"dHd#dGd%d[d3d[d4d'd5e,d6ed\�j/d]�d7dd8dd(dd9e,d:dd$dde �ej+dd^dd_d"dGd#d[d%d`d3d[d4d'd5e,d6ed\�d7dd8dd(dd9e,d:dd$dde �ej+ddaddbd"d[d#dcd%ddd3dGd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddeddfd"dcd#dgd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddhddid"dgd#djd%dGd3dHd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddkddld"d`d#dmd%d2d3d'd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddnddod"dQd#dpd%dd3dKd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddqddrd"ddd#dsd%dQd3dd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddtddud"dvd#dwd%dPd3dPd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddxddyd"dzd#d{d%dKd3dVd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd|dd}d"d~d#dd%d'd3d2d4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d�d#d�d%d[d3d[d4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d�d#d�d%d`d3d[d4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d�d#d�d%ddd3dGd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"djd#d�d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d�d+d��Z0ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d'd#dKd%d[d3d[d4d'd5e,d6ed\�j/d]�d7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dKd#dd%d`d3d[d4d'd5e,d6ed\�d7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dd#dPd%ddd3dGd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dPd#d2d%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@ej1dd�dd�d"dd(dd/g�gd)d�d+d��Z2ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dGd3dHd4d'd5e,d6e,d7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z5ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z6ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dd3dKd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z7ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dQd3dd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z8ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dPd3dPd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z9ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d[d3d[d4d'd5e,d6ed\�j/d]�d7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z:ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dKd#dd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dd#dPd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dPd#d2d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d2d#dVd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<e5e6e7e8e9e:gd=gd$dd>e,ddd?gd@gd)d�d+d��Z;ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dGd3dHd4d'd5e,d6e,d7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z<ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z=ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dd3dKd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z>ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dQd3dd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z?ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dPd3dPd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z@ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d[d3d[d4d'd5e,d6ed\�j/d]�d7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��ZAej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d[d3d[d4d'd5e,d6ed\�j/d]�d7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��ZBej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dKd#dd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dd#dPd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dPd#d2d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d2d#dVd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dVd#dHd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<e<e=e>e?e@eAeBgd=gd$dd>e,ddd?gd@gd)d�d+d��ZCej*dd�dd�ddde d(dd/ej+ddEdd�d"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddIdd�d"d'd#dKd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddLdd�d"dKd#dd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddNdd�d"dd#dPd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddRdd�d"dPd#d2d%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddTddd"d2d#dVd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddWddd"dVd#dHd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddYddd"dHd#dGd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd^ddd"dGd#d[d%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddhddd"d[d#dgd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddkddd"dcd#d`d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddnddd"dgd#dQd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddqddd"d`d#ddd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddtddd"dQd#dvd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddxdd	d"ddd#dzd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd|dd
d"dvd#d~d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�ddd"dzd#d�d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�ddd"d~d#d�d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d
d+d�ZDej*ddddddde d(dd/ej+dd0ddd"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddddd"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dd+d�ZEej*ddddddde d(dd/ej+dd0ddd"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddddd"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dd+d�ZFej*ddddddde d(dd/ej+dd0ddd"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dd+d �ZGej*dd!dd"ddde d(dd/ej+dd0dd#d"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dddd$d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d%d+d&�ZHej*dd'dd(ddde d(dd/ej+dd0dd)d"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dddd*d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d+d+d,�ZIej*dd-dd.ddde d(dd/ej+dd0dd/d"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dddd0d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d1d+d2�ZJej*dd3dd4ddde d(dd/ej+dd0dd5d"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dddd6d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d7d+d8�ZKej*dd�dd9ddde d(dd/ej+dd�dd:d"dd#d'd%dGd3dHd4d'd5e,d6e,d7dd8dd(dd9e,d:dd$dde �ej+dd0dd;d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��ZLej*dd<dd=ddde d(dd/ej+ddEdd>d"dd#d'd%dGd3dHd4d'd5e,d6e,d7dd8dd(dd9e,d:dd$dde �ej+dd�dd?d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<eLgd=gd$dd>e,ddd?gd@gd)d@d+dA�ZMej*ddBddCddde d(dd/ej+dd0ddDd"dd#d'd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$ddEdFde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dGd+dH�ZNej*ddIddJddde d(dd/ej+dd;ddKd"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dLd+dM�ZOe$e0jPda_Qe-e0jPde_Re$e0jPd�_Qe-e0jPd�_Re$e2jPd�_Qe-e2jPd�_Re2jSd�jTjUe2jPd��e2jSd�e2jPd�_Ve2jSd�jTjUe2jPd��e2jSd�e2jPd�_Ve2jSd�jTjUe2jPd��e2jSd�e2jPd�_Ve2jSd�jTjUe2jPd��e2jSd�e2jPd�_Ve2jSd�jTjUe2jPd��e2jSd�e2jPd�_Ve;e5_We;e6_We;e7_We;e8_We;e9_We;e:_We5e;jPd�_Re6e;jPd�_Re7e;jPd�_Re8e;jPd�_Re9e;jPd�_Re:e;jPd�_ReCe<_WeCe=_WeCe>_WeCe?_WeCe@_WeCeA_WeCeBjPd0_ReCeB_We<eCjPd�_Re=eCjPd�_Re>eCjPd�_Re?eCjPd�_Re@eCjPd�_ReAeCjPd�_ReBeCjPd�_RejXeDjPdE_RejYeDjPdI_RejZeDjPdL_Rej[eDjPdN_Rej\eDjPdR_Rej]eDjPdT_Rej^eDjPdW_Rej_eDjPdY_Rej`eDjPd^_RejXeDjPdh_RejYeDjPdk_RejZeDjPdn_Rej[eDjPdq_Rej\eDjPdt_Rej]eDjPdx_Rej^eDjPd|_Rej_eDjPd�_Rej`eDjPd�_RejaeEjPd0_RejaeEjPd_RejbeFjPd0_RejbeFjPd_RejceGjPd0_RejdeHjPd0_RejdeHjPd_RejeeIjPd0_RejeeIjPd_RejfeJjPd0_RejfeJjPd_RejgeKjPd0_RejgeKjPd_ReMeL_WeLeMjPd�_RejheOjPd;_Re-e jid-<e0e jidC<e2e jid�<e;e jid�<eCe jid�<eDe jid�<eEe jid<eFe jid<eGe jid<eHe jid!<eIe jid'<eJe jid-<eKe jid3<eMe jid<<eNe jidB<eOe jidI<e$e jjd<ejke �ejld-e	jmfendNe-dOdP��Zoejpeo�ejldCe	jmfendNe0dOdP��Zqejpeq�ejld�e	jmfendNe2dOdP��Zrejper�ejld�e	jmfend�ejld�e	jmfendNe5dOdP��d�ejld�e	jmfendNe6dOdP��d�ejld�e	jmfendNe7dOdP��d�ejld�e	jmfendNe8dOdP��d�ejld�e	jmfendNe9dOdP��d�ejld�e	jmfendNe:dOdP��dNe;dOdP��Zsejpes�ejpesjt�ejpesju�ejpesjv�ejpesjw�ejpesjx�ejpesjy�ejld�e	jmfend�ejld�e	jmfendNe<dOdP��d�ejld�e	jmfendNe=dOdP��d�ejld�e	jmfendNe>dOdP��d�ejld�e	jmfendNe?dOdP��d�ejld�e	jmfendNe@dOdP��d�ejld�e	jmfendNeAdOdP��d�ejld�e	jmfendNeBdOdP��dNeCdOdP�	�Zzejpez�ejpezjt�ejpezju�ejpezjv�ejpezjw�ejpezjx�ejpezjy�ejpezj{�ejld�e	jmfendNeDdOdP��Z|ejpe|�ejlde	jmfendNeEdOdP��Z}ejpe}�ejlde	jmfendNeFdOdP��Z~ejpe~�ejlde	jmfendNeGdOdP��Zejpe�ejld!e	jmfendNeHdOdP��Z�ejpe��ejld'e	jmfendNeIdOdP��Z�ejpe��ejld-e	jmfendNeJdOdP��Z�ejpe��ejld3e	jmfendNeKdOdP��Z�ejpe��ejld<e	jmfend�ejld�e	jmfendNeLdOdP��dNeMdOdP��Z�ejpe��ejpe�jt�ejldBe	jmfendNeNdOdP��Z�ejpe��ejldIe	jmfendNeOdOdP��Z�ejpe��e�e _�ej3ej��edQ��e _�e�e5_�ej3ej4�ed���e5_�e�e6_�ej3ej4�ed���e6_�e�e7_�ej3ej4�ed���e7_�e�e8_�ej3ej4�ed���e8_�e�e9_�ej3ej4�ed���e9_�e�e:_�ej3ej4�ed���e:_�e�e<_�ej3ej4�ed���e<_�e�e=_�ej3ej4�ed���e=_�e�e>_�ej3ej4�ed���e>_�e�e?_�ej3ej4�ed���e?_�e�e@_�ej3ej4�ed���e@_�e�eA_�ej3ej4�ed���eA_�e�eB_�ej3ej4�ed���eB_�e�eL_�ej3ej4�ed���eL_�dS(Ri����NiicCs|S(N((tx((sO/usr/lib/python2.7/site-packages/google/protobuf/util/json_format_proto3_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sO/usr/lib/python2.7/site-packages/google/protobuf/util/json_format_proto3_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tduration_pb2(t
timestamp_pb2(twrappers_pb2(t
struct_pb2(tany_pb2(tfield_mask_pb2(tunittest_pb2tnames-google/protobuf/util/json_format_proto3.prototpackagetproto3tsyntaxt
serialized_pbs
-google/protobuf/util/json_format_proto3.protoproto3google/protobuf/duration.protogoogle/protobuf/timestamp.protogoogle/protobuf/wrappers.protogoogle/protobuf/struct.protogoogle/protobuf/any.proto google/protobuf/field_mask.protogoogle/protobuf/unittest.proto"
MessageType
value ("�
TestMessage

bool_value (
int32_value (
int64_value (
uint32_value (

uint64_value (
float_value (
double_value (
string_value (	
bytes_value	 ($

enum_value
 (2.proto3.EnumType*

message_value (2.proto3.MessageType
repeated_bool_value (
repeated_int32_value (
repeated_int64_value (
repeated_uint32_value (

repeated_uint64_value (
repeated_float_value (
repeated_double_value (
repeated_string_value (	
repeated_bytes_value (-
repeated_enum_value (2.proto3.EnumType3
repeated_message_value (2.proto3.MessageType"�
	TestOneof
oneof_int32_value (H
oneof_string_value (	H
oneof_bytes_value (H,
oneof_enum_value (2.proto3.EnumTypeH2
oneof_message_value (2.proto3.MessageTypeHB
oneof_value"�
TestMap.
bool_map (2.proto3.TestMap.BoolMapEntry0
	int32_map (2.proto3.TestMap.Int32MapEntry0
	int64_map (2.proto3.TestMap.Int64MapEntry2

uint32_map (2.proto3.TestMap.Uint32MapEntry2

uint64_map (2.proto3.TestMap.Uint64MapEntry2

string_map (2.proto3.TestMap.StringMapEntry.
BoolMapEntry
key (
value (:8/

Int32MapEntry
key (
value (:8/

Int64MapEntry
key (
value (:80
Uint32MapEntry
key (

value (:80
Uint64MapEntry
key (
value (:80
StringMapEntry
key (	
value (:8"�

TestNestedMap4
bool_map (2".proto3.TestNestedMap.BoolMapEntry6
	int32_map (2#.proto3.TestNestedMap.Int32MapEntry6
	int64_map (2#.proto3.TestNestedMap.Int64MapEntry8

uint32_map (2$.proto3.TestNestedMap.Uint32MapEntry8

uint64_map (2$.proto3.TestNestedMap.Uint64MapEntry8

string_map (2$.proto3.TestNestedMap.StringMapEntry2
map_map (2!.proto3.TestNestedMap.MapMapEntry.
BoolMapEntry
key (
value (:8/

Int32MapEntry
key (
value (:8/

Int64MapEntry
key (
value (:80
Uint32MapEntry
key (

value (:80
Uint64MapEntry
key (
value (:80
StringMapEntry
key (	
value (:8D
MapMapEntry
key (	$
value (2.proto3.TestNestedMap:8"�
TestWrapper.

bool_value (2.google.protobuf.BoolValue0
int32_value (2.google.protobuf.Int32Value0
int64_value (2.google.protobuf.Int64Value2
uint32_value (2.google.protobuf.UInt32Value2
uint64_value (2.google.protobuf.UInt64Value0
float_value (2.google.protobuf.FloatValue2
double_value (2.google.protobuf.DoubleValue2
string_value (2.google.protobuf.StringValue0
bytes_value	 (2.google.protobuf.BytesValue7
repeated_bool_value (2.google.protobuf.BoolValue9
repeated_int32_value (2.google.protobuf.Int32Value9
repeated_int64_value
 (2.google.protobuf.Int64Value;
repeated_uint32_value (2.google.protobuf.UInt32Value;
repeated_uint64_value (2.google.protobuf.UInt64Value9
repeated_float_value (2.google.protobuf.FloatValue;
repeated_double_value (2.google.protobuf.DoubleValue;
repeated_string_value (2.google.protobuf.StringValue9
repeated_bytes_value (2.google.protobuf.BytesValue"n

TestTimestamp)
value (2.google.protobuf.Timestamp2
repeated_value (2.google.protobuf.Timestamp"k
TestDuration(
value (2.google.protobuf.Duration1
repeated_value (2.google.protobuf.Duration":

TestFieldMask)
value (2.google.protobuf.FieldMask"e

TestStruct&
value (2.google.protobuf.Struct/
repeated_value (2.google.protobuf.Struct"\
TestAny#
value (2.google.protobuf.Any,
repeated_value (2.google.protobuf.Any"b
	TestValue%
value (2.google.protobuf.Value.
repeated_value (2.google.protobuf.Value"n

TestListValue)
value (2.google.protobuf.ListValue2
repeated_value (2.google.protobuf.ListValue"�

TestBoolValue

bool_value (4
bool_map (2".proto3.TestBoolValue.BoolMapEntry.
BoolMapEntry
key (
value (:8"+
TestCustomJsonName
value (R@value"J
TestExtensions8

extensions (2$.protobuf_unittest.TestAllExtensions*
EnumType
FOO
BARB,
com.google.protobuf.utilBJsonFormatProto3bproto3tdependenciestEnumTypet	full_namesproto3.EnumTypetfilenametfiletvaluestFOOtindextnumbertoptionsttypetBARitcontaining_typetserialized_starti�tserialized_endi�tMessageTypesproto3.MessageTypetfieldstvaluesproto3.MessageType.valueitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsii1tTestMessagesproto3.TestMessaget
bool_valuesproto3.TestMessage.bool_valueiitint32_valuesproto3.TestMessage.int32_valueitint64_valuesproto3.TestMessage.int64_valuetuint32_valuesproto3.TestMessage.uint32_valueii
tuint64_valuesproto3.TestMessage.uint64_valuetfloat_valuesproto3.TestMessage.float_valueitdouble_valuesproto3.TestMessage.double_valuetstring_valuesproto3.TestMessage.string_valuei	Rsutf-8tbytes_valuesproto3.TestMessage.bytes_valueit
enum_valuesproto3.TestMessage.enum_valuei
it
message_values proto3.TestMessage.message_valueitrepeated_bool_values&proto3.TestMessage.repeated_bool_valueitrepeated_int32_values'proto3.TestMessage.repeated_int32_valueitrepeated_int64_values'proto3.TestMessage.repeated_int64_valueitrepeated_uint32_values(proto3.TestMessage.repeated_uint32_valueitrepeated_uint64_values(proto3.TestMessage.repeated_uint64_valueiitrepeated_float_values'proto3.TestMessage.repeated_float_valueiitrepeated_double_values(proto3.TestMessage.repeated_double_valueiitrepeated_string_values(proto3.TestMessage.repeated_string_valueiitrepeated_bytes_values'proto3.TestMessage.repeated_bytes_valueiitrepeated_enum_values&proto3.TestMessage.repeated_enum_valueiitrepeated_message_values)proto3.TestMessage.repeated_message_valueii4i�t	TestOneofsproto3.TestOneoftoneof_int32_values"proto3.TestOneof.oneof_int32_valuetoneof_string_values#proto3.TestOneof.oneof_string_valuetoneof_bytes_values"proto3.TestOneof.oneof_bytes_valuetoneof_enum_values!proto3.TestOneof.oneof_enum_valuetoneof_message_values$proto3.TestOneof.oneof_message_valuetoneof_valuesproto3.TestOneof.oneof_valuei�i�tBoolMapEntrysproto3.TestMap.BoolMapEntrytkeysproto3.TestMap.BoolMapEntry.keys!proto3.TestMap.BoolMapEntry.values8i�it
Int32MapEntrysproto3.TestMap.Int32MapEntrys proto3.TestMap.Int32MapEntry.keys"proto3.TestMap.Int32MapEntry.valuei
i<t
Int64MapEntrysproto3.TestMap.Int64MapEntrys proto3.TestMap.Int64MapEntry.keys"proto3.TestMap.Int64MapEntry.valuei>imtUint32MapEntrysproto3.TestMap.Uint32MapEntrys!proto3.TestMap.Uint32MapEntry.keys#proto3.TestMap.Uint32MapEntry.valueioi�tUint64MapEntrysproto3.TestMap.Uint64MapEntrys!proto3.TestMap.Uint64MapEntry.keys#proto3.TestMap.Uint64MapEntry.valuei�i�tStringMapEntrysproto3.TestMap.StringMapEntrys!proto3.TestMap.StringMapEntry.keys#proto3.TestMap.StringMapEntry.valuei�itTestMapsproto3.TestMaptbool_mapsproto3.TestMap.bool_mapt	int32_mapsproto3.TestMap.int32_mapt	int64_mapsproto3.TestMap.int64_mapt
uint32_mapsproto3.TestMap.uint32_mapt
uint64_mapsproto3.TestMap.uint64_mapt
string_mapsproto3.TestMap.string_mapi�s!proto3.TestNestedMap.BoolMapEntrys%proto3.TestNestedMap.BoolMapEntry.keys'proto3.TestNestedMap.BoolMapEntry.values"proto3.TestNestedMap.Int32MapEntrys&proto3.TestNestedMap.Int32MapEntry.keys(proto3.TestNestedMap.Int32MapEntry.values"proto3.TestNestedMap.Int64MapEntrys&proto3.TestNestedMap.Int64MapEntry.keys(proto3.TestNestedMap.Int64MapEntry.values#proto3.TestNestedMap.Uint32MapEntrys'proto3.TestNestedMap.Uint32MapEntry.keys)proto3.TestNestedMap.Uint32MapEntry.values#proto3.TestNestedMap.Uint64MapEntrys'proto3.TestNestedMap.Uint64MapEntry.keys)proto3.TestNestedMap.Uint64MapEntry.values#proto3.TestNestedMap.StringMapEntrys'proto3.TestNestedMap.StringMapEntry.keys)proto3.TestNestedMap.StringMapEntry.valuetMapMapEntrys proto3.TestNestedMap.MapMapEntrys$proto3.TestNestedMap.MapMapEntry.keys&proto3.TestNestedMap.MapMapEntry.valuei�	i
t
TestNestedMapsproto3.TestNestedMapsproto3.TestNestedMap.bool_mapsproto3.TestNestedMap.int32_mapsproto3.TestNestedMap.int64_mapsproto3.TestNestedMap.uint32_mapsproto3.TestNestedMap.uint64_mapsproto3.TestNestedMap.string_maptmap_mapsproto3.TestNestedMap.map_mapitTestWrappersproto3.TestWrappersproto3.TestWrapper.bool_valuesproto3.TestWrapper.int32_valuesproto3.TestWrapper.int64_valuesproto3.TestWrapper.uint32_valuesproto3.TestWrapper.uint64_valuesproto3.TestWrapper.float_valuesproto3.TestWrapper.double_valuesproto3.TestWrapper.string_valuesproto3.TestWrapper.bytes_values&proto3.TestWrapper.repeated_bool_values'proto3.TestWrapper.repeated_int32_values'proto3.TestWrapper.repeated_int64_values(proto3.TestWrapper.repeated_uint32_values(proto3.TestWrapper.repeated_uint64_values'proto3.TestWrapper.repeated_float_values(proto3.TestWrapper.repeated_double_values(proto3.TestWrapper.repeated_string_values'proto3.TestWrapper.repeated_bytes_valuei
i�
t
TestTimestampsproto3.TestTimestampsproto3.TestTimestamp.valuetrepeated_values#proto3.TestTimestamp.repeated_valuei�
iltTestDurationsproto3.TestDurationsproto3.TestDuration.values"proto3.TestDuration.repeated_valueini�t
TestFieldMasksproto3.TestFieldMasksproto3.TestFieldMask.valuei�it
TestStructsproto3.TestStructsproto3.TestStruct.values proto3.TestStruct.repeated_valueii|tTestAnysproto3.TestAnysproto3.TestAny.valuesproto3.TestAny.repeated_valuei~i�t	TestValuesproto3.TestValuesproto3.TestValue.valuesproto3.TestValue.repeated_valuei�i>t
TestListValuesproto3.TestListValuesproto3.TestListValue.values#proto3.TestListValue.repeated_valuei@i�s!proto3.TestBoolValue.BoolMapEntrys%proto3.TestBoolValue.BoolMapEntry.keys'proto3.TestBoolValue.BoolMapEntry.valuet
TestBoolValuesproto3.TestBoolValuesproto3.TestBoolValue.bool_valuesproto3.TestBoolValue.bool_mapi�i:tTestCustomJsonNamesproto3.TestCustomJsonNamesproto3.TestCustomJsonName.valuet	json_names@valuei<igtTestExtensionssproto3.TestExtensionss proto3.TestExtensions.extensionsiii�t
DESCRIPTORt
__module__s+google.protobuf.util.json_format_proto3_pb2s,
com.google.protobuf.utilBJsonFormatProto3(�tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt%google_dot_protobuf_dot_duration__pb2Rt&google_dot_protobuf_dot_timestamp__pb2R
t%google_dot_protobuf_dot_wrappers__pb2Rt#google_dot_protobuf_dot_struct__pb2Rt google_dot_protobuf_dot_any__pb2Rt(google_dot_protobuf_dot_field__mask__pb2Rt%google_dot_protobuf_dot_unittest__pb2tFileDescriptorRstEnumDescriptortNonetEnumValueDescriptort	_ENUMTYPEtRegisterEnumDescriptortEnumTypeWrapperRRR"t
DescriptortFieldDescriptortFalset_MESSAGETYPEtfloattdecodet_TESTMESSAGEtOneofDescriptort
_TESTONEOFt
_ParseOptionstMessageOptionst_TESTMAP_BOOLMAPENTRYt_TESTMAP_INT32MAPENTRYt_TESTMAP_INT64MAPENTRYt_TESTMAP_UINT32MAPENTRYt_TESTMAP_UINT64MAPENTRYt_TESTMAP_STRINGMAPENTRYt_TESTMAPt_TESTNESTEDMAP_BOOLMAPENTRYt_TESTNESTEDMAP_INT32MAPENTRYt_TESTNESTEDMAP_INT64MAPENTRYt_TESTNESTEDMAP_UINT32MAPENTRYt_TESTNESTEDMAP_UINT64MAPENTRYt_TESTNESTEDMAP_STRINGMAPENTRYt_TESTNESTEDMAP_MAPMAPENTRYt_TESTNESTEDMAPt_TESTWRAPPERt_TESTTIMESTAMPt
_TESTDURATIONt_TESTFIELDMASKt_TESTSTRUCTt_TESTANYt
_TESTVALUEt_TESTLISTVALUEt_TESTBOOLVALUE_BOOLMAPENTRYt_TESTBOOLVALUEt_TESTCUSTOMJSONNAMEt_TESTEXTENSIONStfields_by_nameR.R-toneofs_by_nameR'tappendtcontaining_oneofR#t
_BOOLVALUEt_INT32VALUEt_INT64VALUEt_UINT32VALUEt_UINT64VALUEt_FLOATVALUEt_DOUBLEVALUEt_STRINGVALUEt_BYTESVALUEt
_TIMESTAMPt	_DURATIONt
_FIELDMASKt_STRUCTt_ANYt_VALUEt
_LISTVALUEt_TESTALLEXTENSIONStmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR&tRegisterMessageR7RNR\RURWRXRYRZR[RdRcRfRgRiRjRkRlRmRnRoRpRrtTruethas_optionstFileOptionst_options(((sO/usr/lib/python2.7/site-packages/google/protobuf/util/json_format_proto3_pb2.pyt<module>s�%	3				
																																																																																																																																																																																				

































	!	!	!	!	!	!	!	!	!	!	!	!	!	!	PK
�\�4QH;H;'protobuf/util/json_format_proto3_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/util/json_format_proto3.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2
from google.protobuf import unittest_pb2 as google_dot_protobuf_dot_unittest__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/util/json_format_proto3.proto',
  package='proto3',
  syntax='proto3',
  serialized_pb=_b('\n-google/protobuf/util/json_format_proto3.proto\x12\x06proto3\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x19google/protobuf/any.proto\x1a google/protobuf/field_mask.proto\x1a\x1egoogle/protobuf/unittest.proto\"\x1c\n\x0bMessageType\x12\r\n\x05value\x18\x01 \x01(\x05\"\x94\x05\n\x0bTestMessage\x12\x12\n\nbool_value\x18\x01 \x01(\x08\x12\x13\n\x0bint32_value\x18\x02 \x01(\x05\x12\x13\n\x0bint64_value\x18\x03 \x01(\x03\x12\x14\n\x0cuint32_value\x18\x04 \x01(\r\x12\x14\n\x0cuint64_value\x18\x05 \x01(\x04\x12\x13\n\x0b\x66loat_value\x18\x06 \x01(\x02\x12\x14\n\x0c\x64ouble_value\x18\x07 \x01(\x01\x12\x14\n\x0cstring_value\x18\x08 \x01(\t\x12\x13\n\x0b\x62ytes_value\x18\t \x01(\x0c\x12$\n\nenum_value\x18\n \x01(\x0e\x32\x10.proto3.EnumType\x12*\n\rmessage_value\x18\x0b \x01(\x0b\x32\x13.proto3.MessageType\x12\x1b\n\x13repeated_bool_value\x18\x15 \x03(\x08\x12\x1c\n\x14repeated_int32_value\x18\x16 \x03(\x05\x12\x1c\n\x14repeated_int64_value\x18\x17 \x03(\x03\x12\x1d\n\x15repeated_uint32_value\x18\x18 \x03(\r\x12\x1d\n\x15repeated_uint64_value\x18\x19 \x03(\x04\x12\x1c\n\x14repeated_float_value\x18\x1a \x03(\x02\x12\x1d\n\x15repeated_double_value\x18\x1b \x03(\x01\x12\x1d\n\x15repeated_string_value\x18\x1c \x03(\t\x12\x1c\n\x14repeated_bytes_value\x18\x1d \x03(\x0c\x12-\n\x13repeated_enum_value\x18\x1e \x03(\x0e\x32\x10.proto3.EnumType\x12\x33\n\x16repeated_message_value\x18\x1f \x03(\x0b\x32\x13.proto3.MessageType\"\xd4\x01\n\tTestOneof\x12\x1b\n\x11oneof_int32_value\x18\x01 \x01(\x05H\x00\x12\x1c\n\x12oneof_string_value\x18\x02 \x01(\tH\x00\x12\x1b\n\x11oneof_bytes_value\x18\x03 \x01(\x0cH\x00\x12,\n\x10oneof_enum_value\x18\x04 \x01(\x0e\x32\x10.proto3.EnumTypeH\x00\x12\x32\n\x13oneof_message_value\x18\x05 \x01(\x0b\x32\x13.proto3.MessageTypeH\x00\x42\r\n\x0boneof_value\"\xe1\x04\n\x07TestMap\x12.\n\x08\x62ool_map\x18\x01 \x03(\x0b\x32\x1c.proto3.TestMap.BoolMapEntry\x12\x30\n\tint32_map\x18\x02 \x03(\x0b\x32\x1d.proto3.TestMap.Int32MapEntry\x12\x30\n\tint64_map\x18\x03 \x03(\x0b\x32\x1d.proto3.TestMap.Int64MapEntry\x12\x32\n\nuint32_map\x18\x04 \x03(\x0b\x32\x1e.proto3.TestMap.Uint32MapEntry\x12\x32\n\nuint64_map\x18\x05 \x03(\x0b\x32\x1e.proto3.TestMap.Uint64MapEntry\x12\x32\n\nstring_map\x18\x06 \x03(\x0b\x32\x1e.proto3.TestMap.StringMapEntry\x1a.\n\x0c\x42oolMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a/\n\rInt32MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a/\n\rInt64MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x30\n\x0eUint32MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x30\n\x0eUint64MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x30\n\x0eStringMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"\x85\x06\n\rTestNestedMap\x12\x34\n\x08\x62ool_map\x18\x01 \x03(\x0b\x32\".proto3.TestNestedMap.BoolMapEntry\x12\x36\n\tint32_map\x18\x02 \x03(\x0b\x32#.proto3.TestNestedMap.Int32MapEntry\x12\x36\n\tint64_map\x18\x03 \x03(\x0b\x32#.proto3.TestNestedMap.Int64MapEntry\x12\x38\n\nuint32_map\x18\x04 \x03(\x0b\x32$.proto3.TestNestedMap.Uint32MapEntry\x12\x38\n\nuint64_map\x18\x05 \x03(\x0b\x32$.proto3.TestNestedMap.Uint64MapEntry\x12\x38\n\nstring_map\x18\x06 \x03(\x0b\x32$.proto3.TestNestedMap.StringMapEntry\x12\x32\n\x07map_map\x18\x07 \x03(\x0b\x32!.proto3.TestNestedMap.MapMapEntry\x1a.\n\x0c\x42oolMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a/\n\rInt32MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a/\n\rInt64MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x30\n\x0eUint32MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x30\n\x0eUint64MapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x30\n\x0eStringMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x44\n\x0bMapMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12$\n\x05value\x18\x02 \x01(\x0b\x32\x15.proto3.TestNestedMap:\x02\x38\x01\"\xee\x07\n\x0bTestWrapper\x12.\n\nbool_value\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x30\n\x0bint32_value\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x30\n\x0bint64_value\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int64Value\x12\x32\n\x0cuint32_value\x18\x04 \x01(\x0b\x32\x1c.google.protobuf.UInt32Value\x12\x32\n\x0cuint64_value\x18\x05 \x01(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x30\n\x0b\x66loat_value\x18\x06 \x01(\x0b\x32\x1b.google.protobuf.FloatValue\x12\x32\n\x0c\x64ouble_value\x18\x07 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12\x32\n\x0cstring_value\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x30\n\x0b\x62ytes_value\x18\t \x01(\x0b\x32\x1b.google.protobuf.BytesValue\x12\x37\n\x13repeated_bool_value\x18\x0b \x03(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x39\n\x14repeated_int32_value\x18\x0c \x03(\x0b\x32\x1b.google.protobuf.Int32Value\x12\x39\n\x14repeated_int64_value\x18\r \x03(\x0b\x32\x1b.google.protobuf.Int64Value\x12;\n\x15repeated_uint32_value\x18\x0e \x03(\x0b\x32\x1c.google.protobuf.UInt32Value\x12;\n\x15repeated_uint64_value\x18\x0f \x03(\x0b\x32\x1c.google.protobuf.UInt64Value\x12\x39\n\x14repeated_float_value\x18\x10 \x03(\x0b\x32\x1b.google.protobuf.FloatValue\x12;\n\x15repeated_double_value\x18\x11 \x03(\x0b\x32\x1c.google.protobuf.DoubleValue\x12;\n\x15repeated_string_value\x18\x12 \x03(\x0b\x32\x1c.google.protobuf.StringValue\x12\x39\n\x14repeated_bytes_value\x18\x13 \x03(\x0b\x32\x1b.google.protobuf.BytesValue\"n\n\rTestTimestamp\x12)\n\x05value\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x32\n\x0erepeated_value\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.Timestamp\"k\n\x0cTestDuration\x12(\n\x05value\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x31\n\x0erepeated_value\x18\x02 \x03(\x0b\x32\x19.google.protobuf.Duration\":\n\rTestFieldMask\x12)\n\x05value\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMask\"e\n\nTestStruct\x12&\n\x05value\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\x12/\n\x0erepeated_value\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\"\\\n\x07TestAny\x12#\n\x05value\x18\x01 \x01(\x0b\x32\x14.google.protobuf.Any\x12,\n\x0erepeated_value\x18\x02 \x03(\x0b\x32\x14.google.protobuf.Any\"b\n\tTestValue\x12%\n\x05value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.Value\x12.\n\x0erepeated_value\x18\x02 \x03(\x0b\x32\x16.google.protobuf.Value\"n\n\rTestListValue\x12)\n\x05value\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.ListValue\x12\x32\n\x0erepeated_value\x18\x02 \x03(\x0b\x32\x1a.google.protobuf.ListValue\"\x89\x01\n\rTestBoolValue\x12\x12\n\nbool_value\x18\x01 \x01(\x08\x12\x34\n\x08\x62ool_map\x18\x02 \x03(\x0b\x32\".proto3.TestBoolValue.BoolMapEntry\x1a.\n\x0c\x42oolMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"+\n\x12TestCustomJsonName\x12\x15\n\x05value\x18\x01 \x01(\x05R\x06@value\"J\n\x0eTestExtensions\x12\x38\n\nextensions\x18\x01 \x01(\x0b\x32$.protobuf_unittest.TestAllExtensions*\x1c\n\x08\x45numType\x12\x07\n\x03\x46OO\x10\x00\x12\x07\n\x03\x42\x41R\x10\x01\x42,\n\x18\x63om.google.protobuf.utilB\x10JsonFormatProto3b\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_protobuf_dot_unittest__pb2.DESCRIPTOR,])

_ENUMTYPE = _descriptor.EnumDescriptor(
  name='EnumType',
  full_name='proto3.EnumType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4533,
  serialized_end=4561,
)
_sym_db.RegisterEnumDescriptor(_ENUMTYPE)

EnumType = enum_type_wrapper.EnumTypeWrapper(_ENUMTYPE)
FOO = 0
BAR = 1



_MESSAGETYPE = _descriptor.Descriptor(
  name='MessageType',
  full_name='proto3.MessageType',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.MessageType.value', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=277,
  serialized_end=305,
)


_TESTMESSAGE = _descriptor.Descriptor(
  name='TestMessage',
  full_name='proto3.TestMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bool_value', full_name='proto3.TestMessage.bool_value', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='int32_value', full_name='proto3.TestMessage.int32_value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='int64_value', full_name='proto3.TestMessage.int64_value', index=2,
      number=3, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uint32_value', full_name='proto3.TestMessage.uint32_value', index=3,
      number=4, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uint64_value', full_name='proto3.TestMessage.uint64_value', index=4,
      number=5, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='float_value', full_name='proto3.TestMessage.float_value', index=5,
      number=6, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='double_value', full_name='proto3.TestMessage.double_value', index=6,
      number=7, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_value', full_name='proto3.TestMessage.string_value', index=7,
      number=8, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bytes_value', full_name='proto3.TestMessage.bytes_value', index=8,
      number=9, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='enum_value', full_name='proto3.TestMessage.enum_value', index=9,
      number=10, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='message_value', full_name='proto3.TestMessage.message_value', index=10,
      number=11, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool_value', full_name='proto3.TestMessage.repeated_bool_value', index=11,
      number=21, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int32_value', full_name='proto3.TestMessage.repeated_int32_value', index=12,
      number=22, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64_value', full_name='proto3.TestMessage.repeated_int64_value', index=13,
      number=23, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32_value', full_name='proto3.TestMessage.repeated_uint32_value', index=14,
      number=24, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64_value', full_name='proto3.TestMessage.repeated_uint64_value', index=15,
      number=25, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float_value', full_name='proto3.TestMessage.repeated_float_value', index=16,
      number=26, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double_value', full_name='proto3.TestMessage.repeated_double_value', index=17,
      number=27, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string_value', full_name='proto3.TestMessage.repeated_string_value', index=18,
      number=28, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bytes_value', full_name='proto3.TestMessage.repeated_bytes_value', index=19,
      number=29, type=12, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_enum_value', full_name='proto3.TestMessage.repeated_enum_value', index=20,
      number=30, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_message_value', full_name='proto3.TestMessage.repeated_message_value', index=21,
      number=31, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=308,
  serialized_end=968,
)


_TESTONEOF = _descriptor.Descriptor(
  name='TestOneof',
  full_name='proto3.TestOneof',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='oneof_int32_value', full_name='proto3.TestOneof.oneof_int32_value', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_string_value', full_name='proto3.TestOneof.oneof_string_value', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_bytes_value', full_name='proto3.TestOneof.oneof_bytes_value', index=2,
      number=3, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_enum_value', full_name='proto3.TestOneof.oneof_enum_value', index=3,
      number=4, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_message_value', full_name='proto3.TestOneof.oneof_message_value', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='oneof_value', full_name='proto3.TestOneof.oneof_value',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=971,
  serialized_end=1183,
)


_TESTMAP_BOOLMAPENTRY = _descriptor.Descriptor(
  name='BoolMapEntry',
  full_name='proto3.TestMap.BoolMapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestMap.BoolMapEntry.key', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestMap.BoolMapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1501,
  serialized_end=1547,
)

_TESTMAP_INT32MAPENTRY = _descriptor.Descriptor(
  name='Int32MapEntry',
  full_name='proto3.TestMap.Int32MapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestMap.Int32MapEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestMap.Int32MapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1549,
  serialized_end=1596,
)

_TESTMAP_INT64MAPENTRY = _descriptor.Descriptor(
  name='Int64MapEntry',
  full_name='proto3.TestMap.Int64MapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestMap.Int64MapEntry.key', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestMap.Int64MapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1598,
  serialized_end=1645,
)

_TESTMAP_UINT32MAPENTRY = _descriptor.Descriptor(
  name='Uint32MapEntry',
  full_name='proto3.TestMap.Uint32MapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestMap.Uint32MapEntry.key', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestMap.Uint32MapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1647,
  serialized_end=1695,
)

_TESTMAP_UINT64MAPENTRY = _descriptor.Descriptor(
  name='Uint64MapEntry',
  full_name='proto3.TestMap.Uint64MapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestMap.Uint64MapEntry.key', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestMap.Uint64MapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1697,
  serialized_end=1745,
)

_TESTMAP_STRINGMAPENTRY = _descriptor.Descriptor(
  name='StringMapEntry',
  full_name='proto3.TestMap.StringMapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestMap.StringMapEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestMap.StringMapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1747,
  serialized_end=1795,
)

_TESTMAP = _descriptor.Descriptor(
  name='TestMap',
  full_name='proto3.TestMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bool_map', full_name='proto3.TestMap.bool_map', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='int32_map', full_name='proto3.TestMap.int32_map', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='int64_map', full_name='proto3.TestMap.int64_map', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uint32_map', full_name='proto3.TestMap.uint32_map', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uint64_map', full_name='proto3.TestMap.uint64_map', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_map', full_name='proto3.TestMap.string_map', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTMAP_BOOLMAPENTRY, _TESTMAP_INT32MAPENTRY, _TESTMAP_INT64MAPENTRY, _TESTMAP_UINT32MAPENTRY, _TESTMAP_UINT64MAPENTRY, _TESTMAP_STRINGMAPENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1186,
  serialized_end=1795,
)


_TESTNESTEDMAP_BOOLMAPENTRY = _descriptor.Descriptor(
  name='BoolMapEntry',
  full_name='proto3.TestNestedMap.BoolMapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestNestedMap.BoolMapEntry.key', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestNestedMap.BoolMapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1501,
  serialized_end=1547,
)

_TESTNESTEDMAP_INT32MAPENTRY = _descriptor.Descriptor(
  name='Int32MapEntry',
  full_name='proto3.TestNestedMap.Int32MapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestNestedMap.Int32MapEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestNestedMap.Int32MapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1549,
  serialized_end=1596,
)

_TESTNESTEDMAP_INT64MAPENTRY = _descriptor.Descriptor(
  name='Int64MapEntry',
  full_name='proto3.TestNestedMap.Int64MapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestNestedMap.Int64MapEntry.key', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestNestedMap.Int64MapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1598,
  serialized_end=1645,
)

_TESTNESTEDMAP_UINT32MAPENTRY = _descriptor.Descriptor(
  name='Uint32MapEntry',
  full_name='proto3.TestNestedMap.Uint32MapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestNestedMap.Uint32MapEntry.key', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestNestedMap.Uint32MapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1647,
  serialized_end=1695,
)

_TESTNESTEDMAP_UINT64MAPENTRY = _descriptor.Descriptor(
  name='Uint64MapEntry',
  full_name='proto3.TestNestedMap.Uint64MapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestNestedMap.Uint64MapEntry.key', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestNestedMap.Uint64MapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1697,
  serialized_end=1745,
)

_TESTNESTEDMAP_STRINGMAPENTRY = _descriptor.Descriptor(
  name='StringMapEntry',
  full_name='proto3.TestNestedMap.StringMapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestNestedMap.StringMapEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestNestedMap.StringMapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1747,
  serialized_end=1795,
)

_TESTNESTEDMAP_MAPMAPENTRY = _descriptor.Descriptor(
  name='MapMapEntry',
  full_name='proto3.TestNestedMap.MapMapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestNestedMap.MapMapEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestNestedMap.MapMapEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2503,
  serialized_end=2571,
)

_TESTNESTEDMAP = _descriptor.Descriptor(
  name='TestNestedMap',
  full_name='proto3.TestNestedMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bool_map', full_name='proto3.TestNestedMap.bool_map', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='int32_map', full_name='proto3.TestNestedMap.int32_map', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='int64_map', full_name='proto3.TestNestedMap.int64_map', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uint32_map', full_name='proto3.TestNestedMap.uint32_map', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uint64_map', full_name='proto3.TestNestedMap.uint64_map', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_map', full_name='proto3.TestNestedMap.string_map', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_map', full_name='proto3.TestNestedMap.map_map', index=6,
      number=7, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTNESTEDMAP_BOOLMAPENTRY, _TESTNESTEDMAP_INT32MAPENTRY, _TESTNESTEDMAP_INT64MAPENTRY, _TESTNESTEDMAP_UINT32MAPENTRY, _TESTNESTEDMAP_UINT64MAPENTRY, _TESTNESTEDMAP_STRINGMAPENTRY, _TESTNESTEDMAP_MAPMAPENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1798,
  serialized_end=2571,
)


_TESTWRAPPER = _descriptor.Descriptor(
  name='TestWrapper',
  full_name='proto3.TestWrapper',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bool_value', full_name='proto3.TestWrapper.bool_value', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='int32_value', full_name='proto3.TestWrapper.int32_value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='int64_value', full_name='proto3.TestWrapper.int64_value', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uint32_value', full_name='proto3.TestWrapper.uint32_value', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uint64_value', full_name='proto3.TestWrapper.uint64_value', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='float_value', full_name='proto3.TestWrapper.float_value', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='double_value', full_name='proto3.TestWrapper.double_value', index=6,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_value', full_name='proto3.TestWrapper.string_value', index=7,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bytes_value', full_name='proto3.TestWrapper.bytes_value', index=8,
      number=9, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool_value', full_name='proto3.TestWrapper.repeated_bool_value', index=9,
      number=11, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int32_value', full_name='proto3.TestWrapper.repeated_int32_value', index=10,
      number=12, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64_value', full_name='proto3.TestWrapper.repeated_int64_value', index=11,
      number=13, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32_value', full_name='proto3.TestWrapper.repeated_uint32_value', index=12,
      number=14, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64_value', full_name='proto3.TestWrapper.repeated_uint64_value', index=13,
      number=15, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float_value', full_name='proto3.TestWrapper.repeated_float_value', index=14,
      number=16, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double_value', full_name='proto3.TestWrapper.repeated_double_value', index=15,
      number=17, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string_value', full_name='proto3.TestWrapper.repeated_string_value', index=16,
      number=18, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bytes_value', full_name='proto3.TestWrapper.repeated_bytes_value', index=17,
      number=19, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2574,
  serialized_end=3580,
)


_TESTTIMESTAMP = _descriptor.Descriptor(
  name='TestTimestamp',
  full_name='proto3.TestTimestamp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestTimestamp.value', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_value', full_name='proto3.TestTimestamp.repeated_value', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3582,
  serialized_end=3692,
)


_TESTDURATION = _descriptor.Descriptor(
  name='TestDuration',
  full_name='proto3.TestDuration',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestDuration.value', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_value', full_name='proto3.TestDuration.repeated_value', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3694,
  serialized_end=3801,
)


_TESTFIELDMASK = _descriptor.Descriptor(
  name='TestFieldMask',
  full_name='proto3.TestFieldMask',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestFieldMask.value', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3803,
  serialized_end=3861,
)


_TESTSTRUCT = _descriptor.Descriptor(
  name='TestStruct',
  full_name='proto3.TestStruct',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestStruct.value', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_value', full_name='proto3.TestStruct.repeated_value', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3863,
  serialized_end=3964,
)


_TESTANY = _descriptor.Descriptor(
  name='TestAny',
  full_name='proto3.TestAny',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestAny.value', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_value', full_name='proto3.TestAny.repeated_value', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3966,
  serialized_end=4058,
)


_TESTVALUE = _descriptor.Descriptor(
  name='TestValue',
  full_name='proto3.TestValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestValue.value', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_value', full_name='proto3.TestValue.repeated_value', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4060,
  serialized_end=4158,
)


_TESTLISTVALUE = _descriptor.Descriptor(
  name='TestListValue',
  full_name='proto3.TestListValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestListValue.value', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_value', full_name='proto3.TestListValue.repeated_value', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4160,
  serialized_end=4270,
)


_TESTBOOLVALUE_BOOLMAPENTRY = _descriptor.Descriptor(
  name='BoolMapEntry',
  full_name='proto3.TestBoolValue.BoolMapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='proto3.TestBoolValue.BoolMapEntry.key', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestBoolValue.BoolMapEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1501,
  serialized_end=1547,
)

_TESTBOOLVALUE = _descriptor.Descriptor(
  name='TestBoolValue',
  full_name='proto3.TestBoolValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bool_value', full_name='proto3.TestBoolValue.bool_value', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bool_map', full_name='proto3.TestBoolValue.bool_map', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTBOOLVALUE_BOOLMAPENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4273,
  serialized_end=4410,
)


_TESTCUSTOMJSONNAME = _descriptor.Descriptor(
  name='TestCustomJsonName',
  full_name='proto3.TestCustomJsonName',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='proto3.TestCustomJsonName.value', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, json_name='@value', file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4412,
  serialized_end=4455,
)


_TESTEXTENSIONS = _descriptor.Descriptor(
  name='TestExtensions',
  full_name='proto3.TestExtensions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='extensions', full_name='proto3.TestExtensions.extensions', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4457,
  serialized_end=4531,
)

_TESTMESSAGE.fields_by_name['enum_value'].enum_type = _ENUMTYPE
_TESTMESSAGE.fields_by_name['message_value'].message_type = _MESSAGETYPE
_TESTMESSAGE.fields_by_name['repeated_enum_value'].enum_type = _ENUMTYPE
_TESTMESSAGE.fields_by_name['repeated_message_value'].message_type = _MESSAGETYPE
_TESTONEOF.fields_by_name['oneof_enum_value'].enum_type = _ENUMTYPE
_TESTONEOF.fields_by_name['oneof_message_value'].message_type = _MESSAGETYPE
_TESTONEOF.oneofs_by_name['oneof_value'].fields.append(
  _TESTONEOF.fields_by_name['oneof_int32_value'])
_TESTONEOF.fields_by_name['oneof_int32_value'].containing_oneof = _TESTONEOF.oneofs_by_name['oneof_value']
_TESTONEOF.oneofs_by_name['oneof_value'].fields.append(
  _TESTONEOF.fields_by_name['oneof_string_value'])
_TESTONEOF.fields_by_name['oneof_string_value'].containing_oneof = _TESTONEOF.oneofs_by_name['oneof_value']
_TESTONEOF.oneofs_by_name['oneof_value'].fields.append(
  _TESTONEOF.fields_by_name['oneof_bytes_value'])
_TESTONEOF.fields_by_name['oneof_bytes_value'].containing_oneof = _TESTONEOF.oneofs_by_name['oneof_value']
_TESTONEOF.oneofs_by_name['oneof_value'].fields.append(
  _TESTONEOF.fields_by_name['oneof_enum_value'])
_TESTONEOF.fields_by_name['oneof_enum_value'].containing_oneof = _TESTONEOF.oneofs_by_name['oneof_value']
_TESTONEOF.oneofs_by_name['oneof_value'].fields.append(
  _TESTONEOF.fields_by_name['oneof_message_value'])
_TESTONEOF.fields_by_name['oneof_message_value'].containing_oneof = _TESTONEOF.oneofs_by_name['oneof_value']
_TESTMAP_BOOLMAPENTRY.containing_type = _TESTMAP
_TESTMAP_INT32MAPENTRY.containing_type = _TESTMAP
_TESTMAP_INT64MAPENTRY.containing_type = _TESTMAP
_TESTMAP_UINT32MAPENTRY.containing_type = _TESTMAP
_TESTMAP_UINT64MAPENTRY.containing_type = _TESTMAP
_TESTMAP_STRINGMAPENTRY.containing_type = _TESTMAP
_TESTMAP.fields_by_name['bool_map'].message_type = _TESTMAP_BOOLMAPENTRY
_TESTMAP.fields_by_name['int32_map'].message_type = _TESTMAP_INT32MAPENTRY
_TESTMAP.fields_by_name['int64_map'].message_type = _TESTMAP_INT64MAPENTRY
_TESTMAP.fields_by_name['uint32_map'].message_type = _TESTMAP_UINT32MAPENTRY
_TESTMAP.fields_by_name['uint64_map'].message_type = _TESTMAP_UINT64MAPENTRY
_TESTMAP.fields_by_name['string_map'].message_type = _TESTMAP_STRINGMAPENTRY
_TESTNESTEDMAP_BOOLMAPENTRY.containing_type = _TESTNESTEDMAP
_TESTNESTEDMAP_INT32MAPENTRY.containing_type = _TESTNESTEDMAP
_TESTNESTEDMAP_INT64MAPENTRY.containing_type = _TESTNESTEDMAP
_TESTNESTEDMAP_UINT32MAPENTRY.containing_type = _TESTNESTEDMAP
_TESTNESTEDMAP_UINT64MAPENTRY.containing_type = _TESTNESTEDMAP
_TESTNESTEDMAP_STRINGMAPENTRY.containing_type = _TESTNESTEDMAP
_TESTNESTEDMAP_MAPMAPENTRY.fields_by_name['value'].message_type = _TESTNESTEDMAP
_TESTNESTEDMAP_MAPMAPENTRY.containing_type = _TESTNESTEDMAP
_TESTNESTEDMAP.fields_by_name['bool_map'].message_type = _TESTNESTEDMAP_BOOLMAPENTRY
_TESTNESTEDMAP.fields_by_name['int32_map'].message_type = _TESTNESTEDMAP_INT32MAPENTRY
_TESTNESTEDMAP.fields_by_name['int64_map'].message_type = _TESTNESTEDMAP_INT64MAPENTRY
_TESTNESTEDMAP.fields_by_name['uint32_map'].message_type = _TESTNESTEDMAP_UINT32MAPENTRY
_TESTNESTEDMAP.fields_by_name['uint64_map'].message_type = _TESTNESTEDMAP_UINT64MAPENTRY
_TESTNESTEDMAP.fields_by_name['string_map'].message_type = _TESTNESTEDMAP_STRINGMAPENTRY
_TESTNESTEDMAP.fields_by_name['map_map'].message_type = _TESTNESTEDMAP_MAPMAPENTRY
_TESTWRAPPER.fields_by_name['bool_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
_TESTWRAPPER.fields_by_name['int32_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE
_TESTWRAPPER.fields_by_name['int64_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_TESTWRAPPER.fields_by_name['uint32_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._UINT32VALUE
_TESTWRAPPER.fields_by_name['uint64_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._UINT64VALUE
_TESTWRAPPER.fields_by_name['float_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._FLOATVALUE
_TESTWRAPPER.fields_by_name['double_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE
_TESTWRAPPER.fields_by_name['string_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_TESTWRAPPER.fields_by_name['bytes_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE
_TESTWRAPPER.fields_by_name['repeated_bool_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
_TESTWRAPPER.fields_by_name['repeated_int32_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT32VALUE
_TESTWRAPPER.fields_by_name['repeated_int64_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._INT64VALUE
_TESTWRAPPER.fields_by_name['repeated_uint32_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._UINT32VALUE
_TESTWRAPPER.fields_by_name['repeated_uint64_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._UINT64VALUE
_TESTWRAPPER.fields_by_name['repeated_float_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._FLOATVALUE
_TESTWRAPPER.fields_by_name['repeated_double_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE
_TESTWRAPPER.fields_by_name['repeated_string_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_TESTWRAPPER.fields_by_name['repeated_bytes_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._BYTESVALUE
_TESTTIMESTAMP.fields_by_name['value'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_TESTTIMESTAMP.fields_by_name['repeated_value'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_TESTDURATION.fields_by_name['value'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
_TESTDURATION.fields_by_name['repeated_value'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
_TESTFIELDMASK.fields_by_name['value'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK
_TESTSTRUCT.fields_by_name['value'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
_TESTSTRUCT.fields_by_name['repeated_value'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
_TESTANY.fields_by_name['value'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_TESTANY.fields_by_name['repeated_value'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_TESTVALUE.fields_by_name['value'].message_type = google_dot_protobuf_dot_struct__pb2._VALUE
_TESTVALUE.fields_by_name['repeated_value'].message_type = google_dot_protobuf_dot_struct__pb2._VALUE
_TESTLISTVALUE.fields_by_name['value'].message_type = google_dot_protobuf_dot_struct__pb2._LISTVALUE
_TESTLISTVALUE.fields_by_name['repeated_value'].message_type = google_dot_protobuf_dot_struct__pb2._LISTVALUE
_TESTBOOLVALUE_BOOLMAPENTRY.containing_type = _TESTBOOLVALUE
_TESTBOOLVALUE.fields_by_name['bool_map'].message_type = _TESTBOOLVALUE_BOOLMAPENTRY
_TESTEXTENSIONS.fields_by_name['extensions'].message_type = google_dot_protobuf_dot_unittest__pb2._TESTALLEXTENSIONS
DESCRIPTOR.message_types_by_name['MessageType'] = _MESSAGETYPE
DESCRIPTOR.message_types_by_name['TestMessage'] = _TESTMESSAGE
DESCRIPTOR.message_types_by_name['TestOneof'] = _TESTONEOF
DESCRIPTOR.message_types_by_name['TestMap'] = _TESTMAP
DESCRIPTOR.message_types_by_name['TestNestedMap'] = _TESTNESTEDMAP
DESCRIPTOR.message_types_by_name['TestWrapper'] = _TESTWRAPPER
DESCRIPTOR.message_types_by_name['TestTimestamp'] = _TESTTIMESTAMP
DESCRIPTOR.message_types_by_name['TestDuration'] = _TESTDURATION
DESCRIPTOR.message_types_by_name['TestFieldMask'] = _TESTFIELDMASK
DESCRIPTOR.message_types_by_name['TestStruct'] = _TESTSTRUCT
DESCRIPTOR.message_types_by_name['TestAny'] = _TESTANY
DESCRIPTOR.message_types_by_name['TestValue'] = _TESTVALUE
DESCRIPTOR.message_types_by_name['TestListValue'] = _TESTLISTVALUE
DESCRIPTOR.message_types_by_name['TestBoolValue'] = _TESTBOOLVALUE
DESCRIPTOR.message_types_by_name['TestCustomJsonName'] = _TESTCUSTOMJSONNAME
DESCRIPTOR.message_types_by_name['TestExtensions'] = _TESTEXTENSIONS
DESCRIPTOR.enum_types_by_name['EnumType'] = _ENUMTYPE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

MessageType = _reflection.GeneratedProtocolMessageType('MessageType', (_message.Message,), dict(
  DESCRIPTOR = _MESSAGETYPE,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.MessageType)
  ))
_sym_db.RegisterMessage(MessageType)

TestMessage = _reflection.GeneratedProtocolMessageType('TestMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGE,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestMessage)
  ))
_sym_db.RegisterMessage(TestMessage)

TestOneof = _reflection.GeneratedProtocolMessageType('TestOneof', (_message.Message,), dict(
  DESCRIPTOR = _TESTONEOF,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestOneof)
  ))
_sym_db.RegisterMessage(TestOneof)

TestMap = _reflection.GeneratedProtocolMessageType('TestMap', (_message.Message,), dict(

  BoolMapEntry = _reflection.GeneratedProtocolMessageType('BoolMapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_BOOLMAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestMap.BoolMapEntry)
    ))
  ,

  Int32MapEntry = _reflection.GeneratedProtocolMessageType('Int32MapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_INT32MAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestMap.Int32MapEntry)
    ))
  ,

  Int64MapEntry = _reflection.GeneratedProtocolMessageType('Int64MapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_INT64MAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestMap.Int64MapEntry)
    ))
  ,

  Uint32MapEntry = _reflection.GeneratedProtocolMessageType('Uint32MapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_UINT32MAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestMap.Uint32MapEntry)
    ))
  ,

  Uint64MapEntry = _reflection.GeneratedProtocolMessageType('Uint64MapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_UINT64MAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestMap.Uint64MapEntry)
    ))
  ,

  StringMapEntry = _reflection.GeneratedProtocolMessageType('StringMapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_STRINGMAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestMap.StringMapEntry)
    ))
  ,
  DESCRIPTOR = _TESTMAP,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestMap)
  ))
_sym_db.RegisterMessage(TestMap)
_sym_db.RegisterMessage(TestMap.BoolMapEntry)
_sym_db.RegisterMessage(TestMap.Int32MapEntry)
_sym_db.RegisterMessage(TestMap.Int64MapEntry)
_sym_db.RegisterMessage(TestMap.Uint32MapEntry)
_sym_db.RegisterMessage(TestMap.Uint64MapEntry)
_sym_db.RegisterMessage(TestMap.StringMapEntry)

TestNestedMap = _reflection.GeneratedProtocolMessageType('TestNestedMap', (_message.Message,), dict(

  BoolMapEntry = _reflection.GeneratedProtocolMessageType('BoolMapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTNESTEDMAP_BOOLMAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestNestedMap.BoolMapEntry)
    ))
  ,

  Int32MapEntry = _reflection.GeneratedProtocolMessageType('Int32MapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTNESTEDMAP_INT32MAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestNestedMap.Int32MapEntry)
    ))
  ,

  Int64MapEntry = _reflection.GeneratedProtocolMessageType('Int64MapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTNESTEDMAP_INT64MAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestNestedMap.Int64MapEntry)
    ))
  ,

  Uint32MapEntry = _reflection.GeneratedProtocolMessageType('Uint32MapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTNESTEDMAP_UINT32MAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestNestedMap.Uint32MapEntry)
    ))
  ,

  Uint64MapEntry = _reflection.GeneratedProtocolMessageType('Uint64MapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTNESTEDMAP_UINT64MAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestNestedMap.Uint64MapEntry)
    ))
  ,

  StringMapEntry = _reflection.GeneratedProtocolMessageType('StringMapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTNESTEDMAP_STRINGMAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestNestedMap.StringMapEntry)
    ))
  ,

  MapMapEntry = _reflection.GeneratedProtocolMessageType('MapMapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTNESTEDMAP_MAPMAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestNestedMap.MapMapEntry)
    ))
  ,
  DESCRIPTOR = _TESTNESTEDMAP,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestNestedMap)
  ))
_sym_db.RegisterMessage(TestNestedMap)
_sym_db.RegisterMessage(TestNestedMap.BoolMapEntry)
_sym_db.RegisterMessage(TestNestedMap.Int32MapEntry)
_sym_db.RegisterMessage(TestNestedMap.Int64MapEntry)
_sym_db.RegisterMessage(TestNestedMap.Uint32MapEntry)
_sym_db.RegisterMessage(TestNestedMap.Uint64MapEntry)
_sym_db.RegisterMessage(TestNestedMap.StringMapEntry)
_sym_db.RegisterMessage(TestNestedMap.MapMapEntry)

TestWrapper = _reflection.GeneratedProtocolMessageType('TestWrapper', (_message.Message,), dict(
  DESCRIPTOR = _TESTWRAPPER,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestWrapper)
  ))
_sym_db.RegisterMessage(TestWrapper)

TestTimestamp = _reflection.GeneratedProtocolMessageType('TestTimestamp', (_message.Message,), dict(
  DESCRIPTOR = _TESTTIMESTAMP,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestTimestamp)
  ))
_sym_db.RegisterMessage(TestTimestamp)

TestDuration = _reflection.GeneratedProtocolMessageType('TestDuration', (_message.Message,), dict(
  DESCRIPTOR = _TESTDURATION,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestDuration)
  ))
_sym_db.RegisterMessage(TestDuration)

TestFieldMask = _reflection.GeneratedProtocolMessageType('TestFieldMask', (_message.Message,), dict(
  DESCRIPTOR = _TESTFIELDMASK,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestFieldMask)
  ))
_sym_db.RegisterMessage(TestFieldMask)

TestStruct = _reflection.GeneratedProtocolMessageType('TestStruct', (_message.Message,), dict(
  DESCRIPTOR = _TESTSTRUCT,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestStruct)
  ))
_sym_db.RegisterMessage(TestStruct)

TestAny = _reflection.GeneratedProtocolMessageType('TestAny', (_message.Message,), dict(
  DESCRIPTOR = _TESTANY,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestAny)
  ))
_sym_db.RegisterMessage(TestAny)

TestValue = _reflection.GeneratedProtocolMessageType('TestValue', (_message.Message,), dict(
  DESCRIPTOR = _TESTVALUE,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestValue)
  ))
_sym_db.RegisterMessage(TestValue)

TestListValue = _reflection.GeneratedProtocolMessageType('TestListValue', (_message.Message,), dict(
  DESCRIPTOR = _TESTLISTVALUE,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestListValue)
  ))
_sym_db.RegisterMessage(TestListValue)

TestBoolValue = _reflection.GeneratedProtocolMessageType('TestBoolValue', (_message.Message,), dict(

  BoolMapEntry = _reflection.GeneratedProtocolMessageType('BoolMapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTBOOLVALUE_BOOLMAPENTRY,
    __module__ = 'google.protobuf.util.json_format_proto3_pb2'
    # @@protoc_insertion_point(class_scope:proto3.TestBoolValue.BoolMapEntry)
    ))
  ,
  DESCRIPTOR = _TESTBOOLVALUE,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestBoolValue)
  ))
_sym_db.RegisterMessage(TestBoolValue)
_sym_db.RegisterMessage(TestBoolValue.BoolMapEntry)

TestCustomJsonName = _reflection.GeneratedProtocolMessageType('TestCustomJsonName', (_message.Message,), dict(
  DESCRIPTOR = _TESTCUSTOMJSONNAME,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestCustomJsonName)
  ))
_sym_db.RegisterMessage(TestCustomJsonName)

TestExtensions = _reflection.GeneratedProtocolMessageType('TestExtensions', (_message.Message,), dict(
  DESCRIPTOR = _TESTEXTENSIONS,
  __module__ = 'google.protobuf.util.json_format_proto3_pb2'
  # @@protoc_insertion_point(class_scope:proto3.TestExtensions)
  ))
_sym_db.RegisterMessage(TestExtensions)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\030com.google.protobuf.utilB\020JsonFormatProto3'))
_TESTMAP_BOOLMAPENTRY.has_options = True
_TESTMAP_BOOLMAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_INT32MAPENTRY.has_options = True
_TESTMAP_INT32MAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_INT64MAPENTRY.has_options = True
_TESTMAP_INT64MAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_UINT32MAPENTRY.has_options = True
_TESTMAP_UINT32MAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_UINT64MAPENTRY.has_options = True
_TESTMAP_UINT64MAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_STRINGMAPENTRY.has_options = True
_TESTMAP_STRINGMAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTNESTEDMAP_BOOLMAPENTRY.has_options = True
_TESTNESTEDMAP_BOOLMAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTNESTEDMAP_INT32MAPENTRY.has_options = True
_TESTNESTEDMAP_INT32MAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTNESTEDMAP_INT64MAPENTRY.has_options = True
_TESTNESTEDMAP_INT64MAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTNESTEDMAP_UINT32MAPENTRY.has_options = True
_TESTNESTEDMAP_UINT32MAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTNESTEDMAP_UINT64MAPENTRY.has_options = True
_TESTNESTEDMAP_UINT64MAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTNESTEDMAP_STRINGMAPENTRY.has_options = True
_TESTNESTEDMAP_STRINGMAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTNESTEDMAP_MAPMAPENTRY.has_options = True
_TESTNESTEDMAP_MAPMAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTBOOLVALUE_BOOLMAPENTRY.has_options = True
_TESTBOOLVALUE_BOOLMAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
# @@protoc_insertion_point(module_scope)
PK�\/"7��protobuf/util/__init__.pyonu�[����
���hc@sdS(N((((sA/usr/lib/python2.7/site-packages/google/protobuf/util/__init__.pyt<module>tPK�\0X[����(protobuf/util/json_format_proto3_pb2.pycnu�[����
���hcB@s�JddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZejddddddded�dej ej ej ej ej ej ej g�Z ej!ddddddde d ej#dd!d"dd#dd$dd%d�ej#dd&d"d'd#d'd$dd%d�gd(dd$dd)d*d+d,�	Z$ej%e$�ej&e$�Z'dZ(d'Z)ej*dd-dd.ddde d(dd/ej+dd0dd1d"dd#d'd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dAd+dB�Z-ej*ddCddDddde d(dd/ej+ddEddFd"dd#d'd%dGd3dHd4d'd5e,d6e,d7dd8dd(dd9e,d:dd$dde �ej+ddIddJd"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddLddMd"dKd#dd%dd3dKd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddNddOd"dd#dPd%dQd3dd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddRddSd"dPd#d2d%dPd3dPd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddTddUd"d2d#dVd%dKd3dVd4d'd5e,d6e.d�d7dd8dd(dd9e,d:dd$dde �ej+ddWddXd"dVd#dHd%d'd3d2d4d'd5e,d6e.d�d7dd8dd(dd9e,d:dd$dde �ej+ddYddZd"dHd#dGd%d[d3d[d4d'd5e,d6ed\�j/d]�d7dd8dd(dd9e,d:dd$dde �ej+dd^dd_d"dGd#d[d%d`d3d[d4d'd5e,d6ed\�d7dd8dd(dd9e,d:dd$dde �ej+ddaddbd"d[d#dcd%ddd3dGd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddeddfd"dcd#dgd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddhddid"dgd#djd%dGd3dHd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddkddld"d`d#dmd%d2d3d'd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddnddod"dQd#dpd%dd3dKd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddqddrd"ddd#dsd%dQd3dd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddtddud"dvd#dwd%dPd3dPd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddxddyd"dzd#d{d%dKd3dVd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd|dd}d"d~d#dd%d'd3d2d4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d�d#d�d%d[d3d[d4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d�d#d�d%d`d3d[d4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d�d#d�d%ddd3dGd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"djd#d�d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d�d+d��Z0ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d'd#dKd%d[d3d[d4d'd5e,d6ed\�j/d]�d7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dKd#dd%d`d3d[d4d'd5e,d6ed\�d7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dd#dPd%ddd3dGd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dPd#d2d%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@ej1dd�dd�d"dd(dd/g�gd)d�d+d��Z2ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dGd3dHd4d'd5e,d6e,d7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z5ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z6ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dd3dKd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z7ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dQd3dd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z8ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dPd3dPd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z9ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d[d3d[d4d'd5e,d6ed\�j/d]�d7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z:ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dKd#dd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dd#dPd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dPd#d2d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d2d#dVd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<e5e6e7e8e9e:gd=gd$dd>e,ddd?gd@gd)d�d+d��Z;ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dGd3dHd4d'd5e,d6e,d7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z<ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z=ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dd3dKd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z>ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dQd3dd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z?ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dPd3dPd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��Z@ej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d[d3d[d4d'd5e,d6ed\�j/d]�d7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��ZAej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%d[d3d[d4d'd5e,d6ed\�j/d]�d7dd8dd(dd9e,d:dd$dde �ej+dd0dd�d"d'd#dKd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��ZBej*dd�dd�ddde d(dd/ej+dd�dd�d"dd#d'd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dKd#dd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dd#dPd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dPd#d2d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"d2d#dVd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�dd�d"dVd#dHd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<e<e=e>e?e@eAeBgd=gd$dd>e,ddd?gd@gd)d�d+d��ZCej*dd�dd�ddde d(dd/ej+ddEdd�d"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddIdd�d"d'd#dKd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddLdd�d"dKd#dd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddNdd�d"dd#dPd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddRdd�d"dPd#d2d%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddTddd"d2d#dVd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddWddd"dVd#dHd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddYddd"dHd#dGd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dd^ddd"dGd#d[d%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddhddd"d[d#dgd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddkddd"dcd#d`d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddnddd"dgd#dQd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddqddd"d`d#ddd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddtddd"dQd#dvd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+ddxdd	d"ddd#dzd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd|dd
d"dvd#d~d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�ddd"dzd#d�d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �ej+dd�ddd"d~d#d�d%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d
d+d�ZDej*ddddddde d(dd/ej+dd0ddd"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddddd"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dd+d�ZEej*ddddddde d(dd/ej+dd0ddd"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+ddddd"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dd+d�ZFej*ddddddde d(dd/ej+dd0ddd"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dd+d �ZGej*dd!dd"ddde d(dd/ej+dd0dd#d"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dddd$d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d%d+d&�ZHej*dd'dd(ddde d(dd/ej+dd0dd)d"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dddd*d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d+d+d,�ZIej*dd-dd.ddde d(dd/ej+dd0dd/d"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dddd0d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d1d+d2�ZJej*dd3dd4ddde d(dd/ej+dd0dd5d"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �ej+dddd6d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)d7d+d8�ZKej*dd�dd9ddde d(dd/ej+dd�dd:d"dd#d'd%dGd3dHd4d'd5e,d6e,d7dd8dd(dd9e,d:dd$dde �ej+dd0dd;d"d'd#dKd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$ej3ej4�ed���d>e,ddd?gd@gd)d�d+d��ZLej*dd<dd=ddde d(dd/ej+ddEdd>d"dd#d'd%dGd3dHd4d'd5e,d6e,d7dd8dd(dd9e,d:dd$dde �ej+dd�dd?d"d'd#dKd%dgd3dcd4dd5e,d6gd7dd8dd(dd9e,d:dd$dde �gd;gd<eLgd=gd$dd>e,ddd?gd@gd)d@d+dA�ZMej*ddBddCddde d(dd/ej+dd0ddDd"dd#d'd%d2d3d'd4d'd5e,d6dd7dd8dd(dd9e,d:dd$ddEdFde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dGd+dH�ZNej*ddIddJddde d(dd/ej+dd;ddKd"dd#d'd%dgd3dcd4d'd5e,d6dd7dd8dd(dd9e,d:dd$dde �gd;gd<gd=gd$dd>e,ddd?gd@gd)dLd+dM�ZOe$e0jPda_Qe-e0jPde_Re$e0jPd�_Qe-e0jPd�_Re$e2jPd�_Qe-e2jPd�_Re2jSd�jTjUe2jPd��e2jSd�e2jPd�_Ve2jSd�jTjUe2jPd��e2jSd�e2jPd�_Ve2jSd�jTjUe2jPd��e2jSd�e2jPd�_Ve2jSd�jTjUe2jPd��e2jSd�e2jPd�_Ve2jSd�jTjUe2jPd��e2jSd�e2jPd�_Ve;e5_We;e6_We;e7_We;e8_We;e9_We;e:_We5e;jPd�_Re6e;jPd�_Re7e;jPd�_Re8e;jPd�_Re9e;jPd�_Re:e;jPd�_ReCe<_WeCe=_WeCe>_WeCe?_WeCe@_WeCeA_WeCeBjPd0_ReCeB_We<eCjPd�_Re=eCjPd�_Re>eCjPd�_Re?eCjPd�_Re@eCjPd�_ReAeCjPd�_ReBeCjPd�_RejXeDjPdE_RejYeDjPdI_RejZeDjPdL_Rej[eDjPdN_Rej\eDjPdR_Rej]eDjPdT_Rej^eDjPdW_Rej_eDjPdY_Rej`eDjPd^_RejXeDjPdh_RejYeDjPdk_RejZeDjPdn_Rej[eDjPdq_Rej\eDjPdt_Rej]eDjPdx_Rej^eDjPd|_Rej_eDjPd�_Rej`eDjPd�_RejaeEjPd0_RejaeEjPd_RejbeFjPd0_RejbeFjPd_RejceGjPd0_RejdeHjPd0_RejdeHjPd_RejeeIjPd0_RejeeIjPd_RejfeJjPd0_RejfeJjPd_RejgeKjPd0_RejgeKjPd_ReMeL_WeLeMjPd�_RejheOjPd;_Re-e jid-<e0e jidC<e2e jid�<e;e jid�<eCe jid�<eDe jid�<eEe jid<eFe jid<eGe jid<eHe jid!<eIe jid'<eJe jid-<eKe jid3<eMe jid<<eNe jidB<eOe jidI<e$e jjd<ejke �ejld-e	jmfendNe-dOdP��Zoejpeo�ejldCe	jmfendNe0dOdP��Zqejpeq�ejld�e	jmfendNe2dOdP��Zrejper�ejld�e	jmfend�ejld�e	jmfendNe5dOdP��d�ejld�e	jmfendNe6dOdP��d�ejld�e	jmfendNe7dOdP��d�ejld�e	jmfendNe8dOdP��d�ejld�e	jmfendNe9dOdP��d�ejld�e	jmfendNe:dOdP��dNe;dOdP��Zsejpes�ejpesjt�ejpesju�ejpesjv�ejpesjw�ejpesjx�ejpesjy�ejld�e	jmfend�ejld�e	jmfendNe<dOdP��d�ejld�e	jmfendNe=dOdP��d�ejld�e	jmfendNe>dOdP��d�ejld�e	jmfendNe?dOdP��d�ejld�e	jmfendNe@dOdP��d�ejld�e	jmfendNeAdOdP��d�ejld�e	jmfendNeBdOdP��dNeCdOdP�	�Zzejpez�ejpezjt�ejpezju�ejpezjv�ejpezjw�ejpezjx�ejpezjy�ejpezj{�ejld�e	jmfendNeDdOdP��Z|ejpe|�ejlde	jmfendNeEdOdP��Z}ejpe}�ejlde	jmfendNeFdOdP��Z~ejpe~�ejlde	jmfendNeGdOdP��Zejpe�ejld!e	jmfendNeHdOdP��Z�ejpe��ejld'e	jmfendNeIdOdP��Z�ejpe��ejld-e	jmfendNeJdOdP��Z�ejpe��ejld3e	jmfendNeKdOdP��Z�ejpe��ejld<e	jmfend�ejld�e	jmfendNeLdOdP��dNeMdOdP��Z�ejpe��ejpe�jt�ejldBe	jmfendNeNdOdP��Z�ejpe��ejldIe	jmfendNeOdOdP��Z�ejpe��e�e _�ej3ej��edQ��e _�e�e5_�ej3ej4�ed���e5_�e�e6_�ej3ej4�ed���e6_�e�e7_�ej3ej4�ed���e7_�e�e8_�ej3ej4�ed���e8_�e�e9_�ej3ej4�ed���e9_�e�e:_�ej3ej4�ed���e:_�e�e<_�ej3ej4�ed���e<_�e�e=_�ej3ej4�ed���e=_�e�e>_�ej3ej4�ed���e>_�e�e?_�ej3ej4�ed���e?_�e�e@_�ej3ej4�ed���e@_�e�eA_�ej3ej4�ed���eA_�e�eB_�ej3ej4�ed���eB_�e�eL_�ej3ej4�ed���eL_�dS(Ri����NiicCs|S(N((tx((sO/usr/lib/python2.7/site-packages/google/protobuf/util/json_format_proto3_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sO/usr/lib/python2.7/site-packages/google/protobuf/util/json_format_proto3_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tduration_pb2(t
timestamp_pb2(twrappers_pb2(t
struct_pb2(tany_pb2(tfield_mask_pb2(tunittest_pb2tnames-google/protobuf/util/json_format_proto3.prototpackagetproto3tsyntaxt
serialized_pbs
-google/protobuf/util/json_format_proto3.protoproto3google/protobuf/duration.protogoogle/protobuf/timestamp.protogoogle/protobuf/wrappers.protogoogle/protobuf/struct.protogoogle/protobuf/any.proto google/protobuf/field_mask.protogoogle/protobuf/unittest.proto"
MessageType
value ("�
TestMessage

bool_value (
int32_value (
int64_value (
uint32_value (

uint64_value (
float_value (
double_value (
string_value (	
bytes_value	 ($

enum_value
 (2.proto3.EnumType*

message_value (2.proto3.MessageType
repeated_bool_value (
repeated_int32_value (
repeated_int64_value (
repeated_uint32_value (

repeated_uint64_value (
repeated_float_value (
repeated_double_value (
repeated_string_value (	
repeated_bytes_value (-
repeated_enum_value (2.proto3.EnumType3
repeated_message_value (2.proto3.MessageType"�
	TestOneof
oneof_int32_value (H
oneof_string_value (	H
oneof_bytes_value (H,
oneof_enum_value (2.proto3.EnumTypeH2
oneof_message_value (2.proto3.MessageTypeHB
oneof_value"�
TestMap.
bool_map (2.proto3.TestMap.BoolMapEntry0
	int32_map (2.proto3.TestMap.Int32MapEntry0
	int64_map (2.proto3.TestMap.Int64MapEntry2

uint32_map (2.proto3.TestMap.Uint32MapEntry2

uint64_map (2.proto3.TestMap.Uint64MapEntry2

string_map (2.proto3.TestMap.StringMapEntry.
BoolMapEntry
key (
value (:8/

Int32MapEntry
key (
value (:8/

Int64MapEntry
key (
value (:80
Uint32MapEntry
key (

value (:80
Uint64MapEntry
key (
value (:80
StringMapEntry
key (	
value (:8"�

TestNestedMap4
bool_map (2".proto3.TestNestedMap.BoolMapEntry6
	int32_map (2#.proto3.TestNestedMap.Int32MapEntry6
	int64_map (2#.proto3.TestNestedMap.Int64MapEntry8

uint32_map (2$.proto3.TestNestedMap.Uint32MapEntry8

uint64_map (2$.proto3.TestNestedMap.Uint64MapEntry8

string_map (2$.proto3.TestNestedMap.StringMapEntry2
map_map (2!.proto3.TestNestedMap.MapMapEntry.
BoolMapEntry
key (
value (:8/

Int32MapEntry
key (
value (:8/

Int64MapEntry
key (
value (:80
Uint32MapEntry
key (

value (:80
Uint64MapEntry
key (
value (:80
StringMapEntry
key (	
value (:8D
MapMapEntry
key (	$
value (2.proto3.TestNestedMap:8"�
TestWrapper.

bool_value (2.google.protobuf.BoolValue0
int32_value (2.google.protobuf.Int32Value0
int64_value (2.google.protobuf.Int64Value2
uint32_value (2.google.protobuf.UInt32Value2
uint64_value (2.google.protobuf.UInt64Value0
float_value (2.google.protobuf.FloatValue2
double_value (2.google.protobuf.DoubleValue2
string_value (2.google.protobuf.StringValue0
bytes_value	 (2.google.protobuf.BytesValue7
repeated_bool_value (2.google.protobuf.BoolValue9
repeated_int32_value (2.google.protobuf.Int32Value9
repeated_int64_value
 (2.google.protobuf.Int64Value;
repeated_uint32_value (2.google.protobuf.UInt32Value;
repeated_uint64_value (2.google.protobuf.UInt64Value9
repeated_float_value (2.google.protobuf.FloatValue;
repeated_double_value (2.google.protobuf.DoubleValue;
repeated_string_value (2.google.protobuf.StringValue9
repeated_bytes_value (2.google.protobuf.BytesValue"n

TestTimestamp)
value (2.google.protobuf.Timestamp2
repeated_value (2.google.protobuf.Timestamp"k
TestDuration(
value (2.google.protobuf.Duration1
repeated_value (2.google.protobuf.Duration":

TestFieldMask)
value (2.google.protobuf.FieldMask"e

TestStruct&
value (2.google.protobuf.Struct/
repeated_value (2.google.protobuf.Struct"\
TestAny#
value (2.google.protobuf.Any,
repeated_value (2.google.protobuf.Any"b
	TestValue%
value (2.google.protobuf.Value.
repeated_value (2.google.protobuf.Value"n

TestListValue)
value (2.google.protobuf.ListValue2
repeated_value (2.google.protobuf.ListValue"�

TestBoolValue

bool_value (4
bool_map (2".proto3.TestBoolValue.BoolMapEntry.
BoolMapEntry
key (
value (:8"+
TestCustomJsonName
value (R@value"J
TestExtensions8

extensions (2$.protobuf_unittest.TestAllExtensions*
EnumType
FOO
BARB,
com.google.protobuf.utilBJsonFormatProto3bproto3tdependenciestEnumTypet	full_namesproto3.EnumTypetfilenametfiletvaluestFOOtindextnumbertoptionsttypetBARitcontaining_typetserialized_starti�tserialized_endi�tMessageTypesproto3.MessageTypetfieldstvaluesproto3.MessageType.valueitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsii1tTestMessagesproto3.TestMessaget
bool_valuesproto3.TestMessage.bool_valueiitint32_valuesproto3.TestMessage.int32_valueitint64_valuesproto3.TestMessage.int64_valuetuint32_valuesproto3.TestMessage.uint32_valueii
tuint64_valuesproto3.TestMessage.uint64_valuetfloat_valuesproto3.TestMessage.float_valueitdouble_valuesproto3.TestMessage.double_valuetstring_valuesproto3.TestMessage.string_valuei	Rsutf-8tbytes_valuesproto3.TestMessage.bytes_valueit
enum_valuesproto3.TestMessage.enum_valuei
it
message_values proto3.TestMessage.message_valueitrepeated_bool_values&proto3.TestMessage.repeated_bool_valueitrepeated_int32_values'proto3.TestMessage.repeated_int32_valueitrepeated_int64_values'proto3.TestMessage.repeated_int64_valueitrepeated_uint32_values(proto3.TestMessage.repeated_uint32_valueitrepeated_uint64_values(proto3.TestMessage.repeated_uint64_valueiitrepeated_float_values'proto3.TestMessage.repeated_float_valueiitrepeated_double_values(proto3.TestMessage.repeated_double_valueiitrepeated_string_values(proto3.TestMessage.repeated_string_valueiitrepeated_bytes_values'proto3.TestMessage.repeated_bytes_valueiitrepeated_enum_values&proto3.TestMessage.repeated_enum_valueiitrepeated_message_values)proto3.TestMessage.repeated_message_valueii4i�t	TestOneofsproto3.TestOneoftoneof_int32_values"proto3.TestOneof.oneof_int32_valuetoneof_string_values#proto3.TestOneof.oneof_string_valuetoneof_bytes_values"proto3.TestOneof.oneof_bytes_valuetoneof_enum_values!proto3.TestOneof.oneof_enum_valuetoneof_message_values$proto3.TestOneof.oneof_message_valuetoneof_valuesproto3.TestOneof.oneof_valuei�i�tBoolMapEntrysproto3.TestMap.BoolMapEntrytkeysproto3.TestMap.BoolMapEntry.keys!proto3.TestMap.BoolMapEntry.values8i�it
Int32MapEntrysproto3.TestMap.Int32MapEntrys proto3.TestMap.Int32MapEntry.keys"proto3.TestMap.Int32MapEntry.valuei
i<t
Int64MapEntrysproto3.TestMap.Int64MapEntrys proto3.TestMap.Int64MapEntry.keys"proto3.TestMap.Int64MapEntry.valuei>imtUint32MapEntrysproto3.TestMap.Uint32MapEntrys!proto3.TestMap.Uint32MapEntry.keys#proto3.TestMap.Uint32MapEntry.valueioi�tUint64MapEntrysproto3.TestMap.Uint64MapEntrys!proto3.TestMap.Uint64MapEntry.keys#proto3.TestMap.Uint64MapEntry.valuei�i�tStringMapEntrysproto3.TestMap.StringMapEntrys!proto3.TestMap.StringMapEntry.keys#proto3.TestMap.StringMapEntry.valuei�itTestMapsproto3.TestMaptbool_mapsproto3.TestMap.bool_mapt	int32_mapsproto3.TestMap.int32_mapt	int64_mapsproto3.TestMap.int64_mapt
uint32_mapsproto3.TestMap.uint32_mapt
uint64_mapsproto3.TestMap.uint64_mapt
string_mapsproto3.TestMap.string_mapi�s!proto3.TestNestedMap.BoolMapEntrys%proto3.TestNestedMap.BoolMapEntry.keys'proto3.TestNestedMap.BoolMapEntry.values"proto3.TestNestedMap.Int32MapEntrys&proto3.TestNestedMap.Int32MapEntry.keys(proto3.TestNestedMap.Int32MapEntry.values"proto3.TestNestedMap.Int64MapEntrys&proto3.TestNestedMap.Int64MapEntry.keys(proto3.TestNestedMap.Int64MapEntry.values#proto3.TestNestedMap.Uint32MapEntrys'proto3.TestNestedMap.Uint32MapEntry.keys)proto3.TestNestedMap.Uint32MapEntry.values#proto3.TestNestedMap.Uint64MapEntrys'proto3.TestNestedMap.Uint64MapEntry.keys)proto3.TestNestedMap.Uint64MapEntry.values#proto3.TestNestedMap.StringMapEntrys'proto3.TestNestedMap.StringMapEntry.keys)proto3.TestNestedMap.StringMapEntry.valuetMapMapEntrys proto3.TestNestedMap.MapMapEntrys$proto3.TestNestedMap.MapMapEntry.keys&proto3.TestNestedMap.MapMapEntry.valuei�	i
t
TestNestedMapsproto3.TestNestedMapsproto3.TestNestedMap.bool_mapsproto3.TestNestedMap.int32_mapsproto3.TestNestedMap.int64_mapsproto3.TestNestedMap.uint32_mapsproto3.TestNestedMap.uint64_mapsproto3.TestNestedMap.string_maptmap_mapsproto3.TestNestedMap.map_mapitTestWrappersproto3.TestWrappersproto3.TestWrapper.bool_valuesproto3.TestWrapper.int32_valuesproto3.TestWrapper.int64_valuesproto3.TestWrapper.uint32_valuesproto3.TestWrapper.uint64_valuesproto3.TestWrapper.float_valuesproto3.TestWrapper.double_valuesproto3.TestWrapper.string_valuesproto3.TestWrapper.bytes_values&proto3.TestWrapper.repeated_bool_values'proto3.TestWrapper.repeated_int32_values'proto3.TestWrapper.repeated_int64_values(proto3.TestWrapper.repeated_uint32_values(proto3.TestWrapper.repeated_uint64_values'proto3.TestWrapper.repeated_float_values(proto3.TestWrapper.repeated_double_values(proto3.TestWrapper.repeated_string_values'proto3.TestWrapper.repeated_bytes_valuei
i�
t
TestTimestampsproto3.TestTimestampsproto3.TestTimestamp.valuetrepeated_values#proto3.TestTimestamp.repeated_valuei�
iltTestDurationsproto3.TestDurationsproto3.TestDuration.values"proto3.TestDuration.repeated_valueini�t
TestFieldMasksproto3.TestFieldMasksproto3.TestFieldMask.valuei�it
TestStructsproto3.TestStructsproto3.TestStruct.values proto3.TestStruct.repeated_valueii|tTestAnysproto3.TestAnysproto3.TestAny.valuesproto3.TestAny.repeated_valuei~i�t	TestValuesproto3.TestValuesproto3.TestValue.valuesproto3.TestValue.repeated_valuei�i>t
TestListValuesproto3.TestListValuesproto3.TestListValue.values#proto3.TestListValue.repeated_valuei@i�s!proto3.TestBoolValue.BoolMapEntrys%proto3.TestBoolValue.BoolMapEntry.keys'proto3.TestBoolValue.BoolMapEntry.valuet
TestBoolValuesproto3.TestBoolValuesproto3.TestBoolValue.bool_valuesproto3.TestBoolValue.bool_mapi�i:tTestCustomJsonNamesproto3.TestCustomJsonNamesproto3.TestCustomJsonName.valuet	json_names@valuei<igtTestExtensionssproto3.TestExtensionss proto3.TestExtensions.extensionsiii�t
DESCRIPTORt
__module__s+google.protobuf.util.json_format_proto3_pb2s,
com.google.protobuf.utilBJsonFormatProto3(�tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt%google_dot_protobuf_dot_duration__pb2Rt&google_dot_protobuf_dot_timestamp__pb2R
t%google_dot_protobuf_dot_wrappers__pb2Rt#google_dot_protobuf_dot_struct__pb2Rt google_dot_protobuf_dot_any__pb2Rt(google_dot_protobuf_dot_field__mask__pb2Rt%google_dot_protobuf_dot_unittest__pb2tFileDescriptorRstEnumDescriptortNonetEnumValueDescriptort	_ENUMTYPEtRegisterEnumDescriptortEnumTypeWrapperRRR"t
DescriptortFieldDescriptortFalset_MESSAGETYPEtfloattdecodet_TESTMESSAGEtOneofDescriptort
_TESTONEOFt
_ParseOptionstMessageOptionst_TESTMAP_BOOLMAPENTRYt_TESTMAP_INT32MAPENTRYt_TESTMAP_INT64MAPENTRYt_TESTMAP_UINT32MAPENTRYt_TESTMAP_UINT64MAPENTRYt_TESTMAP_STRINGMAPENTRYt_TESTMAPt_TESTNESTEDMAP_BOOLMAPENTRYt_TESTNESTEDMAP_INT32MAPENTRYt_TESTNESTEDMAP_INT64MAPENTRYt_TESTNESTEDMAP_UINT32MAPENTRYt_TESTNESTEDMAP_UINT64MAPENTRYt_TESTNESTEDMAP_STRINGMAPENTRYt_TESTNESTEDMAP_MAPMAPENTRYt_TESTNESTEDMAPt_TESTWRAPPERt_TESTTIMESTAMPt
_TESTDURATIONt_TESTFIELDMASKt_TESTSTRUCTt_TESTANYt
_TESTVALUEt_TESTLISTVALUEt_TESTBOOLVALUE_BOOLMAPENTRYt_TESTBOOLVALUEt_TESTCUSTOMJSONNAMEt_TESTEXTENSIONStfields_by_nameR.R-toneofs_by_nameR'tappendtcontaining_oneofR#t
_BOOLVALUEt_INT32VALUEt_INT64VALUEt_UINT32VALUEt_UINT64VALUEt_FLOATVALUEt_DOUBLEVALUEt_STRINGVALUEt_BYTESVALUEt
_TIMESTAMPt	_DURATIONt
_FIELDMASKt_STRUCTt_ANYt_VALUEt
_LISTVALUEt_TESTALLEXTENSIONStmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR&tRegisterMessageR7RNR\RURWRXRYRZR[RdRcRfRgRiRjRkRlRmRnRoRpRrtTruethas_optionstFileOptionst_options(((sO/usr/lib/python2.7/site-packages/google/protobuf/util/json_format_proto3_pb2.pyt<module>s�%	3				
																																																																																																																																																																																				

































	!	!	!	!	!	!	!	!	!	!	!	!	!	!	PK�\/"7��protobuf/util/__init__.pycnu�[����
���hc@sdS(N((((sA/usr/lib/python2.7/site-packages/google/protobuf/util/__init__.pyt<module>tPK�\l�՚,,protobuf/descriptor_database.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Provides a container for DescriptorProtos."""

__author__ = 'matthewtoia@google.com (Matt Toia)'


class Error(Exception):
  pass


class DescriptorDatabaseConflictingDefinitionError(Error):
  """Raised when a proto is added with the same name & different descriptor."""


class DescriptorDatabase(object):
  """A container accepting FileDescriptorProtos and maps DescriptorProtos."""

  def __init__(self):
    self._file_desc_protos_by_file = {}
    self._file_desc_protos_by_symbol = {}

  def Add(self, file_desc_proto):
    """Adds the FileDescriptorProto and its types to this database.

    Args:
      file_desc_proto: The FileDescriptorProto to add.
    Raises:
      DescriptorDatabaseConflictingDefinitionError: if an attempt is made to
        add a proto with the same name but different definition than an
        exisiting proto in the database.
    """
    proto_name = file_desc_proto.name
    if proto_name not in self._file_desc_protos_by_file:
      self._file_desc_protos_by_file[proto_name] = file_desc_proto
    elif self._file_desc_protos_by_file[proto_name] != file_desc_proto:
      raise DescriptorDatabaseConflictingDefinitionError(
          '%s already added, but with different descriptor.' % proto_name)

    # Add all the top-level descriptors to the index.
    package = file_desc_proto.package
    for message in file_desc_proto.message_type:
      self._file_desc_protos_by_symbol.update(
          (name, file_desc_proto) for name in _ExtractSymbols(message, package))
    for enum in file_desc_proto.enum_type:
      self._file_desc_protos_by_symbol[
          '.'.join((package, enum.name))] = file_desc_proto
    for extension in file_desc_proto.extension:
      self._file_desc_protos_by_symbol[
          '.'.join((package, extension.name))] = file_desc_proto
    for service in file_desc_proto.service:
      self._file_desc_protos_by_symbol[
          '.'.join((package, service.name))] = file_desc_proto

  def FindFileByName(self, name):
    """Finds the file descriptor proto by file name.

    Typically the file name is a relative path ending to a .proto file. The
    proto with the given name will have to have been added to this database
    using the Add method or else an error will be raised.

    Args:
      name: The file name to find.

    Returns:
      The file descriptor proto matching the name.

    Raises:
      KeyError if no file by the given name was added.
    """

    return self._file_desc_protos_by_file[name]

  def FindFileContainingSymbol(self, symbol):
    """Finds the file descriptor proto containing the specified symbol.

    The symbol should be a fully qualified name including the file descriptor's
    package and any containing messages. Some examples:

    'some.package.name.Message'
    'some.package.name.Message.NestedEnum'
    'some.package.name.Message.some_field'

    The file descriptor proto containing the specified symbol must be added to
    this database using the Add method or else an error will be raised.

    Args:
      symbol: The fully qualified symbol name.

    Returns:
      The file descriptor proto containing the symbol.

    Raises:
      KeyError if no file contains the specified symbol.
    """
    try:
      return self._file_desc_protos_by_symbol[symbol]
    except KeyError:
      # Fields, enum values, and nested extensions are not in
      # _file_desc_protos_by_symbol. Try to find the top level
      # descriptor. Non-existent nested symbol under a valid top level
      # descriptor can also be found. The behavior is the same with
      # protobuf C++.
      top_level, _, _ = symbol.rpartition('.')
      return self._file_desc_protos_by_symbol[top_level]


def _ExtractSymbols(desc_proto, package):
  """Pulls out all the symbols from a descriptor proto.

  Args:
    desc_proto: The proto to extract symbols from.
    package: The package containing the descriptor type.

  Yields:
    The fully qualified name found in the descriptor.
  """
  message_name = package + '.' + desc_proto.name if package else desc_proto.name
  yield message_name
  for nested_type in desc_proto.nested_type:
    for symbol in _ExtractSymbols(nested_type, message_name):
      yield symbol
  for enum_type in desc_proto.enum_type:
    yield '.'.join((message_name, enum_type.name))
PK�\�����protobuf/unittest_arena_pb2.pyonu�[����
���hc.@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�Zejdddddddedddejdddddddd d!d"d#d d$d d%ed&dd'dd(dddd)ed*dd+dde�gd,gd-gd.gd+dd/eddd0gd1gd2d3d4d5�Zejdd6dd7dddedddejdd8dd9dddd d!d:d#d;d$dd%ed&gd'dd(dddd)ed*dd+dde�ejdd<dd=dd dd>d!d:d#d;d$dd%ed&gd'dd(dddd)ed*dd+dde�gd,gd-gd.gd+dd/eddd0gd1gd2d?d4d@�Zeejd8_ejejd<_eejd<eejd6<eje�e	jdejfe dAedBdC��Z!ej"e!�e	jd6ejfe dAedBdC��Z#ej"e#�e$e_%ej&ej'�edD��e_(dS(Ei����NiicCs|S(N((tx((sF/usr/lib/python2.7/site-packages/google/protobuf/unittest_arena_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sF/usr/lib/python2.7/site-packages/google/protobuf/unittest_arena_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_no_arena_import_pb2tnames$google/protobuf/unittest_arena.prototpackagetproto2_arena_unittesttsyntaxtproto2t
serialized_pbsC
$google/protobuf/unittest_arena.protoproto2_arena_unittest.google/protobuf/unittest_no_arena_import.proto"

NestedMessage	
d ("�
ArenaMessageE
repeated_nested_message (2$.proto2_arena_unittest.NestedMessage[
 repeated_import_no_arena_message (21.proto2_arena_unittest.ImportNoArenaNestedMessageB�tdependenciest
NestedMessaget	full_names#proto2_arena_unittest.NestedMessagetfilenametfiletcontaining_typetfieldstds%proto2_arena_unittest.NestedMessage.dtindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiotserialized_endi�tArenaMessages"proto2_arena_unittest.ArenaMessagetrepeated_nested_messages:proto2_arena_unittest.ArenaMessage.repeated_nested_messageii
t repeated_import_no_arena_messagesCproto2_arena_unittest.ArenaMessage.repeated_import_no_arena_messageii�i>t
DESCRIPTORt
__module__s"google.protobuf.unittest_arena_pb2s�()tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbR
t8google_dot_protobuf_dot_unittest__no__arena__import__pb2tFileDescriptorR0t
DescriptortNonetFieldDescriptortFalset_NESTEDMESSAGEt
_ARENAMESSAGEtfields_by_nameR t_IMPORTNOARENANESTEDMESSAGEtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR-tTruethas_optionst
_ParseOptionstFileOptionst_options(((sF/usr/lib/python2.7/site-packages/google/protobuf/unittest_arena_pb2.pyt<module>s�%								




	PK�\fX��

,protobuf/internal/service_reflection_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Tests for google.protobuf.internal.service_reflection."""

__author__ = 'petar@google.com (Petar Petrov)'


try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import unittest_pb2
from google.protobuf import service_reflection
from google.protobuf import service


class FooUnitTest(unittest.TestCase):

  def testService(self):
    class MockRpcChannel(service.RpcChannel):
      def CallMethod(self, method, controller, request, response, callback):
        self.method = method
        self.controller = controller
        self.request = request
        callback(response)

    class MockRpcController(service.RpcController):
      def SetFailed(self, msg):
        self.failure_message = msg

    self.callback_response = None

    class MyService(unittest_pb2.TestService):
      pass

    self.callback_response = None

    def MyCallback(response):
      self.callback_response = response

    rpc_controller = MockRpcController()
    channel = MockRpcChannel()
    srvc = MyService()
    srvc.Foo(rpc_controller, unittest_pb2.FooRequest(), MyCallback)
    self.assertEqual('Method Foo not implemented.',
                     rpc_controller.failure_message)
    self.assertEqual(None, self.callback_response)

    rpc_controller.failure_message = None

    service_descriptor = unittest_pb2.TestService.GetDescriptor()
    srvc.CallMethod(service_descriptor.methods[1], rpc_controller,
                    unittest_pb2.BarRequest(), MyCallback)
    self.assertTrue(srvc.GetRequestClass(service_descriptor.methods[1]) is
                    unittest_pb2.BarRequest)
    self.assertTrue(srvc.GetResponseClass(service_descriptor.methods[1]) is
                    unittest_pb2.BarResponse)
    self.assertEqual('Method Bar not implemented.',
                     rpc_controller.failure_message)
    self.assertEqual(None, self.callback_response)

    class MyServiceImpl(unittest_pb2.TestService):
      def Foo(self, rpc_controller, request, done):
        self.foo_called = True
      def Bar(self, rpc_controller, request, done):
        self.bar_called = True

    srvc = MyServiceImpl()
    rpc_controller.failure_message = None
    srvc.Foo(rpc_controller, unittest_pb2.FooRequest(), MyCallback)
    self.assertEqual(None, rpc_controller.failure_message)
    self.assertEqual(True, srvc.foo_called)

    rpc_controller.failure_message = None
    srvc.CallMethod(service_descriptor.methods[1], rpc_controller,
                    unittest_pb2.BarRequest(), MyCallback)
    self.assertEqual(None, rpc_controller.failure_message)
    self.assertEqual(True, srvc.bar_called)

  def testServiceStub(self):
    class MockRpcChannel(service.RpcChannel):
      def CallMethod(self, method, controller, request,
                     response_class, callback):
        self.method = method
        self.controller = controller
        self.request = request
        callback(response_class())

    self.callback_response = None

    def MyCallback(response):
      self.callback_response = response

    channel = MockRpcChannel()
    stub = unittest_pb2.TestService_Stub(channel)
    rpc_controller = 'controller'
    request = 'request'

    # GetDescriptor now static, still works as instance method for compatibility
    self.assertEqual(unittest_pb2.TestService_Stub.GetDescriptor(),
                     stub.GetDescriptor())

    # Invoke method.
    stub.Foo(rpc_controller, request, MyCallback)

    self.assertIsInstance(self.callback_response, unittest_pb2.FooResponse)
    self.assertEqual(request, channel.request)
    self.assertEqual(rpc_controller, channel.controller)
    self.assertEqual(stub.GetDescriptor().methods[0], channel.method)


if __name__ == '__main__':
  unittest.main()
PK�\ٟ�S)protobuf/internal/more_extensions_pb2.pycnu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��ZdZejdddddddddddddddeddddd dd!dd"ed#dd$dd%e�Zd&Zejdd'dd(dddd&dd)dd*dddeddddd dd!dd"ed#dd$dd%e�ZdZejdd+dd,dd&dddddddddedgddd dd!dd"ed#dd$dd%e�Zd-Zejdd.dd/dddd-dd)dd*dddedgddd dd!dd"ed#dd$dd%e�Zejdd0dd1d2dd%ed!dd3ejdd4dd5dddddd)dd*dddeddddd dd!dd"ed#dd$dd%e�gd6gd7gd8gd$dd9eddd:gd;gd<d=d>d?�Zejdd@ddAd2dd%ed!dd3gd6gd7gd8gd$dd9eddd:dNgd;gd<dCd>dD�ZejddEddFd2dd%ed!dd3ejddGddHdddddddddddeddddd dd!dd"ed#dd$dd%e�gd6gd7gd8gd$dd9eddd:gd;gd<dId>dJ�Z eej!d4_"eej#d0<eej#d@<e ej#dE<eej$d<eej$d'<eej$d+<eej$d.<ej%e�e	j&d0ej'fe(dKedLdM��Z)ej*e)�e	j&d@ej'fe(dKedLdM��Z+ej*e+�e	j&dEej'fe(dKe dLdM��Z,ej*e,�e+j-e�e e_"e+j-e�e+j-e�e e_"e+j-e�dS(Oi����NiicCs|S(N((tx((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames.google/protobuf/internal/more_extensions.prototpackagesgoogle.protobuf.internaltsyntaxtproto2t
serialized_pbsp
.google/protobuf/internal/more_extensions.protogoogle.protobuf.internal"P
TopLevelMessage=

submessage (2).google.protobuf.internal.ExtendedMessage"
ExtendedMessage*����"-
ForeignMessage
foreign_message_int (:I
optional_int_extension).google.protobuf.internal.ExtendedMessage (:w
optional_message_extension).google.protobuf.internal.ExtendedMessage (2(.google.protobuf.internal.ForeignMessage:I
repeated_int_extension).google.protobuf.internal.ExtendedMessage (:w
repeated_message_extension).google.protobuf.internal.ExtendedMessage (2(.google.protobuf.internal.ForeignMessageitoptional_int_extensiont	full_names/google.protobuf.internal.optional_int_extensiontindextnumberttypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfileitoptional_message_extensions3google.protobuf.internal.optional_message_extensionii
trepeated_int_extensions/google.protobuf.internal.repeated_int_extensionitrepeated_message_extensions3google.protobuf.internal.repeated_message_extensiontTopLevelMessages(google.protobuf.internal.TopLevelMessagetfilenametfieldst
submessages3google.protobuf.internal.TopLevelMessage.submessaget
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiLtserialized_endi�tExtendedMessages(google.protobuf.internal.ExtendedMessagei i�i�tForeignMessages'google.protobuf.internal.ForeignMessagetforeign_message_ints;google.protobuf.internal.ForeignMessage.foreign_message_inti�i�t
DESCRIPTORt
__module__s,google.protobuf.internal.more_extensions_pb2(ii (.tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR1t#OPTIONAL_INT_EXTENSION_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRt'OPTIONAL_MESSAGE_EXTENSION_FIELD_NUMBERRt#REPEATED_INT_EXTENSION_FIELD_NUMBERR t'REPEATED_MESSAGE_EXTENSION_FIELD_NUMBERR!t
Descriptort_TOPLEVELMESSAGEt_EXTENDEDMESSAGEt_FOREIGNMESSAGEtfields_by_nameRtmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR"tRegisterMessageR.R/tRegisterExtension(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_pb2.pyt<module>s%														











	

	PK�\��}N��-protobuf/internal/service_reflection_test.pyonu�[����
���hc@s�dZdZyddlZWnek
r;ddlZnXddlmZddlmZddlmZdej	fd��YZ
ed	kr�ej�ndS(
s6Tests for google.protobuf.internal.service_reflection.spetar@google.com (Petar Petrov)i����N(tunittest_pb2(tservice_reflection(tservicetFooUnitTestcBseZd�Zd�ZRS(c
s3dtjfd��Y}dtjfd��Y}d�_dtjfd��Y}d�_�fd�}|�}|�}|�}|j|tj�|��j	d|j
��j	d�j�d|_
tjj�}|j|j
d	|tj�|��j|j|j
d	�tjk��j|j|j
d	�tjk��j	d
|j
��j	d�j�dtjfd��Y}	|	�}d|_
|j|tj�|��j	d|j
��j	t|j�d|_
|j|j
d	|tj�|��j	d|j
��j	t|j�dS(
NtMockRpcChannelcBseZd�ZRS(cSs)||_||_||_||�dS(N(tmethodt
controllertrequest(tselfRRRtresponsetcallback((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyt
CallMethod3s			(t__name__t
__module__R(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyR2stMockRpcControllercBseZd�ZRS(cSs
||_dS(N(tfailure_message(Rtmsg((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyt	SetFailed:s(RR
R(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyR9st	MyServicecBseZRS((RR
(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyR?scs
|�_dS(N(tcallback_response(R	(R(sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyt
MyCallbackDssMethod Foo not implemented.isMethod Bar not implemented.t
MyServiceImplcBseZd�Zd�ZRS(cSs
t|_dS(N(tTruet
foo_called(Rtrpc_controllerRtdone((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pytFoo]scSs
t|_dS(N(Rt
bar_called(RRRR((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pytBar_s(RR
RR(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyR\s	(Rt
RpcChannelt
RpcControllertNoneRRtTestServiceRt
FooRequesttassertEqualRt
GetDescriptorRtmethodst
BarRequestt
assertTruetGetRequestClasstGetResponseClasstBarResponseRRR(
RRRRRRtchanneltsrvctservice_descriptorR((RsT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyttestService1sF						
	

	
			cs�dtjfd��Y}d�_�fd�}|�}tj|�}d}d}�jtjj�|j��|j|||��j	�jtj
��j||j��j||j��j|j�j
d|j�dS(NRcBseZd�ZRS(cSs,||_||_||_||��dS(N(RRR(RRRRtresponse_classR
((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyRps			(RR
R(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyRoscs
|�_dS(N(R(R	(R(sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyRysRRi(RRRRRtTestService_StubR"R#RtassertIsInstancetFooResponseRRR$R(RRRR*tstubRR((RsT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyttestServiceStubns		
(RR
R-R3(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyR/s	=t__main__(
t__doc__t
__author__t	unittest2tunittesttImportErrortgoogle.protobufRRRtTestCaseRRtmain(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyt<module> s
_PK�\&�q=�*�*%protobuf/internal/wire_format_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Test for google.protobuf.internal.wire_format."""

__author__ = 'robinson@google.com (Will Robinson)'

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import message
from google.protobuf.internal import wire_format


class WireFormatTest(unittest.TestCase):

  def testPackTag(self):
    field_number = 0xabc
    tag_type = 2
    self.assertEqual((field_number << 3) | tag_type,
                     wire_format.PackTag(field_number, tag_type))
    PackTag = wire_format.PackTag
    # Number too high.
    self.assertRaises(message.EncodeError, PackTag, field_number, 6)
    # Number too low.
    self.assertRaises(message.EncodeError, PackTag, field_number, -1)

  def testUnpackTag(self):
    # Test field numbers that will require various varint sizes.
    for expected_field_number in (1, 15, 16, 2047, 2048):
      for expected_wire_type in range(6):  # Highest-numbered wiretype is 5.
        field_number, wire_type = wire_format.UnpackTag(
            wire_format.PackTag(expected_field_number, expected_wire_type))
        self.assertEqual(expected_field_number, field_number)
        self.assertEqual(expected_wire_type, wire_type)

    self.assertRaises(TypeError, wire_format.UnpackTag, None)
    self.assertRaises(TypeError, wire_format.UnpackTag, 'abc')
    self.assertRaises(TypeError, wire_format.UnpackTag, 0.0)
    self.assertRaises(TypeError, wire_format.UnpackTag, object())

  def testZigZagEncode(self):
    Z = wire_format.ZigZagEncode
    self.assertEqual(0, Z(0))
    self.assertEqual(1, Z(-1))
    self.assertEqual(2, Z(1))
    self.assertEqual(3, Z(-2))
    self.assertEqual(4, Z(2))
    self.assertEqual(0xfffffffe, Z(0x7fffffff))
    self.assertEqual(0xffffffff, Z(-0x80000000))
    self.assertEqual(0xfffffffffffffffe, Z(0x7fffffffffffffff))
    self.assertEqual(0xffffffffffffffff, Z(-0x8000000000000000))

    self.assertRaises(TypeError, Z, None)
    self.assertRaises(TypeError, Z, 'abcd')
    self.assertRaises(TypeError, Z, 0.0)
    self.assertRaises(TypeError, Z, object())

  def testZigZagDecode(self):
    Z = wire_format.ZigZagDecode
    self.assertEqual(0, Z(0))
    self.assertEqual(-1, Z(1))
    self.assertEqual(1, Z(2))
    self.assertEqual(-2, Z(3))
    self.assertEqual(2, Z(4))
    self.assertEqual(0x7fffffff, Z(0xfffffffe))
    self.assertEqual(-0x80000000, Z(0xffffffff))
    self.assertEqual(0x7fffffffffffffff, Z(0xfffffffffffffffe))
    self.assertEqual(-0x8000000000000000, Z(0xffffffffffffffff))

    self.assertRaises(TypeError, Z, None)
    self.assertRaises(TypeError, Z, 'abcd')
    self.assertRaises(TypeError, Z, 0.0)
    self.assertRaises(TypeError, Z, object())

  def NumericByteSizeTestHelper(self, byte_size_fn, value, expected_value_size):
    # Use field numbers that cause various byte sizes for the tag information.
    for field_number, tag_bytes in ((15, 1), (16, 2), (2047, 2), (2048, 3)):
      expected_size = expected_value_size + tag_bytes
      actual_size = byte_size_fn(field_number, value)
      self.assertEqual(expected_size, actual_size,
                       'byte_size_fn: %s, field_number: %d, value: %r\n'
                       'Expected: %d, Actual: %d'% (
          byte_size_fn, field_number, value, expected_size, actual_size))

  def testByteSizeFunctions(self):
    # Test all numeric *ByteSize() functions.
    NUMERIC_ARGS = [
        # Int32ByteSize().
        [wire_format.Int32ByteSize, 0, 1],
        [wire_format.Int32ByteSize, 127, 1],
        [wire_format.Int32ByteSize, 128, 2],
        [wire_format.Int32ByteSize, -1, 10],
        # Int64ByteSize().
        [wire_format.Int64ByteSize, 0, 1],
        [wire_format.Int64ByteSize, 127, 1],
        [wire_format.Int64ByteSize, 128, 2],
        [wire_format.Int64ByteSize, -1, 10],
        # UInt32ByteSize().
        [wire_format.UInt32ByteSize, 0, 1],
        [wire_format.UInt32ByteSize, 127, 1],
        [wire_format.UInt32ByteSize, 128, 2],
        [wire_format.UInt32ByteSize, wire_format.UINT32_MAX, 5],
        # UInt64ByteSize().
        [wire_format.UInt64ByteSize, 0, 1],
        [wire_format.UInt64ByteSize, 127, 1],
        [wire_format.UInt64ByteSize, 128, 2],
        [wire_format.UInt64ByteSize, wire_format.UINT64_MAX, 10],
        # SInt32ByteSize().
        [wire_format.SInt32ByteSize, 0, 1],
        [wire_format.SInt32ByteSize, -1, 1],
        [wire_format.SInt32ByteSize, 1, 1],
        [wire_format.SInt32ByteSize, -63, 1],
        [wire_format.SInt32ByteSize, 63, 1],
        [wire_format.SInt32ByteSize, -64, 1],
        [wire_format.SInt32ByteSize, 64, 2],
        # SInt64ByteSize().
        [wire_format.SInt64ByteSize, 0, 1],
        [wire_format.SInt64ByteSize, -1, 1],
        [wire_format.SInt64ByteSize, 1, 1],
        [wire_format.SInt64ByteSize, -63, 1],
        [wire_format.SInt64ByteSize, 63, 1],
        [wire_format.SInt64ByteSize, -64, 1],
        [wire_format.SInt64ByteSize, 64, 2],
        # Fixed32ByteSize().
        [wire_format.Fixed32ByteSize, 0, 4],
        [wire_format.Fixed32ByteSize, wire_format.UINT32_MAX, 4],
        # Fixed64ByteSize().
        [wire_format.Fixed64ByteSize, 0, 8],
        [wire_format.Fixed64ByteSize, wire_format.UINT64_MAX, 8],
        # SFixed32ByteSize().
        [wire_format.SFixed32ByteSize, 0, 4],
        [wire_format.SFixed32ByteSize, wire_format.INT32_MIN, 4],
        [wire_format.SFixed32ByteSize, wire_format.INT32_MAX, 4],
        # SFixed64ByteSize().
        [wire_format.SFixed64ByteSize, 0, 8],
        [wire_format.SFixed64ByteSize, wire_format.INT64_MIN, 8],
        [wire_format.SFixed64ByteSize, wire_format.INT64_MAX, 8],
        # FloatByteSize().
        [wire_format.FloatByteSize, 0.0, 4],
        [wire_format.FloatByteSize, 1000000000.0, 4],
        [wire_format.FloatByteSize, -1000000000.0, 4],
        # DoubleByteSize().
        [wire_format.DoubleByteSize, 0.0, 8],
        [wire_format.DoubleByteSize, 1000000000.0, 8],
        [wire_format.DoubleByteSize, -1000000000.0, 8],
        # BoolByteSize().
        [wire_format.BoolByteSize, False, 1],
        [wire_format.BoolByteSize, True, 1],
        # EnumByteSize().
        [wire_format.EnumByteSize, 0, 1],
        [wire_format.EnumByteSize, 127, 1],
        [wire_format.EnumByteSize, 128, 2],
        [wire_format.EnumByteSize, wire_format.UINT32_MAX, 5],
        ]
    for args in NUMERIC_ARGS:
      self.NumericByteSizeTestHelper(*args)

    # Test strings and bytes.
    for byte_size_fn in (wire_format.StringByteSize, wire_format.BytesByteSize):
      # 1 byte for tag, 1 byte for length, 3 bytes for contents.
      self.assertEqual(5, byte_size_fn(10, 'abc'))
      # 2 bytes for tag, 1 byte for length, 3 bytes for contents.
      self.assertEqual(6, byte_size_fn(16, 'abc'))
      # 2 bytes for tag, 2 bytes for length, 128 bytes for contents.
      self.assertEqual(132, byte_size_fn(16, 'a' * 128))

    # Test UTF-8 string byte size calculation.
    # 1 byte for tag, 1 byte for length, 8 bytes for content.
    self.assertEqual(10, wire_format.StringByteSize(
        5, b'\xd0\xa2\xd0\xb5\xd1\x81\xd1\x82'.decode('utf-8')))

    class MockMessage(object):
      def __init__(self, byte_size):
        self.byte_size = byte_size
      def ByteSize(self):
        return self.byte_size

    message_byte_size = 10
    mock_message = MockMessage(byte_size=message_byte_size)
    # Test groups.
    # (2 * 1) bytes for begin and end tags, plus message_byte_size.
    self.assertEqual(2 + message_byte_size,
                     wire_format.GroupByteSize(1, mock_message))
    # (2 * 2) bytes for begin and end tags, plus message_byte_size.
    self.assertEqual(4 + message_byte_size,
                     wire_format.GroupByteSize(16, mock_message))

    # Test messages.
    # 1 byte for tag, plus 1 byte for length, plus contents.
    self.assertEqual(2 + mock_message.byte_size,
                     wire_format.MessageByteSize(1, mock_message))
    # 2 bytes for tag, plus 1 byte for length, plus contents.
    self.assertEqual(3 + mock_message.byte_size,
                     wire_format.MessageByteSize(16, mock_message))
    # 2 bytes for tag, plus 2 bytes for length, plus contents.
    mock_message.byte_size = 128
    self.assertEqual(4 + mock_message.byte_size,
                     wire_format.MessageByteSize(16, mock_message))


    # Test message set item byte size.
    # 4 bytes for tags, plus 1 byte for length, plus 1 byte for type_id,
    # plus contents.
    mock_message.byte_size = 10
    self.assertEqual(mock_message.byte_size + 6,
                     wire_format.MessageSetItemByteSize(1, mock_message))

    # 4 bytes for tags, plus 2 bytes for length, plus 1 byte for type_id,
    # plus contents.
    mock_message.byte_size = 128
    self.assertEqual(mock_message.byte_size + 7,
                     wire_format.MessageSetItemByteSize(1, mock_message))

    # 4 bytes for tags, plus 2 bytes for length, plus 2 byte for type_id,
    # plus contents.
    self.assertEqual(mock_message.byte_size + 8,
                     wire_format.MessageSetItemByteSize(128, mock_message))

    # Too-long varint.
    self.assertRaises(message.EncodeError,
                      wire_format.UInt64ByteSize, 1, 1 << 128)


if __name__ == '__main__':
  unittest.main()
PK�\kD:
:
&protobuf/internal/message_listener.pycnu�[����
���hc@s<dZdZdefd��YZdefd��YZdS(s�Defines a listener interface for observing certain
state transitions on Message objects.

Also defines a null implementation of this interface.
s#robinson@google.com (Will Robinson)tMessageListenercBseZdZd�ZRS(sListens for modifications made to a message.  Meant to be registered via
  Message._SetListener().

  Attributes:
    dirty:  If True, then calling Modified() would be a no-op.  This can be
            used to avoid these calls entirely in the common case.
  cCs
t�dS(sCalled every time the message is modified in such a way that the parent
    message may need to be updated.  This currently means either:
    (a) The message was modified for the first time, so the parent message
        should henceforth mark the message as present.
    (b) The message's cached byte size became dirty -- i.e. the message was
        modified for the first time after a previous call to ByteSize().
        Therefore the parent should also mark its byte size as dirty.
    Note that (a) implies (b), since new objects start out with a client cached
    size (zero).  However, we document (a) explicitly because it is important.

    Modified() will *only* be called in response to one of these two events --
    not every time the sub-message is modified.

    Note that if the listener's |dirty| attribute is true, then calling
    Modified at the moment would be a no-op, so it can be skipped.  Performance-
    sensitive callers should check this attribute directly before calling since
    it will be true most of the time.
    N(tNotImplementedError(tself((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/message_listener.pytModified2s(t__name__t
__module__t__doc__R(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/message_listener.pyR(stNullMessageListenercBseZdZd�ZRS(s%No-op MessageListener implementation.cCsdS(N((R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/message_listener.pyRMs(RRRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/message_listener.pyRIsN(Rt
__author__tobjectRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/message_listener.pyt<module>#s!PK�\ܟ�-�%�%)protobuf/internal/message_factory_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Tests for google.protobuf.message_factory."""

__author__ = 'matthewtoia@google.com (Matt Toia)'

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import descriptor_pb2
from google.protobuf.internal import api_implementation
from google.protobuf.internal import factory_test1_pb2
from google.protobuf.internal import factory_test2_pb2
from google.protobuf import descriptor_database
from google.protobuf import descriptor_pool
from google.protobuf import message_factory


class MessageFactoryTest(unittest.TestCase):

  def setUp(self):
    self.factory_test1_fd = descriptor_pb2.FileDescriptorProto.FromString(
        factory_test1_pb2.DESCRIPTOR.serialized_pb)
    self.factory_test2_fd = descriptor_pb2.FileDescriptorProto.FromString(
        factory_test2_pb2.DESCRIPTOR.serialized_pb)

  def _ExerciseDynamicClass(self, cls):
    msg = cls()
    msg.mandatory = 42
    msg.nested_factory_2_enum = 0
    msg.nested_factory_2_message.value = 'nested message value'
    msg.factory_1_message.factory_1_enum = 1
    msg.factory_1_message.nested_factory_1_enum = 0
    msg.factory_1_message.nested_factory_1_message.value = (
        'nested message value')
    msg.factory_1_message.scalar_value = 22
    msg.factory_1_message.list_value.extend([u'one', u'two', u'three'])
    msg.factory_1_message.list_value.append(u'four')
    msg.factory_1_enum = 1
    msg.nested_factory_1_enum = 0
    msg.nested_factory_1_message.value = 'nested message value'
    msg.circular_message.mandatory = 1
    msg.circular_message.circular_message.mandatory = 2
    msg.circular_message.scalar_value = 'one deep'
    msg.scalar_value = 'zero deep'
    msg.list_value.extend([u'four', u'three', u'two'])
    msg.list_value.append(u'one')
    msg.grouped.add()
    msg.grouped[0].part_1 = 'hello'
    msg.grouped[0].part_2 = 'world'
    msg.grouped.add(part_1='testing', part_2='123')
    msg.loop.loop.mandatory = 2
    msg.loop.loop.loop.loop.mandatory = 4
    serialized = msg.SerializeToString()
    converted = factory_test2_pb2.Factory2Message.FromString(serialized)
    reserialized = converted.SerializeToString()
    self.assertEqual(serialized, reserialized)
    result = cls.FromString(reserialized)
    self.assertEqual(msg, result)

  def testGetPrototype(self):
    db = descriptor_database.DescriptorDatabase()
    pool = descriptor_pool.DescriptorPool(db)
    db.Add(self.factory_test1_fd)
    db.Add(self.factory_test2_fd)
    factory = message_factory.MessageFactory()
    cls = factory.GetPrototype(pool.FindMessageTypeByName(
        'google.protobuf.python.internal.Factory2Message'))
    self.assertFalse(cls is factory_test2_pb2.Factory2Message)
    self._ExerciseDynamicClass(cls)
    cls2 = factory.GetPrototype(pool.FindMessageTypeByName(
        'google.protobuf.python.internal.Factory2Message'))
    self.assertTrue(cls is cls2)

  def testGetMessages(self):
    # performed twice because multiple calls with the same input must be allowed
    for _ in range(2):
      # GetMessage should work regardless of the order the FileDescriptorProto
      # are provided. In particular, the function should succeed when the files
      # are not in the topological order of dependencies.

      # Assuming factory_test2_fd depends on factory_test1_fd.
      self.assertIn(self.factory_test1_fd.name,
                    self.factory_test2_fd.dependency)
      # Get messages should work when a file comes before its dependencies:
      # factory_test2_fd comes before factory_test1_fd.
      messages = message_factory.GetMessages([self.factory_test2_fd,
                                              self.factory_test1_fd])
      self.assertTrue(
          set(['google.protobuf.python.internal.Factory2Message',
               'google.protobuf.python.internal.Factory1Message'],
             ).issubset(set(messages.keys())))
      self._ExerciseDynamicClass(
          messages['google.protobuf.python.internal.Factory2Message'])
      factory_msg1 = messages['google.protobuf.python.internal.Factory1Message']
      self.assertTrue(set(
          ['google.protobuf.python.internal.Factory2Message.one_more_field',
           'google.protobuf.python.internal.another_field'],).issubset(set(
               ext.full_name
               for ext in factory_msg1.DESCRIPTOR.file.pool.FindAllExtensions(
                   factory_msg1.DESCRIPTOR))))
      msg1 = messages['google.protobuf.python.internal.Factory1Message']()
      ext1 = msg1.Extensions._FindExtensionByName(
          'google.protobuf.python.internal.Factory2Message.one_more_field')
      ext2 = msg1.Extensions._FindExtensionByName(
          'google.protobuf.python.internal.another_field')
      msg1.Extensions[ext1] = 'test1'
      msg1.Extensions[ext2] = 'test2'
      self.assertEqual('test1', msg1.Extensions[ext1])
      self.assertEqual('test2', msg1.Extensions[ext2])
      self.assertEqual(None,
                       msg1.Extensions._FindExtensionByNumber(12321))
      if api_implementation.Type() == 'cpp':
        # TODO(jieluo): Fix len to return the correct value.
        # self.assertEqual(2, len(msg1.Extensions))
        self.assertEqual(len(msg1.Extensions), len(msg1.Extensions))
        self.assertRaises(TypeError,
                          msg1.Extensions._FindExtensionByName, 0)
        self.assertRaises(TypeError,
                          msg1.Extensions._FindExtensionByNumber, '')
      else:
        self.assertEqual(None,
                         msg1.Extensions._FindExtensionByName(0))
        self.assertEqual(None,
                         msg1.Extensions._FindExtensionByNumber(''))

  def testDuplicateExtensionNumber(self):
    pool = descriptor_pool.DescriptorPool()
    factory = message_factory.MessageFactory(pool=pool)

    # Add Container message.
    f = descriptor_pb2.FileDescriptorProto()
    f.name = 'google/protobuf/internal/container.proto'
    f.package = 'google.protobuf.python.internal'
    msg = f.message_type.add()
    msg.name = 'Container'
    rng = msg.extension_range.add()
    rng.start = 1
    rng.end = 10
    pool.Add(f)
    msgs = factory.GetMessages([f.name])
    self.assertIn('google.protobuf.python.internal.Container', msgs)

    # Extend container.
    f = descriptor_pb2.FileDescriptorProto()
    f.name = 'google/protobuf/internal/extension.proto'
    f.package = 'google.protobuf.python.internal'
    f.dependency.append('google/protobuf/internal/container.proto')
    msg = f.message_type.add()
    msg.name = 'Extension'
    ext = msg.extension.add()
    ext.name = 'extension_field'
    ext.number = 2
    ext.label = descriptor_pb2.FieldDescriptorProto.LABEL_OPTIONAL
    ext.type_name = 'Extension'
    ext.extendee = 'Container'
    pool.Add(f)
    msgs = factory.GetMessages([f.name])
    self.assertIn('google.protobuf.python.internal.Extension', msgs)

    # Add Duplicate extending the same field number.
    f = descriptor_pb2.FileDescriptorProto()
    f.name = 'google/protobuf/internal/duplicate.proto'
    f.package = 'google.protobuf.python.internal'
    f.dependency.append('google/protobuf/internal/container.proto')
    msg = f.message_type.add()
    msg.name = 'Duplicate'
    ext = msg.extension.add()
    ext.name = 'extension_field'
    ext.number = 2
    ext.label = descriptor_pb2.FieldDescriptorProto.LABEL_OPTIONAL
    ext.type_name = 'Duplicate'
    ext.extendee = 'Container'
    pool.Add(f)

    with self.assertRaises(Exception) as cm:
      factory.GetMessages([f.name])

    self.assertIn(str(cm.exception),
                  ['Extensions '
                   '"google.protobuf.python.internal.Duplicate.extension_field" and'
                   ' "google.protobuf.python.internal.Extension.extension_field"'
                   ' both try to extend message type'
                   ' "google.protobuf.python.internal.Container"'
                   ' with field number 2.',
                   'Double registration of Extensions'])


if __name__ == '__main__':
  unittest.main()
PK�\/��'�'�%protobuf/internal/descriptor_test.pyonu�[����
���hc@s�dZdZddlZyddlZWnek
rGddlZnXddlmZddlmZddlm	Z	ddlm
Z
ddlmZdd	lm
Z
dd
lmZddlmZddlmZdd
lmZdZdejfd��YZdefd��YZdejfd��YZdejfd��YZdejfd��YZedkr�ej�ndS(s1Unittest for google.protobuf.internal.descriptor.s#robinson@google.com (Will Robinson)i����N(tunittest_custom_options_pb2(tunittest_import_pb2(tunittest_pb2(tdescriptor_pb2(tapi_implementation(t	test_util(t
descriptor(tdescriptor_pool(tsymbol_database(ttext_formats
name: 'TestEmptyMessage'
tDescriptorTestcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zejej�dkp�ej�dkd�d��ZRS(c	Cs�tjdddd�}|jjdd�}|jjddddd	tjjd
tjj�|jjdd�}|j	jdddd
�|j	jdddd�|j	jdddd�|jjdd�|j
jdd�}|jjdddddd�}|j�|_
|j
j|�|j
j|j�|_|jj|j|_|jj|j|_|jj|j|_|jj|j|_dS(Ntnamessome/filename/some.prototpackagetprotobuf_unittestt
NestedMessagetbbtnumberittypetlabeltForeignEnumtFOREIGN_FOOitFOREIGN_BARitFOREIGN_BAZitResponseMessagetServicet
CallMethodt
input_types .protobuf_unittest.NestedMessagetoutput_types".protobuf_unittest.ResponseMessage(RtFileDescriptorPrototmessage_typetaddtfieldtFieldDescriptorProtot
TYPE_INT32tLABEL_OPTIONALt	enum_typetvaluetservicetmethodtGetDescriptorPooltpooltAddtFindFileByNameRtmy_filetmessage_types_by_namet
my_messagetenum_types_by_nametmy_enumtservices_by_namet
my_servicetmethods_by_namet	my_method(tselft
file_protot
message_protot
enum_protot
service_prototmethod_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pytsetUp>s:			
			cCs
tj�jS(N(RtDefaultR((R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR'bscCs�|j|jjdd�d�|j|jjdjdj|jjdd��|jt��|jjdd�WdQX|jt��|jjdd�WdQX|jt��|jj�WdQXdS(NRiRi�tNoneEnum(	tassertEqualR-t
EnumValueNameR.tvalues_by_numberRtassertRaisestKeyErrort	TypeError(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestEnumValueNamees	cCs$|j|j|jjdj�dS(Ni(R=R/tvaluesR(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestEnumFixupstscCs=|j|j|jjdj�|j|j|jj�dS(Ni(R=R-tfieldstcontaining_typeR/(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestContainingTypeFixupsws cCs|j|j|jj�dS(N(R=R1R3tcontaining_service(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestContainingServiceFixups{scCs�|j|jj�tj��|j|jjdj�tj��|j|jj�tj��|j|jj	dj�tj
��|j|jj�tj��|j|j
j�tj��dS(Ni(R=R/t
GetOptionsRtEnumOptionsRDtEnumValueOptionsR-tMessageOptionsRFtFieldOptionsR3t
MethodOptionsR1tServiceOptions(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestGetOptions~s




cCsttj}tjj}|jd}|jd}|jd}|jd}|jd}tjj}|jd�}	|j	�}
tj
}|jd|
j|�|j	�}tj
}
|jd|j|
�|j	�}tj}|jd	|j|�tj}|jd
|j|�|j	�}tj}|jd|j|�|j	�}tj}|jd|j|�|j	�}tj}|jd
|j|�|j	�}tj}|jd|j|�|	j	�}tj}|jtj|j|�tjj}|j|j�|j|j�|j|j�|j|j�|j|j�|j|j�|j|j�dS(Ntfield1tAnOneoftAnEnumtANENUM_VAL2tANENUM_VAL1tFool�`	i���l-a�i*i����i��i{l�����`	(Rt
DESCRIPTORtTestMessageWithCustomOptionstfields_by_nametoneofs_by_nameR.tenum_values_by_nametTestServiceWithCustomOptionstFindMethodByNameRKt	file_opt1R=t
Extensionstmessage_opt1t
field_opt1t
field_opt2t
oneof_opt1t	enum_opt1tenum_value_opt1tservice_opt1tmethod_opt1tMETHODOPT1_VAL2tDummyMessageContainingEnumt
assertTruethas_optionstassertFalse(R4tfile_descriptortmessage_descriptortfield_descriptortoneof_descriptortenum_descriptortenum_value_descriptortother_enum_value_descriptortservice_descriptortmethod_descriptortfile_optionsR`tmessage_optionsRbt
field_optionsRcRdt
oneof_optionsRetenum_optionsRftenum_value_optionsRgtservice_optionsRhtmethod_optionsRi((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestSimpleCustomOptions�s\	


									c
Cs�d}d}d}d}d}d}tjj}|j�}|jt|jtj�|j||jtj�|j||jtj	�|jd|jtj
�|jd|jtj�|j||jtj�|j||jtj
�|jd|jtj�|jd|jtj�|j||jtj�|j||jtj�tjj}|j�}|jt|jtj�|j||jtj�|j||jtj	�|j||jtj
�|j||jtj�|j||jtj�|j||jtj
�|j||jtj�|j||jtj�|j||jtj�|j||jtj�tjj}|j�}|jd|jtj�|jd	|jtjd
�|jd|jtj�|jd|jtj�|jd
|jtj�tj}	|j|	j|jtj�tjj}|j�}|jd|jtjd
�|jd|jtj�tjj}|j�}|jd|jtjd
�|jd|jtj�dS(Niii?ii i@ii����g��$��(@ig�Y�B��?sHello, "World"sHelloWorldii�i�if���ll����ll����ll��ll����ll��ll����(RtCustomOptionMinIntegerValuesRYRKR=tFalseRatbool_optt	int32_optt	int64_optt
uint32_optt
uint64_optt
sint32_optt
sint64_opttfixed32_opttfixed64_opttsfixed32_opttsfixed64_opttCustomOptionMaxIntegerValuestTruetCustomOptionOtherValuestassertAlmostEqualt	float_optt
double_optt
string_optt	bytes_optRktTEST_OPTION_ENUM_TYPE2tenum_opttSettingRealsFromPositiveIntstSettingRealsFromNegativeInts(
R4t	kint32mint	kint64mint	kint32maxt	kint64maxt
kuint32maxt
kuint64maxRpRyt
dummy_enum((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestDifferentCustomOptionTypes�s�	cCsYtjj}|j�}|jd|jtjj�|jd|jtjjtj�|jd|jtjjtj	j
�|jd|jtjj�|jd|jtjjtj
�|jd|jtjjj�|jd|jtjjjtj�|jd|jtjjjtj	j
�|jd	|jtjjtjj�|jd
|jtjjtjjtj�|jd|jtjjtjjtj	j
�|jd|jtjjjj�|jd
|jtjjj�|jd|jtjj
�|jd|jtjjj�|jd|jtjj�dS(Ni*iDili�i�i�i�i�i�i�iIi�iAi	ii(RtVariousComplexOptionsRYRKR=Ratcomplex_opt1tfootquuxtcorgetquxtcomplex_opt2tbaztgraulttbartgarplytComplexOptionType2tComplexOptionType4tcomplex_opt4twaldotfredtcomplex_opt3tcomplexoptiontype5tplughtcomplexopt6txyzzy(R4Rtoptions((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestComplexExtensionOptions sX









c	Cs�tj}tjj}|jd}tjj}|jd}tjj}|jd�}|j�j	tj
}|jd|j�|jd|j
�|jd|jj
�|jd|jj	tj
j
�|jd|jj	tjjj
�|jd	|j�j	tjj
�|jd
|j�j	tjj
�|jd|j�j	tjj
�|jd|j�j	tjj
�|jd
|j�j	tjj
�|jd|j�j	tjj
�dS(Nt	fieldnametVALUEtMethodidtFileAnnotationtNestedFileAnnotationtFileExtensionAnnotationtEmbeddedMessageSetElementtMessageAnnotationtFieldAnnotationtEnumAnnotationtEnumValueAnnotationtServiceAnnotationtMethodAnnotation(RRYtAggregateMessageR[t
AggregateEnumtvalues_by_nametAggregateServiceR_RKRatfileoptR=titstsubtfiletmsettAggregateMessageSetElementtmessage_set_extensiontmsgopttfieldopttenumoptt
enumvaloptt
serviceoptt	methodopt(	R4RoRpRqRsRtRvRwRx((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestAggregateOptionsRsP	


cCs�tjjj}|jd|j�jtj�|jd}|jd|j�jtj	�tjj}|j
d}|jd|j�jtj�|jd}|jd|j�jtj
�|jd}|jd	|j�jtj�dS(
Ni�tnested_fieldi�t
NestedEnumi�tNESTED_ENUM_VALUEi�tnested_extensioni�(RtNestedOptionTypeRRYR=RKRaRbR[RcR.RfR]Rgtextensions_by_nameRd(R4tnested_messageR�t
outer_messagetnested_enumtnested_enum_valueR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestNestedOptions�s 



cCs6|j|jj|j�|j|jj|j�dS(N(R=R/R�R+R-(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestFileDescriptorReferences�scCs�|j|jjd�|j|jjd�|j|jj|j�|j|jj�|jd|jj�tj	�}|jj
|�|j|jj|j��|jt
jjtj��dS(Nssome/filename/some.protoR
tproto2(R=R+RRR(RnRmtsyntaxRRtCopyToProtot
serialized_pbtSerializeToStringRRYRR;(R4R5((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestFileDescriptor�s
tcppisAImmutability of descriptors is only enforced in v2 implementationcCs}tj}tjj}|jd}|jd}|jd}|jt��d|_WdQX|jt	��d|jd<WdQX|jt	��|j
jd�WdQX|jt��||_WdQX|jt��t
|_WdQX|jt��t
|_WdQX|jt��t
|_WdQX|jt��t
|_WdQX|jt��}t|_WdQX|jdt|j��dS(Ntoptional_int32R�toneof_fieldtAnothers&attribute is not writable: has_options(RRYtTestAllTypesR[R.R\R@tAttributeErrortNoneRBRFtappendRGR�RmR�R=tstrt	exception(R4RoRpRqRsRrte((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestImmutableCppDescriptor�s2	


	(t__name__t
__module__R:R'RCRERHRJRRR�R�R�R�R�R�R�tunittesttskipIfRtTypetVersionR�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR
<s"	$							6	^	2	1			
!tNewDescriptorTestcBseZdZd�ZRS(sARedo the same tests as above, but with a separate DescriptorPool.cCs
tj�S(N(RtDescriptorPool(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR'�s(R�R�t__doc__R'(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR��stGeneratedDescriptorTestcBs_eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZRS(
s:Tests for the properties of descriptors in generated code.cCs|j|jd�|j|jd�|j||�|j|jdj|�|j||g�|j|id|6�|j|j�|j|j	�|j|j
�|j|j�|j|j�|j|j
�|j|j�|j|jdj�|j|jg�dS(NR�sprotobuf_unittest.TestAllTypesi(R=Rt	full_nameRFRGtassertInR�tCheckDescriptorSequencetCheckDescriptorMappingR[tfields_by_numbertfields_by_camelcase_nameR.R]R\t
enum_typesR�textension_ranges(R4Rp((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pytCheckMessageDescriptor�s"cCs(|j|jd�|j|jd�|j|jd�|j|jjd�|j|jtj�|j||�|j|jjd|�|j|jj	d|�|j
||g�|j
|id|6�|jd|j�|jd|j
�tj�dkr$|j|j|j�ndS(NR�t
optionalInt32s-protobuf_unittest.TestAllTypes.optional_int32R�R�(R=Rtcamelcase_nameRRGR�RRYR[RRR�textension_scopeR#RR�tid(R4Rq((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pytCheckFieldDescriptor�s(
	cCsK|j|tjjj�|j|g�|j|d�|j|dk�|j||�t|�}|j||�|jt	|�d�|jt	|�t	|��|j|t	|�d|d�|d}|j||d�|j
||�|j|j|�d�|j|j|�d�tj
jjd}|j||�|j|j|�d�|jt|j|�|jt|jg�t|�}|jt|�t|�ddd��|jtt|�d|d<|j||�tj�dkr-|jtt|��t|��n|jt|�dd�dS(Niii����schange valuetpythont<(tassertNotEqualRtTestAllExtensionsRYRFRnR=tlistt
assertGreatertlenRtindextcounttNestedTestAllTypestassertNotInR@t
ValueErrortreversedt
StopIterationtnextRR�R�(R4tsequencet
expected_listtitemt
other_itemtreversed_iterator((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyRs:	"
)
%cs�j|tjjj��j|i��j|d��j|dk�t|j��}�j||��j||��j	t
|�d��jt
|�t
|��tjdkr�t
t|j���\}}n|j�d\}}�j||��j|j|�|��jt��|j�WdQXtj�dkrj�jt|jg�n�jd|jg��t
t|j���t
t|j���f}�j|t
t|j����tjdkrA�fd�}||j�|j��||j�|j��||j�|j��nd||<�j||�||=d|d<�j||��jt|jd	��jt|jt
|�d�tj�dkr��jt
tt|j����t
t|���n�jt|�dd
�dS(
NiiiRcs8�jt|�|d��jt|�|d�dS(Nii(R=RR(tseqtiterator(R4(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt
CheckItemsBsschange valuetnewtnew_keyt	key_errorR(i(i(RRRRYR[RntdicttitemsR=RRtsystversion_infoRtiterRtgetR@RBRR�R�tkeysRDtiterkeyst
itervaluest	iteritemsRAt__getitem__R�(R4tmappingt
excepted_dicttkeyR R%((R4sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR$sJ!0"

 7cCs�tjj}|j|�|jd}|j|�|jd}|j|�tjjd}|jd|j
�|jtjjjdg�|jtj
jjdd
dg�dS(NR�R
Rii i*i+i/i�i(ii (i*i+(i/i�(ii (RR�RYR	R[RRR.R=R�RGRRtTestMultipleExtensionRanges(R4RpRqRs((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestDescriptorUs 



	
cCsstj}|j|j�|j|j�|j|j�|j|j�|j|j�|jtj	jj�dS(N(
RRYRtdependenciesRR,R.R0R�tTestNestedExtension(R4tcontaining_file((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCppDescriptorContainerhs	cCsBtjjjd}t|j�}~|jdt|�j�dS(NR�tFOO(	RR�RYR.R-RDR=RR(R4tenumtvalues_iter((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt#testCppDescriptorContainer_IteratorrscCsztjjd}|j|jd�|j|jdjd�|j|jtj�|j|jd�|j	|j
�dS(NtTestServiceiRX(RRYR0R=RtmethodstassertIsR�RRR2(R4Rv((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestServiceDescriptoryscCsytjj}|jd}|j|j�|j||j�|jd|j�|jd|j	�|jd|j
�dS(NR�s*protobuf_unittest.TestAllTypes.oneof_fieldi(RR�RYR\RnRmR=RGRRR(R4RpRr((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestOneofDescriptor�s
	
(R�R�R�R	RRRR8R<R@RDRE(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR�s			#	1		
		tDescriptorCopyToProtoTestcBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
ejej�dkd
�d��Zejej�dkd�d��ZRS(s)Tests for CopyTo functions of Descriptor.cCsF|�}tj||�|j||dt|�t|�f�dS(Ns#Not equal,
Actual:
%s
Expected:
%s
(R	tMergeR=R�(R4tactual_prototexpected_classtexpected_asciitexpected_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt_AssertProtoEqual�s	cCs-|�}|j|�|j|||�dS(N(R�RL(R4tdesctexpected_proto_classtexpected_proto_asciitactual((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt_InternalTestCopyToProto�s	
cCs |jtjjtjt�dS(N(RQRtTestEmptyMessageRYRtDescriptorProtot#TEST_EMPTY_MESSAGE_DESCRIPTOR_ASCII(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_EmptyMessage�s	cCs)d}|jtjjjtj|�dS(Ns�
      name: 'NestedMessage'
      field: <
        name: 'bb'
        number: 1
        label: 1  # Optional
        type: 5  # TYPE_INT32
      >
      (RQRR�RRYRRS(R4tTEST_NESTED_MESSAGE_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_NestedMessage�s
	cCs&d}|jtjjtj|�dS(Ns�
      name: 'TestForeignNested'
      field: <
        name: 'foreign_nested'
        number: 1
        label: 1  # Optional
        type: 11  # TYPE_MESSAGE
        type_name: '.protobuf_unittest.TestAllTypes.NestedMessage'
      >
      (RQRtTestForeignNestedRYRRS(R4tTEST_FOREIGN_NESTED_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt$testCopyToProto_ForeignNestedMessage�s

	cCs&d}|jtjjtj|�dS(Ns�
      name: 'ForeignEnum'
      value: <
        name: 'FOREIGN_FOO'
        number: 4
      >
      value: <
        name: 'FOREIGN_BAR'
        number: 5
      >
      value: <
        name: 'FOREIGN_BAZ'
        number: 6
      >
      (RQRRRYRtEnumDescriptorProto(R4tTEST_FOREIGN_ENUM_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_ForeignEnum�s
	cCs&d}|jtjjtj|�dS(Ns�
      name: 'TestDeprecatedFields'
      field: <
        name: 'deprecated_int32'
        number: 1
        label: 1  # Optional
        type: 5  # TYPE_INT32
        options: <
          deprecated: true
        >
      >
      (RQRtTestDeprecatedFieldsRYRRS(R4tTEST_DEPRECATED_FIELDS_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_Options�s
	cCs&d}|jtjjtj|�dS(Ns}
      name: 'TestEmptyMessageWithExtensions'
      extension_range: <
        start: 1
        end: 536870912
      >
      (RQRtTestEmptyMessageWithExtensionsRYRRS(R4t(TEST_EMPTY_MESSAGE_WITH_EXTENSIONS_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_AllExtensions�s
	cCs&d}|jtjjtj|�dS(Ns
      name: 'TestMultipleExtensionRanges'
      extension_range: <
        start: 42
        end: 43
      >
      extension_range: <
        start: 4143
        end: 4244
      >
      extension_range: <
        start: 65536
        end: 536870912
      >
      (RQRR7RYRRS(R4t*TEST_MESSAGE_WITH_SEVERAL_EXTENSIONS_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt!testCopyToProto_SeveralExtensions�s
	cCs+ddd}|jtjtj|�dS(Nsd
      name: 'google/protobuf/unittest_import.proto'
      package: 'protobuf_unittest_import'
      dependency: 'google/protobuf/unittest_import_public.proto'
      message_type: <
        name: 'ImportMessage'
        field: <
          name: 'd'
          number: 1
          label: 1  # Optional
          type: 5  # TYPE_INT32
        >
      >
      s�enum_type: <
        name: 'ImportEnum'
        value: <
          name: 'IMPORT_FOO'
          number: 7
        >
        value: <
          name: 'IMPORT_BAR'
          number: 8
        >
        value: <
          name: 'IMPORT_BAZ'
          number: 9
        >
      >
      enum_type: <
        name: 'ImportEnumForMap'
        value: <
          name: 'UNKNOWN'
          number: 0
        >
        value: <
          name: 'FOO'
          number: 1
        >
        value: <
          name: 'BAR'
          number: 2
        >
      >
      options: <
        java_package: 'com.google.protobuf.test'
        optimize_for: 1  # SPEED
      sG
        cc_enable_arenas: true
      >
      public_dependency: 0
    (RQRRYRR(R4t%UNITTEST_IMPORT_FILE_DESCRIPTOR_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_FileDescriptors0cCs&d}|jtjjtj|�dS(NsM
      name: 'TestService'
      method: <
        name: 'Foo'
        input_type: '.protobuf_unittest.FooRequest'
        output_type: '.protobuf_unittest.FooResponse'
      >
      method: <
        name: 'Bar'
        input_type: '.protobuf_unittest.BarRequest'
        output_type: '.protobuf_unittest.BarResponse'
      >
      (RQRRARYRtServiceDescriptorProto(R4tTEST_SERVICE_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt!testCopyToProto_ServiceDescriptorNs

	Rs It is not implemented in python.cCs5d}tjjjd�}|j|tj|�dS(Ns}
      name: 'Foo'
      input_type: '.protobuf_unittest.FooRequest'
      output_type: '.protobuf_unittest.FooResponse'
    RX(RRARYR_RQRtMethodDescriptorProto(R4RJRw((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt testCopyToProto_MethodDescriptoras		s!Pure python does not raise error.cCs�tj�}|jttjjj|�|jttjjj|�|jttj	jj|�tj
�}|jttjj|�dS(N(RRR@RBRRRRYR�RRARSR(R4R5tproto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_TypeErrorrs					(R�R�R�RLRQRURWRZR]R`RcReRgRjR�R�RR�RlRn(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyRF�s$											;	tMakeDescriptorTestcBs5eZd�Zd�Zd�Zd�Zd�ZRS(c	Csrtj�}d|_|jj�}|j|_|jj�}d|_|jj�}d|_|jj�}d|_d|_|j	j�}d|_d|_t
jj|_
t
jj|_|j	j�}d|_d	|_t
jj|_
t
jj|_d|_|j	j�}d|_d
|_t
jj|_
t
jj|_d|_t
j|�}|j|jdjt
jj�|j|jdjt
jj�|j|jdjj|�|j|jdjdjd
�|j|jdjdj|jdjd�|j|j�|j|jdj�tj �dkrn|j!t"��t#|jd_WdQXndS(NtFoo2tSubR=tBARiituint64_fielditnested_message_fieldt	bar_fieldsFoo2.Sub.FOOisFoo2.Sub.bar_fieldR�($RRRRRtnested_typeR#R$RRRtFieldDescriptortLABEL_REQUIREDRtTYPE_UINT64RtTYPE_MESSAGEt	type_namet	TYPE_ENUMtMakeDescriptorR=RFtcpp_typetCPPTYPE_UINT64tCPPTYPE_MESSAGERGtnested_typesRRRnRmRR�R@R�R�(	R4tfile_descriptor_protoRRvR#t
enum_type_valRt
enum_fieldtresult((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt"testMakeDescriptorWithNestedFields�sX													

cCs#tj�}d|_|jj�}|j|_|jj�}d|_|jj�}d|_d|_|jj�}d|_d|_t	j
j|_t	j
j
|_|jj�}d|_d|_t	j
j|_t	j
j|_d	|_t	j|�}|j|jd
jt	j
j�dS(NRXR=RriiRsiRusFoo.FOOi(RRRRRR#R$RRRRwRxRRyRR|R{R}R=RFR~R(R4R�RR#R�RR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt&testMakeDescriptorWithUnsignedIntField�s.									cCsatj�}tj}|jj|�tj|�}|j�}|j	d|j
tjj�dS(Nie(
RRSRR�RYR�RR}RKR=RaR�R�(R4tdescriptor_prototaggregate_messagetreformed_descriptorR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestMakeDescriptorWithOptions�s		cCs�tj�}d|_dddddg}dddddg}xCtt|��D]/}|jj�}|d|_|||_qRWtj	|�}x8tt|��D]$}|j
|j|j||�q�WdS(	NtBartfoo_footFooBartfooBaztfooFootfoobartfooBari(
RRSRtrangeRRRRRR}R=RFR(R4R�tnamestcamelcase_namesRRR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCamelcaseName�s	
cCs�tj�}d|_ddddddg}dddddd	g}xCtt|��D]/}|jj�}|d
|_|||_qXWd	|_t	j
|�}x8tt|��D]$}|j|j|j||�q�WdS(NtTestJsonNamet
field_namet	fieldNamet	FieldNamet_field_namet
FIELD_NAMEt	json_namet	FIELDNAMEs@typei(
RRSRR�RRRRR�RR}R=RF(R4R�R�t
json_namesRRR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestJsonName�s			
	(R�R�R�R�R�R�R�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyRo�s
	/		
	t__main__(R�t
__author__R+t	unittest2R�tImportErrortgoogle.protobufRRRRtgoogle.protobuf.internalRRRRRR	RTtTestCaseR
R�RRFRoR�tmain(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt<module> s2
����vPK�\�???&protobuf/internal/testing_refleaks.pyonu�[����
���hc@s�dZddlZddlZyddlZWnek
rMddlZnXyddlZWnek
r}ddlZnXdejfd��YZ	dej
fd��YZeed�r�eZ
ejZnej
Z
d�ZdS(	s[A subclass of unittest.TestCase which checks for reference leaks.

To use:
- Use testing_refleak.BaseTestCase instead of unittest.TestCase
- Configure and compile Python with --with-pydebug

If sys.gettotalrefcount() is not available (because Python was built without
the Py_DEBUG option), then this module is a no-op and tests will run normally.
i����NtLocalTestResultcBs2eZdZd�Zd�Zd�Zd�ZRS(sHA TestResult which forwards events to a parent object, except for Skips.cCstjj|�||_dS(N(tunittestt
TestResultt__init__t
parent_result(tselfR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyR:scCs|jj||�dS(N(RtaddError(Rttestterror((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyR>scCs|jj||�dS(N(Rt
addFailure(RRR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyR	AscCsdS(N((RRtreason((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pytaddSkipDs(t__name__t
__module__t__doc__RRR	R(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyR7s
			tReferenceLeakCheckerTestCasecBs)eZdZdZdd�Zd�ZRS(sHA TestCase which runs tests multiple times, collecting reference counts.icCstjj�|_tt|�jd|�tt|�jd|�d}t|�}g}xYt|j	�D]H}|j
�}tt|�jd|�|j
�}|j||�qlW||fGHy|j|dg|j	�Wn't
k
r
|j|tj��nXdS(Ntresulti(tcopyregtdispatch_tabletcopyt_saved_pickle_registrytsuperRtrunRtrangetNB_RUNSt
_getRefcountstappendtassertEqualt	ExceptionRtsystexc_info(RRtoldrefcounttlocal_resulttrefcount_deltast_tnewrefcount((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyRMs 
cCsHtjj�tjj|j�tj�tj�tj�tj�S(N(	RRtcleartupdateRtgctcollectRtgettotalrefcount(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyRgs



N(RR
RRtNoneRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyRHsR(cCs~d�}|S(NcSs|S(N((tfunc((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pytSame|s((R
R+((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pytSkipReferenceLeakCheckerzs	(RR&Rtcopy_regRtImportErrort	unittest2RRRtTestCaseRthasattrtBaseTestCasetskipR,(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyt<module>'s"

*	PK�\3C!��*protobuf/internal/symbol_database_test.pycnu�[����
���hc@s�dZyddlZWnek
r5ddlZnXddlmZddlmZddlmZddlmZdej	fd��YZ
ed	kr�ej�ndS(
s*Tests for google.protobuf.symbol_database.i����N(tunittest_pb2(t
descriptor(tdescriptor_pool(tsymbol_databasetSymbolDatabaseTestcBsYeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	cCs�tjr$tjdtj��}ntj�}|jtj�|j	tj
�|j	tj
j�|j	tj
j�|j	tj
j
�|jtjj�|jtj
jj�|jtj�|S(Ntpool(Rt_USE_C_DESCRIPTORSRtSymbolDatabaseRtDefaulttRegisterFileDescriptorRt
DESCRIPTORtRegisterMessagetTestAllTypest
NestedMessaget
OptionalGroupt
RepeatedGrouptRegisterEnumDescriptortForeignEnumt
NestedEnumtRegisterServiceDescriptort_TESTSERVICE(tselftdb((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyt	_Database/s	cCs5|j�jtjj�}|j|tjk�dS(N(RtGetPrototypeRRR
t
assertTrue(Rtinstance((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestGetPrototypeAscCs6|j�jdg�}|jtj|dk�dS(Nsgoogle/protobuf/unittest.protosprotobuf_unittest.TestAllTypes(RtGetMessagesRRR(Rtmessages((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestGetMessagesFs
cCs�|jtj|j�jd��|jtjj|j�jd��|jtjj|j�jd��|jtjj|j�jd��dS(Nsprotobuf_unittest.TestAllTypess,protobuf_unittest.TestAllTypes.NestedMessages,protobuf_unittest.TestAllTypes.OptionalGroups,protobuf_unittest.TestAllTypes.RepeatedGroup(tassertEqualRRRt	GetSymbolR
RR(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyt
testGetSymbolMs


cCsN|jd|j�jjd�j�|jd|j�jjd�j�dS(Nsprotobuf_unittest.ForeignEnums)protobuf_unittest.TestAllTypes.NestedEnum(RRRtFindEnumTypeByNamet	full_name(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyt	testEnums[s
cCsN|jd|j�jjd�j�|jd|j�jjd�j�dS(Nsprotobuf_unittest.TestAllTypess,protobuf_unittest.TestAllTypes.NestedMessage(RRRtFindMessageTypeByNameR#(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestFindMessageTypeByNamefs
cCs)|jd|j�jjd�j�dS(Nsprotobuf_unittest.TestService(RRRtFindServiceByNameR#(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestFindServiceByNamepscCsN|jd|j�jjd�j�|jd|j�jjd�j�dS(Nsgoogle/protobuf/unittest.protos)protobuf_unittest.TestAllTypes.NestedEnumsprotobuf_unittest.TestAllTypes(RRRtFindFileContainingSymboltname(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestFindFileContainingSymbolvs
cCs)|jd|j�jjd�j�dS(Nsgoogle/protobuf/unittest.proto(RRRtFindFileByNameR*(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestFindFileByName�s(t__name__t
__module__RRRR!R$R&R(R+R-(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyR-s						
		t__main__(
t__doc__t	unittest2tunittesttImportErrortgoogle.protobufRRRRtTestCaseRR.tmain(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyt<module> s
[PK�\�Ӈ��*protobuf/internal/file_options_test_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/file_options_test.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/file_options_test.proto',
  package='google.protobuf.python.internal',
  syntax='proto2',
  serialized_pb=_b('\n0google/protobuf/internal/file_options_test.proto\x12\x1fgoogle.protobuf.python.internal\x1a google/protobuf/descriptor.proto\"\x1e\n\nFooOptions\x12\x10\n\x08\x66oo_name\x18\x01 \x01(\t:a\n\x0b\x66oo_options\x12\x1c.google.protobuf.FileOptions\x18\xac\xec\xb6\x39 \x01(\x0b\x32+.google.protobuf.python.internal.FooOptions')
  ,
  dependencies=[google_dot_protobuf_dot_descriptor__pb2.DESCRIPTOR,])


FOO_OPTIONS_FIELD_NUMBER = 120436268
foo_options = _descriptor.FieldDescriptor(
  name='foo_options', full_name='google.protobuf.python.internal.foo_options', index=0,
  number=120436268, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)


_FOOOPTIONS = _descriptor.Descriptor(
  name='FooOptions',
  full_name='google.protobuf.python.internal.FooOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='foo_name', full_name='google.protobuf.python.internal.FooOptions.foo_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=119,
  serialized_end=149,
)

DESCRIPTOR.message_types_by_name['FooOptions'] = _FOOOPTIONS
DESCRIPTOR.extensions_by_name['foo_options'] = foo_options
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

FooOptions = _reflection.GeneratedProtocolMessageType('FooOptions', (_message.Message,), dict(
  DESCRIPTOR = _FOOOPTIONS,
  __module__ = 'google.protobuf.internal.file_options_test_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.FooOptions)
  ))
_sym_db.RegisterMessage(FooOptions)

foo_options.message_type = _FOOOPTIONS
google_dot_protobuf_dot_descriptor__pb2.FileOptions.RegisterExtension(foo_options)

# @@protoc_insertion_point(module_scope)
PK�\��P���!protobuf/internal/any_test_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/any_test.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/any_test.proto',
  package='google.protobuf.internal',
  syntax='proto2',
  serialized_pb=_b('\n\'google/protobuf/internal/any_test.proto\x12\x18google.protobuf.internal\x1a\x19google/protobuf/any.proto\"\xc0\x01\n\x07TestAny\x12#\n\x05value\x18\x01 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x11\n\tint_value\x18\x02 \x01(\x05\x12\x42\n\tmap_value\x18\x03 \x03(\x0b\x32/.google.protobuf.internal.TestAny.MapValueEntry\x1a/\n\rMapValueEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01*\x08\x08\n\x10\x80\x80\x80\x80\x02\"\x85\x01\n\x11TestAnyExtension1\x12\t\n\x01i\x18\x0f \x01(\x05\x32\x65\n\nextension1\x12!.google.protobuf.internal.TestAny\x18\xab\xff\xf6. \x01(\x0b\x32+.google.protobuf.internal.TestAnyExtension1')
  ,
  dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,])




_TESTANY_MAPVALUEENTRY = _descriptor.Descriptor(
  name='MapValueEntry',
  full_name='google.protobuf.internal.TestAny.MapValueEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='google.protobuf.internal.TestAny.MapValueEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.internal.TestAny.MapValueEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=232,
  serialized_end=279,
)

_TESTANY = _descriptor.Descriptor(
  name='TestAny',
  full_name='google.protobuf.internal.TestAny',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.internal.TestAny.value', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='int_value', full_name='google.protobuf.internal.TestAny.int_value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_value', full_name='google.protobuf.internal.TestAny.map_value', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTANY_MAPVALUEENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(10, 536870912), ],
  oneofs=[
  ],
  serialized_start=97,
  serialized_end=289,
)


_TESTANYEXTENSION1 = _descriptor.Descriptor(
  name='TestAnyExtension1',
  full_name='google.protobuf.internal.TestAnyExtension1',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='i', full_name='google.protobuf.internal.TestAnyExtension1.i', index=0,
      number=15, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='extension1', full_name='google.protobuf.internal.TestAnyExtension1.extension1', index=0,
      number=98418603, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=292,
  serialized_end=425,
)

_TESTANY_MAPVALUEENTRY.containing_type = _TESTANY
_TESTANY.fields_by_name['value'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_TESTANY.fields_by_name['map_value'].message_type = _TESTANY_MAPVALUEENTRY
DESCRIPTOR.message_types_by_name['TestAny'] = _TESTANY
DESCRIPTOR.message_types_by_name['TestAnyExtension1'] = _TESTANYEXTENSION1
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestAny = _reflection.GeneratedProtocolMessageType('TestAny', (_message.Message,), dict(

  MapValueEntry = _reflection.GeneratedProtocolMessageType('MapValueEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTANY_MAPVALUEENTRY,
    __module__ = 'google.protobuf.internal.any_test_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.internal.TestAny.MapValueEntry)
    ))
  ,
  DESCRIPTOR = _TESTANY,
  __module__ = 'google.protobuf.internal.any_test_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.TestAny)
  ))
_sym_db.RegisterMessage(TestAny)
_sym_db.RegisterMessage(TestAny.MapValueEntry)

TestAnyExtension1 = _reflection.GeneratedProtocolMessageType('TestAnyExtension1', (_message.Message,), dict(
  DESCRIPTOR = _TESTANYEXTENSION1,
  __module__ = 'google.protobuf.internal.any_test_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.TestAnyExtension1)
  ))
_sym_db.RegisterMessage(TestAnyExtension1)

_TESTANYEXTENSION1.extensions_by_name['extension1'].message_type = _TESTANYEXTENSION1
TestAny.RegisterExtension(_TESTANYEXTENSION1.extensions_by_name['extension1'])

_TESTANY_MAPVALUEENTRY.has_options = True
_TESTANY_MAPVALUEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
# @@protoc_insertion_point(module_scope)
PK�\)/xHH/protobuf/internal/descriptor_pool_test2_pb2.pyonu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZddlmZdd
lTejddddddded�dejejgdejg�Zejdddddddedejddddd d!d"dd#d�ejdd$dd%d d&d"dd#d�gd'dd"dd(d)d*d+�	Zeje�ejdddd,dddedejdd-ddd d.d"dd#d�ejdd/dd%d d0d"dd#d�gd'dd"dd(d1d*d2�	Zeje�ejdddd3dddedejdd4ddd d5d"dd#d�ejdd6dd%d d7d"dd#d�gd'dd"dd(d8d*d9�	Zeje�ejdd:dd;ddded'dd<ejdd=dd>ddd d%d#d7d?d@dAd%dBe dCd!dDddEdd'ddFe!dGdd"dde�ejddHddIdd%d dJd#dKd?dKdAd%dBe dCedL�j"dM�dDddEdd'ddFe!dGdd"dde�gdNgdOgdPegd"ddQe!dddRgdSgd(dTd*d+�Z#ejddUddVddded'dd<ejdd=ddWddd d%d#d7d?d@dAd%dBe dCd0dDddEdd'ddFe!dGdd"dde�ejddHddXdd%d dJd#dKd?dKdAd%dBe dCedY�j"dM�dDddEdd'ddFe!dGdd"dde�ejddZdd[ddJd dd#d\d?d]dAd%dBe!dCddDddEdd'ddFe!dGdd"dde�gdNgdOe#gdPegd"ddQe!dddRgdSgd(d^d*d2�Z$ejdd_dd`ddded'dd<ejdd=ddaddd d%d#d7d?d@dAd%dBe dCd7dDddEdd'ddFe!dGdd"dde�ejddbddcdd%d dJd#d\d?d]dAd%dBe!dCddDddEdd'ddFe!dGdd"dde�gdNejdddddeddd dfd#d\d?d]dAd%dBe!dCddDddEdd'ddFe dGdd"dde�gdOe$gdPegd"ddQe!dddRgdSgd(dgd*dh�Z%ee#j&d=_'e$e#_(e#e_(ee$j&d=_'e#e$j&dZ_)e%e$_(e$e_(ee%j&d=_'e$e%j&db_)e%e_(e%ej*d_<ej+e�e	j,d_ej-fe.dUe	j,dUej-fe.d:e	j,d:ej-fe.die#djdk��die$djdk��die%djdk��Z/ej0e/�ej0e/j1�ej0e/j1j2�e%e%j3dd_)ej4j5e%j3dd�dS(li����NiicCs|S(N((tx((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test2_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test2_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tdescriptor_pool_test1_pb2(tmore_messages_pb2(t*tnames4google/protobuf/internal/descriptor_pool_test2.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbs/
4google/protobuf/internal/descriptor_pool_test2.protogoogle.protobuf.python.internal4google/protobuf/internal/descriptor_pool_test1.proto,google/protobuf/internal/more_messages.proto"�
DescriptorPoolTest3X
nested_enum (2?.google.protobuf.python.internal.DescriptorPoolTest3.NestedEnum:XIZ
nested_message (2B.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage�

NestedMessagef
nested_enum (2M.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.NestedEnum:PI
nested_field (	:nuq
deep_nested_message (2T.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage�
DeepNestedMessagey
nested_enum (2_.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.NestedEnum:RHO
nested_field (	:sigma" 

NestedEnum
RHO	
SIGMA"!

NestedEnum
OMICRON
PI"

NestedEnum
NU

XI2�
descriptor_pool_test4.google.protobuf.python.internal.DescriptorPoolTest1� (24.google.protobuf.python.internal.DescriptorPoolTest3Ptdependenciestpublic_dependenciest
NestedEnumt	full_names^google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.NestedEnumtfilenametfiletvaluestRHOtindextnumberitoptionsttypetSIGMAiitcontaining_typetserialized_starti@tserialized_endi`sLgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.NestedEnumtOMICRONitPIiibi�s>google.protobuf.python.internal.DescriptorPoolTest3.NestedEnumtNUi
tXIii�i�tDeepNestedMessagesSgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessagetfieldstnested_enums_google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.nested_enumtcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetnested_fields`google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.nested_fieldii	tsigmasutf-8t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi�t
NestedMessagesAgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessagesMgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.nested_enumsNgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.nested_fieldtnutdeep_nested_messagesUgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.deep_nested_messageii
i�tDescriptorPoolTest3s3google.protobuf.python.internal.DescriptorPoolTest3s?google.protobuf.python.internal.DescriptorPoolTest3.nested_enumtnested_messagesBgoogle.protobuf.python.internal.DescriptorPoolTest3.nested_messagetdescriptor_pool_testsHgoogle.protobuf.python.internal.DescriptorPoolTest3.descriptor_pool_testi�i�i-t
DESCRIPTORt
__module__s2google.protobuf.internal.descriptor_pool_test2_pb2(6tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtgoogle.protobuf.internalR
tAgoogle_dot_protobuf_dot_internal_dot_descriptor__pool__test1__pb2Rt8google_dot_protobuf_dot_internal_dot_more__messages__pb2t*google.protobuf.internal.more_messages_pb2tFileDescriptorR?tEnumDescriptortNonetEnumValueDescriptort?_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUMtRegisterEnumDescriptort-_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_NESTEDENUMt_DESCRIPTORPOOLTEST3_NESTEDENUMt
DescriptortFieldDescriptortTruetFalsetdecodet4_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGEt"_DESCRIPTORPOOLTEST3_NESTEDMESSAGEt_DESCRIPTORPOOLTEST3tfields_by_nameR.RR-tmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR<tRegisterMessageR9R&textensions_by_nametDescriptorPoolTest1tRegisterExtension(((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test2_pb2.pyt<module>s�%
					
				
				
																								


PK�\��g[a[a&protobuf/internal/factory_test2_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/factory_test2.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf.internal import factory_test1_pb2 as google_dot_protobuf_dot_internal_dot_factory__test1__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/factory_test2.proto',
  package='google.protobuf.python.internal',
  syntax='proto2',
  serialized_pb=_b('\n,google/protobuf/internal/factory_test2.proto\x12\x1fgoogle.protobuf.python.internal\x1a,google/protobuf/internal/factory_test1.proto\"\xd8\x0b\n\x0f\x46\x61\x63tory2Message\x12\x11\n\tmandatory\x18\x01 \x02(\x05\x12\x45\n\x0e\x66\x61\x63tory_2_enum\x18\x02 \x01(\x0e\x32-.google.protobuf.python.internal.Factory2Enum\x12\x62\n\x15nested_factory_2_enum\x18\x03 \x01(\x0e\x32\x43.google.protobuf.python.internal.Factory2Message.NestedFactory2Enum\x12h\n\x18nested_factory_2_message\x18\x04 \x01(\x0b\x32\x46.google.protobuf.python.internal.Factory2Message.NestedFactory2Message\x12K\n\x11\x66\x61\x63tory_1_message\x18\x05 \x01(\x0b\x32\x30.google.protobuf.python.internal.Factory1Message\x12\x45\n\x0e\x66\x61\x63tory_1_enum\x18\x06 \x01(\x0e\x32-.google.protobuf.python.internal.Factory1Enum\x12\x62\n\x15nested_factory_1_enum\x18\x07 \x01(\x0e\x32\x43.google.protobuf.python.internal.Factory1Message.NestedFactory1Enum\x12h\n\x18nested_factory_1_message\x18\x08 \x01(\x0b\x32\x46.google.protobuf.python.internal.Factory1Message.NestedFactory1Message\x12J\n\x10\x63ircular_message\x18\t \x01(\x0b\x32\x30.google.protobuf.python.internal.Factory2Message\x12\x14\n\x0cscalar_value\x18\n \x01(\t\x12\x12\n\nlist_value\x18\x0b \x03(\t\x12I\n\x07grouped\x18\x0c \x03(\n28.google.protobuf.python.internal.Factory2Message.Grouped\x12:\n\x04loop\x18\x0f \x01(\x0b\x32,.google.protobuf.python.internal.LoopMessage\x12\x1e\n\x10int_with_default\x18\x10 \x01(\x05:\x04\x31\x37\x37\x36\x12!\n\x13\x64ouble_with_default\x18\x11 \x01(\x01:\x04\x39.99\x12(\n\x13string_with_default\x18\x12 \x01(\t:\x0bhello world\x12 \n\x11\x62ool_with_default\x18\x13 \x01(\x08:\x05\x66\x61lse\x12[\n\x11\x65num_with_default\x18\x14 \x01(\x0e\x32-.google.protobuf.python.internal.Factory2Enum:\x11\x46\x41\x43TORY_2_VALUE_1\x12&\n\x12\x62ytes_with_default\x18\x15 \x01(\x0c:\na\\373\\000c\x12\x13\n\toneof_int\x18\x16 \x01(\x05H\x00\x12\x16\n\x0coneof_string\x18\x17 \x01(\tH\x00\x1a&\n\x15NestedFactory2Message\x12\r\n\x05value\x18\x01 \x01(\t\x1a)\n\x07Grouped\x12\x0e\n\x06part_1\x18\r \x01(\t\x12\x0e\n\x06part_2\x18\x0e \x01(\t\"P\n\x12NestedFactory2Enum\x12\x1c\n\x18NESTED_FACTORY_2_VALUE_0\x10\x00\x12\x1c\n\x18NESTED_FACTORY_2_VALUE_1\x10\x01\x32I\n\x0eone_more_field\x12\x30.google.protobuf.python.internal.Factory1Message\x18\xe9\x07 \x01(\tB\r\n\x0boneof_field\"M\n\x0bLoopMessage\x12>\n\x04loop\x18\x01 \x01(\x0b\x32\x30.google.protobuf.python.internal.Factory2Message\"D\n\x19MessageWithNestedEnumOnly\"\'\n\nNestedEnum\x12\x19\n\x15NESTED_MESSAGE_ENUM_0\x10\x00\"\'\n\x11MessageWithOption\x12\x0e\n\x06\x66ield1\x18\x01 \x01(\x05:\x02\x10\x01*<\n\x0c\x46\x61\x63tory2Enum\x12\x15\n\x11\x46\x41\x43TORY_2_VALUE_0\x10\x00\x12\x15\n\x11\x46\x41\x43TORY_2_VALUE_1\x10\x01:H\n\ranother_field\x12\x30.google.protobuf.python.internal.Factory1Message\x18\xea\x07 \x01(\t')
  ,
  dependencies=[google_dot_protobuf_dot_internal_dot_factory__test1__pb2.DESCRIPTOR,])

_FACTORY2ENUM = _descriptor.EnumDescriptor(
  name='Factory2Enum',
  full_name='google.protobuf.python.internal.Factory2Enum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FACTORY_2_VALUE_0', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FACTORY_2_VALUE_1', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1816,
  serialized_end=1876,
)
_sym_db.RegisterEnumDescriptor(_FACTORY2ENUM)

Factory2Enum = enum_type_wrapper.EnumTypeWrapper(_FACTORY2ENUM)
FACTORY_2_VALUE_0 = 0
FACTORY_2_VALUE_1 = 1

ANOTHER_FIELD_FIELD_NUMBER = 1002
another_field = _descriptor.FieldDescriptor(
  name='another_field', full_name='google.protobuf.python.internal.another_field', index=0,
  number=1002, type=9, cpp_type=9, label=1,
  has_default_value=False, default_value=_b("").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)

_FACTORY2MESSAGE_NESTEDFACTORY2ENUM = _descriptor.EnumDescriptor(
  name='NestedFactory2Enum',
  full_name='google.protobuf.python.internal.Factory2Message.NestedFactory2Enum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='NESTED_FACTORY_2_VALUE_0', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NESTED_FACTORY_2_VALUE_1', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1454,
  serialized_end=1534,
)
_sym_db.RegisterEnumDescriptor(_FACTORY2MESSAGE_NESTEDFACTORY2ENUM)

_MESSAGEWITHNESTEDENUMONLY_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.MessageWithNestedEnumOnly.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='NESTED_MESSAGE_ENUM_0', index=0, number=0,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1734,
  serialized_end=1773,
)
_sym_db.RegisterEnumDescriptor(_MESSAGEWITHNESTEDENUMONLY_NESTEDENUM)


_FACTORY2MESSAGE_NESTEDFACTORY2MESSAGE = _descriptor.Descriptor(
  name='NestedFactory2Message',
  full_name='google.protobuf.python.internal.Factory2Message.NestedFactory2Message',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.python.internal.Factory2Message.NestedFactory2Message.value', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1371,
  serialized_end=1409,
)

_FACTORY2MESSAGE_GROUPED = _descriptor.Descriptor(
  name='Grouped',
  full_name='google.protobuf.python.internal.Factory2Message.Grouped',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='part_1', full_name='google.protobuf.python.internal.Factory2Message.Grouped.part_1', index=0,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='part_2', full_name='google.protobuf.python.internal.Factory2Message.Grouped.part_2', index=1,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1411,
  serialized_end=1452,
)

_FACTORY2MESSAGE = _descriptor.Descriptor(
  name='Factory2Message',
  full_name='google.protobuf.python.internal.Factory2Message',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='mandatory', full_name='google.protobuf.python.internal.Factory2Message.mandatory', index=0,
      number=1, type=5, cpp_type=1, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='factory_2_enum', full_name='google.protobuf.python.internal.Factory2Message.factory_2_enum', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_factory_2_enum', full_name='google.protobuf.python.internal.Factory2Message.nested_factory_2_enum', index=2,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_factory_2_message', full_name='google.protobuf.python.internal.Factory2Message.nested_factory_2_message', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='factory_1_message', full_name='google.protobuf.python.internal.Factory2Message.factory_1_message', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='factory_1_enum', full_name='google.protobuf.python.internal.Factory2Message.factory_1_enum', index=5,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_factory_1_enum', full_name='google.protobuf.python.internal.Factory2Message.nested_factory_1_enum', index=6,
      number=7, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_factory_1_message', full_name='google.protobuf.python.internal.Factory2Message.nested_factory_1_message', index=7,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='circular_message', full_name='google.protobuf.python.internal.Factory2Message.circular_message', index=8,
      number=9, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='scalar_value', full_name='google.protobuf.python.internal.Factory2Message.scalar_value', index=9,
      number=10, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='list_value', full_name='google.protobuf.python.internal.Factory2Message.list_value', index=10,
      number=11, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='grouped', full_name='google.protobuf.python.internal.Factory2Message.grouped', index=11,
      number=12, type=10, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='loop', full_name='google.protobuf.python.internal.Factory2Message.loop', index=12,
      number=15, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='int_with_default', full_name='google.protobuf.python.internal.Factory2Message.int_with_default', index=13,
      number=16, type=5, cpp_type=1, label=1,
      has_default_value=True, default_value=1776,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='double_with_default', full_name='google.protobuf.python.internal.Factory2Message.double_with_default', index=14,
      number=17, type=1, cpp_type=5, label=1,
      has_default_value=True, default_value=float(9.99),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_with_default', full_name='google.protobuf.python.internal.Factory2Message.string_with_default', index=15,
      number=18, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("hello world").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bool_with_default', full_name='google.protobuf.python.internal.Factory2Message.bool_with_default', index=16,
      number=19, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='enum_with_default', full_name='google.protobuf.python.internal.Factory2Message.enum_with_default', index=17,
      number=20, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bytes_with_default', full_name='google.protobuf.python.internal.Factory2Message.bytes_with_default', index=18,
      number=21, type=12, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("a\373\000c"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_int', full_name='google.protobuf.python.internal.Factory2Message.oneof_int', index=19,
      number=22, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_string', full_name='google.protobuf.python.internal.Factory2Message.oneof_string', index=20,
      number=23, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='one_more_field', full_name='google.protobuf.python.internal.Factory2Message.one_more_field', index=0,
      number=1001, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[_FACTORY2MESSAGE_NESTEDFACTORY2MESSAGE, _FACTORY2MESSAGE_GROUPED, ],
  enum_types=[
    _FACTORY2MESSAGE_NESTEDFACTORY2ENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='oneof_field', full_name='google.protobuf.python.internal.Factory2Message.oneof_field',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=128,
  serialized_end=1624,
)


_LOOPMESSAGE = _descriptor.Descriptor(
  name='LoopMessage',
  full_name='google.protobuf.python.internal.LoopMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='loop', full_name='google.protobuf.python.internal.LoopMessage.loop', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1626,
  serialized_end=1703,
)


_MESSAGEWITHNESTEDENUMONLY = _descriptor.Descriptor(
  name='MessageWithNestedEnumOnly',
  full_name='google.protobuf.python.internal.MessageWithNestedEnumOnly',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _MESSAGEWITHNESTEDENUMONLY_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1705,
  serialized_end=1773,
)


_MESSAGEWITHOPTION = _descriptor.Descriptor(
  name='MessageWithOption',
  full_name='google.protobuf.python.internal.MessageWithOption',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='field1', full_name='google.protobuf.python.internal.MessageWithOption.field1', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\020\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1775,
  serialized_end=1814,
)

_FACTORY2MESSAGE_NESTEDFACTORY2MESSAGE.containing_type = _FACTORY2MESSAGE
_FACTORY2MESSAGE_GROUPED.containing_type = _FACTORY2MESSAGE
_FACTORY2MESSAGE.fields_by_name['factory_2_enum'].enum_type = _FACTORY2ENUM
_FACTORY2MESSAGE.fields_by_name['nested_factory_2_enum'].enum_type = _FACTORY2MESSAGE_NESTEDFACTORY2ENUM
_FACTORY2MESSAGE.fields_by_name['nested_factory_2_message'].message_type = _FACTORY2MESSAGE_NESTEDFACTORY2MESSAGE
_FACTORY2MESSAGE.fields_by_name['factory_1_message'].message_type = google_dot_protobuf_dot_internal_dot_factory__test1__pb2._FACTORY1MESSAGE
_FACTORY2MESSAGE.fields_by_name['factory_1_enum'].enum_type = google_dot_protobuf_dot_internal_dot_factory__test1__pb2._FACTORY1ENUM
_FACTORY2MESSAGE.fields_by_name['nested_factory_1_enum'].enum_type = google_dot_protobuf_dot_internal_dot_factory__test1__pb2._FACTORY1MESSAGE_NESTEDFACTORY1ENUM
_FACTORY2MESSAGE.fields_by_name['nested_factory_1_message'].message_type = google_dot_protobuf_dot_internal_dot_factory__test1__pb2._FACTORY1MESSAGE_NESTEDFACTORY1MESSAGE
_FACTORY2MESSAGE.fields_by_name['circular_message'].message_type = _FACTORY2MESSAGE
_FACTORY2MESSAGE.fields_by_name['grouped'].message_type = _FACTORY2MESSAGE_GROUPED
_FACTORY2MESSAGE.fields_by_name['loop'].message_type = _LOOPMESSAGE
_FACTORY2MESSAGE.fields_by_name['enum_with_default'].enum_type = _FACTORY2ENUM
_FACTORY2MESSAGE_NESTEDFACTORY2ENUM.containing_type = _FACTORY2MESSAGE
_FACTORY2MESSAGE.oneofs_by_name['oneof_field'].fields.append(
  _FACTORY2MESSAGE.fields_by_name['oneof_int'])
_FACTORY2MESSAGE.fields_by_name['oneof_int'].containing_oneof = _FACTORY2MESSAGE.oneofs_by_name['oneof_field']
_FACTORY2MESSAGE.oneofs_by_name['oneof_field'].fields.append(
  _FACTORY2MESSAGE.fields_by_name['oneof_string'])
_FACTORY2MESSAGE.fields_by_name['oneof_string'].containing_oneof = _FACTORY2MESSAGE.oneofs_by_name['oneof_field']
_LOOPMESSAGE.fields_by_name['loop'].message_type = _FACTORY2MESSAGE
_MESSAGEWITHNESTEDENUMONLY_NESTEDENUM.containing_type = _MESSAGEWITHNESTEDENUMONLY
DESCRIPTOR.message_types_by_name['Factory2Message'] = _FACTORY2MESSAGE
DESCRIPTOR.message_types_by_name['LoopMessage'] = _LOOPMESSAGE
DESCRIPTOR.message_types_by_name['MessageWithNestedEnumOnly'] = _MESSAGEWITHNESTEDENUMONLY
DESCRIPTOR.message_types_by_name['MessageWithOption'] = _MESSAGEWITHOPTION
DESCRIPTOR.enum_types_by_name['Factory2Enum'] = _FACTORY2ENUM
DESCRIPTOR.extensions_by_name['another_field'] = another_field
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Factory2Message = _reflection.GeneratedProtocolMessageType('Factory2Message', (_message.Message,), dict(

  NestedFactory2Message = _reflection.GeneratedProtocolMessageType('NestedFactory2Message', (_message.Message,), dict(
    DESCRIPTOR = _FACTORY2MESSAGE_NESTEDFACTORY2MESSAGE,
    __module__ = 'google.protobuf.internal.factory_test2_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.Factory2Message.NestedFactory2Message)
    ))
  ,

  Grouped = _reflection.GeneratedProtocolMessageType('Grouped', (_message.Message,), dict(
    DESCRIPTOR = _FACTORY2MESSAGE_GROUPED,
    __module__ = 'google.protobuf.internal.factory_test2_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.Factory2Message.Grouped)
    ))
  ,
  DESCRIPTOR = _FACTORY2MESSAGE,
  __module__ = 'google.protobuf.internal.factory_test2_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.Factory2Message)
  ))
_sym_db.RegisterMessage(Factory2Message)
_sym_db.RegisterMessage(Factory2Message.NestedFactory2Message)
_sym_db.RegisterMessage(Factory2Message.Grouped)

LoopMessage = _reflection.GeneratedProtocolMessageType('LoopMessage', (_message.Message,), dict(
  DESCRIPTOR = _LOOPMESSAGE,
  __module__ = 'google.protobuf.internal.factory_test2_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.LoopMessage)
  ))
_sym_db.RegisterMessage(LoopMessage)

MessageWithNestedEnumOnly = _reflection.GeneratedProtocolMessageType('MessageWithNestedEnumOnly', (_message.Message,), dict(
  DESCRIPTOR = _MESSAGEWITHNESTEDENUMONLY,
  __module__ = 'google.protobuf.internal.factory_test2_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.MessageWithNestedEnumOnly)
  ))
_sym_db.RegisterMessage(MessageWithNestedEnumOnly)

MessageWithOption = _reflection.GeneratedProtocolMessageType('MessageWithOption', (_message.Message,), dict(
  DESCRIPTOR = _MESSAGEWITHOPTION,
  __module__ = 'google.protobuf.internal.factory_test2_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.MessageWithOption)
  ))
_sym_db.RegisterMessage(MessageWithOption)

google_dot_protobuf_dot_internal_dot_factory__test1__pb2.Factory1Message.RegisterExtension(another_field)
google_dot_protobuf_dot_internal_dot_factory__test1__pb2.Factory1Message.RegisterExtension(_FACTORY2MESSAGE.extensions_by_name['one_more_field'])

_MESSAGEWITHOPTION.has_options = True
_MESSAGEWITHOPTION._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\020\001'))
# @@protoc_insertion_point(module_scope)
PK�\���}}protobuf/internal/test_util.pyonu�[����
���hc@s�dZdZddlZddlZddlZddlmZddlmZye	Wne
k
rqeZ	nXd�Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zdejfd��YZdS(spUtilities for Python proto2 tests.

This is intentionally modeled on C++ code in
//google/protobuf/test_util.*.
s#robinson@google.com (Will Robinson)i����N(tunittest_import_pb2(tunittest_pb2cCs|jjdkS(Ntproto2(t
DESCRIPTORtsyntax(tmessage((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytIsProto27scCsrd|_d|_d|_d|_d|_d|_d|_d|_d	|_d
|_	d|_
d|_t|_
d
|_d|_t|�r�d|j_nd|j_d|j_d|j_d|j_tjj|_tj|_ t|�rt!j"|_#nd|_$d|_%|j&j'd�|j(j'd�|j)j'd�|j*j'd�|j+j'd�|j,j'd�|j-j'd�|j.j'd�|j/j'd�|j0j'd�|j1j'd �|j2j'd!�|j3j't�|j4j'd"�|j5j'd#�t|�r+d$|j6j7�_nd%|j8j7�_d&|j9j7�_d'|j:j7�_d(|j;j7�_|j<j'tjj=�|j>j'tj?�t|�r�|j@j't!jA�n|jBj'd)�|jCj'd*�|j&j'd+�|j(j'd+�|j)j'd+�|j*j'd+�|j+j'd+�|j,j'd+�|j-j'd+�|j.j'd+�|j/j'd+�|j0j'd+�|j1j'd+�|j2j'd+�|j3j't�|j4j'd,�|j5j'd-�d.|j&d/<d0|j(d/<d1|j)d/<d2|j*d/<d3|j+d/<d4|j,d/<d5|j-d/<d6|j.d/<d7|j/d/<d8|j0d/<d9|j1d/<d:|j2d/<tD|j3d/<d;|j4d/<d<|j5d/<t|�r�d=|j6j7�_nd>|j8j7�_d?|j9j7�_d@|j:j7�_dA|j;j7�_|j<j'tjj=�tjj|j<d/<|j>j'tj�t|�rX|j@j't!j"�n|jBj'dB�|jCj'dC�t|�rGdD|_EdE|_FdF|_GdG|_HdH|_IdI|_JdJ|_KdK|_LdL|_MdM|_NdN|_OdO|_PtD|_QdP|_RdQ|_StjjT|_UtjV|_Wt!jX|_YdR|_ZdS|_[ndT|_\dU|j]_dV|_^dW|__dXS(YsmSets every non-lazy field in the message to a unique value.

  Args:
    message: A TestAllTypes instance.
  ieifigihiiijikiliminioipu115t116iuiviwixi~u124u125i�i�i�i�i�i�i�i�i�i�i�i�u215t216i�i�i�i�i�u224u225iu0t0i-ii.i/i0i1i2i3i4i5i6i7i8u315t316i=i>i?i@iGu324u325i�i�i�i�i�i�i�i�i�i�i�i�t415t416t424t425iYiZt603t604N(`toptional_int32toptional_int64toptional_uint32toptional_uint64toptional_sint32toptional_sint64toptional_fixed32toptional_fixed64toptional_sfixed32toptional_sfixed64toptional_floattoptional_doubletTruet
optional_booltoptional_stringtoptional_bytesRt
optionalgrouptatoptional_nested_messagetbbtoptional_foreign_messagetctoptional_import_messagetdtoptional_public_import_messageteRtTestAllTypestBAZtoptional_nested_enumtFOREIGN_BAZtoptional_foreign_enumRt
IMPORT_BAZtoptional_import_enumtoptional_string_piecet
optional_cordtrepeated_int32tappendtrepeated_int64trepeated_uint32trepeated_uint64trepeated_sint32trepeated_sint64trepeated_fixed32trepeated_fixed64trepeated_sfixed32trepeated_sfixed64trepeated_floattrepeated_doublet
repeated_booltrepeated_stringtrepeated_bytest
repeatedgrouptaddtrepeated_nested_messagetrepeated_foreign_messagetrepeated_import_messagetrepeated_lazy_messagetrepeated_nested_enumtBARtrepeated_foreign_enumtFOREIGN_BARtrepeated_import_enumt
IMPORT_BARtrepeated_string_piecet
repeated_cordtFalset
default_int32t
default_int64tdefault_uint32tdefault_uint64tdefault_sint32tdefault_sint64tdefault_fixed32tdefault_fixed64tdefault_sfixed32tdefault_sfixed64t
default_floattdefault_doubletdefault_booltdefault_stringt
default_bytestFOOtdefault_nested_enumtFOREIGN_FOOtdefault_foreign_enumt
IMPORT_FOOtdefault_import_enumtdefault_string_piecetdefault_cordtoneof_uint32toneof_nested_messagetoneof_stringtoneof_bytes(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllNonLazyFields;s�																	














																		cCst|�d|j_dS(Ni(Rntoptional_lazy_messageR$(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllFields�s
cCs�|j}t}t}d||j<d||j<d||j<d||j<d||j<d||j<d||j	<d||j
<d	||j<d
||j<d||j
<d||j<t||j<d
||j<d||j<d||j_d||j_d||j_d||j_d||j_d||j_|jj||j <|jj||j <|j!||j"<|j#||j$<d||j%<d||j&<||j'j(d�||j)j(d�||j*j(d�||j+j(d�||j,j(d�||j-j(d�||j.j(d�||j/j(d�||j0j(d�||j1j(d �||j2j(d!�||j3j(d"�||j4j(t�||j5j(d#�||j6j(d$�d%||j7j8�_d&||j9j8�_d'||j:j8�_d(||j;j8�_d)||j<j8�_||j=j(|jj>�||j?j(|j@�||jAj(|jB�||jCj(d*�||jDj(d+�||j'j(d,�||j)j(d-�||j*j(d.�||j+j(d/�||j,j(d0�||j-j(d1�||j.j(d2�||j/j(d3�||j0j(d4�||j1j(d5�||j2j(d6�||j3j(d7�||j4j(tE�||j5j(d8�||j6j(d9�d:||j7j8�_d;||j9j8�_d<||j:j8�_d=||j;j8�_d>||j<j8�_||j=j(|jj�||j?j(|j!�||jAj(|j#�||jCj(d?�||jDj(d@�dA||jF<dB||jG<dC||jH<dD||jI<dE||jJ<dF||jK<dG||jL<dH||jM<dI||jN<dJ||jO<dK||jP<dL||jQ<tE||jR<dM||jS<dN||jT<|jjU||jV<|jW||jX<|jY||jZ<dO||j[<dP||j\<dQ||j]<dR||j^_dS||j_<dT||j`<dUS(VszSets every extension in the message to a unique value.

  Args:
    message: A unittest_pb2.TestAllExtensions instance.
  ieifigihiiijikiliminioipu115Riuiviwixi~iu124u125i�i�i�i�i�i�i�i�i�i�i�i�u215Ri�i�i�i�i�u224u225i-i.i/i0i1i2i3i4i5i6i7i8u315R
i=i>i?i@iGu324u325i�i�i�i�i�i�i�i�i�i�i�i�u415Ru424RiYiZu603RN(at
ExtensionsRRtoptional_int32_extensiontoptional_int64_extensiontoptional_uint32_extensiontoptional_uint64_extensiontoptional_sint32_extensiontoptional_sint64_extensiontoptional_fixed32_extensiontoptional_fixed64_extensiontoptional_sfixed32_extensiontoptional_sfixed64_extensiontoptional_float_extensiontoptional_double_extensionRtoptional_bool_extensiontoptional_string_extensiontoptional_bytes_extensiontoptionalgroup_extensionR"t!optional_nested_message_extensionR$t"optional_foreign_message_extensionR&t!optional_import_message_extensionR(t(optional_public_import_message_extensionR*toptional_lazy_message_extensionR+R,toptional_nested_enum_extensionR.toptional_foreign_enum_extensionR0toptional_import_enum_extensiontoptional_string_piece_extensiontoptional_cord_extensiontrepeated_int32_extensionR5trepeated_int64_extensiontrepeated_uint32_extensiontrepeated_uint64_extensiontrepeated_sint32_extensiontrepeated_sint64_extensiontrepeated_fixed32_extensiontrepeated_fixed64_extensiontrepeated_sfixed32_extensiontrepeated_sfixed64_extensiontrepeated_float_extensiontrepeated_double_extensiontrepeated_bool_extensiontrepeated_string_extensiontrepeated_bytes_extensiontrepeatedgroup_extensionREt!repeated_nested_message_extensiont"repeated_foreign_message_extensiont!repeated_import_message_extensiontrepeated_lazy_message_extensiontrepeated_nested_enum_extensionRKtrepeated_foreign_enum_extensionRMtrepeated_import_enum_extensionROtrepeated_string_piece_extensiontrepeated_cord_extensionRRtdefault_int32_extensiontdefault_int64_extensiontdefault_uint32_extensiontdefault_uint64_extensiontdefault_sint32_extensiontdefault_sint64_extensiontdefault_fixed32_extensiontdefault_fixed64_extensiontdefault_sfixed32_extensiontdefault_sfixed64_extensiontdefault_float_extensiontdefault_double_extensiontdefault_bool_extensiontdefault_string_extensiontdefault_bytes_extensionRbtdefault_nested_enum_extensionRdtdefault_foreign_enum_extensionRftdefault_import_enum_extensiontdefault_string_piece_extensiontdefault_cord_extensiontoneof_uint32_extensiontoneof_nested_message_extensiontoneof_string_extensiontoneof_bytes_extension(Rt
extensionstpb2t
import_pb2((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllExtensions�s�	



































cCs?d|_d|_d|_d|jtj<d|jtj<dS(s�Sets every field and extension in the message to a unique value.

  Args:
    message: A unittest_pb2.TestAllExtensions message.
  itfoog�?itbarN(tmy_intt	my_stringtmy_floatRqRtmy_extension_inttmy_extension_string(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllFieldsAndExtensionsms
			cCs"tj}tj}g}tj�}d|_|j|j��|j�d|j|<|j|j��|j�d|_	|j|j��|j�d|j|<|j|j��|j�d|_
|j|j��|j�dj|�}||krtd||f��ndS(	s�Ensures that serialized is the serialization we expect for a message
  filled with SetAllFieldsAndExtensions().  (Specifically, ensures that the
  serialization is in canonical, tag-number order).
  iiR�R�g�?tsExpected %r, found %rN(
RR�R�tTestFieldOrderingsR�R5tSerializeToStringtClearRqR�R�tjoint
ValueError(t
serializedR�R�texpected_stringsRtexpected((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt#ExpectAllFieldsAndExtensionsInOrderzs,			


	


	
cCs�|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|j|jd	��|j|jd
��|j|jd��|j|jd��|j|jd
��|j|jd��|j|jd��t|�ro|j|jd��n|j|jd��|j|jd��|j|jd��|j|jjd��|j|jjd��|j|jjd��|j|jjd��|j|jd��|j|jd��t|�rf|j|jd��n|j|jd��|j|jd��|jd|j�|jd|j	�|jd|j
�|jd |j�|jd!|j�|jd"|j
�|jd#|j�|jd$|j�|jd%|j�|jd&|j�|jd'|j�|jd(|j�|jt|j�|jd)|j�|jd*|j�t|�r�|jd+|jj�n|jd,|jj�|jd-|jj�|jd.|jj�|jd/|jj�|jd0|jj�|jtj j!|j"�|jtj#|j$�t|�r�|jt%j&|j'�n|jd1t(|j)��|jd1t(|j*��|jd1t(|j+��|jd1t(|j,��|jd1t(|j-��|jd1t(|j.��|jd1t(|j/��|jd1t(|j0��|jd1t(|j1��|jd1t(|j2��|jd1t(|j3��|jd1t(|j4��|jd1t(|j5��|jd1t(|j6��|jd1t(|j7��t|�r5|jd1t(|j8��n|jd1t(|j9��|jd1t(|j:��|jd1t(|j;��|jd1t(|j<��|jd1t(|j=��t|�r�|jd1t(|j>��n|jd1t(|j?��|jd1t(|j@��|jd2|j)d3�|jd4|j*d3�|jd5|j+d3�|jd6|j,d3�|jd7|j-d3�|jd8|j.d3�|jd9|j/d3�|jd:|j0d3�|jd;|j1d3�|jd<|j2d3�|jd=|j3d3�|jd>|j4d3�|jt|j5d3�|jd?|j6d3�|jd@|j7d3�t|�r�|jdA|j8d3j�n|jdB|j9d3j�|jdC|j:d3j�|jdD|j;d3j�|jdE|jAd3j�|jtj jB|j<d3�|jtjC|j=d3�t|�rV	|jt%jD|j>d3�n|jdF|j)dG�|jdH|j*dG�|jdI|j+dG�|jdJ|j,dG�|jdK|j-dG�|jdL|j.dG�|jdM|j/dG�|jdN|j0dG�|jdO|j1dG�|jdP|j2dG�|jdQ|j3dG�|jdR|j4dG�|jtE|j5dG�|jdS|j6dG�|jdT|j7dG�t|�r�
|jdU|j8dGj�n|jdV|j9dGj�|jdW|j:dGj�|jdX|j;dGj�|jdY|jAdGj�|jtj j!|j<dG�|jtj#|j=dG�t|�r�|jt%j&|j>dG�nt|�r�|j|jdZ��|j|jd[��|j|jd\��|j|jd]��|j|jd^��|j|jd_��|j|jd`��|j|jda��|j|jdb��|j|jdc��|j|jdd��|j|jde��|j|jdf��|j|jdg��|j|jdh��|j|jdi��|j|jdj��|j|jdk��|jdl|jF�|jdm|jG�|jdn|jH�|jdo|jI�|jdp|jJ�|jdq|jK�|jdr|jL�|jds|jM�|jdt|jN�|jdu|jO�|jdv|jP�|jdw|jQ�|jtE|jR�|jdx|jS�|jdy|jT�|jtj jU|jV�|jtjW|jX�|jt%jY|jZ�ndzS({sFCheck all fields for correct values have after Set*Fields() is called.RRRRRRRRRRRRRRR R!R#R%R'R"R$R&R(R-R/R1R2R3ieifigihiiijikiliminioipt115Riuiviwixi~iii�ii�i�i�i�i�i�i�i�i�i�i�t215Ri�i�i�i�i�i-ii.i/i0i1i2i3i4i5i6i7i8t315R
i=i>i?i@iGRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRcReRgi�i�i�i�i�i�i�i�i�i�i�i�RRN([t
assertTruetHasFieldRR!R#R%R'tassertEqualRRRRRRRRRRRRRRRR R"R$R&R(R)R*RoRR+R,R-R.R/RR0R1tlenR4R6R7R8R9R:R;R<R=R>R?R@RARBRCRDRFRGRHRJRLRNRPRQRIRKRMRORRRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRbRcRdReRfRg(t	test_caseR((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytExpectAllFieldsSet�sj




cCs�d}xqtjj|�rytjjtjj|d��ratjj|d|�}t|d�Stjj|d�}q	Wd}tjj|d|�}tjj|�r�t|d�Std��dS(	sFFinds the given golden file and returns a file object representing it.t.ssrc/google/protobufssrc/google/protobuf/testdatatrbs..s'third_party/py/google/protobuf/testdatas�Could not find golden files.  This test must be run from within the protobuf source package so that it can read test data files from the C++ source tree.N(tostpathtexistsR�topentRuntimeError(tfilenameR�t	full_path((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt
GoldenFileis!
	
cCs#t|��}|j�SWdQXdS(s5Finds the given golden file and returns its contents.N(R�tread(R�tf((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytGoldenFileData�scCs>|jjddg�|jjddg�|jjddg�|jjddg�|jjd	d
g�|jjddg�|jjd
dg�|jjddg�|j	jddg�|j
jddg�|jjddg�|jjddg�|j
jttg�|jjtjtjg�dS(sgSets every field in the message to a unique value.

  Args:
    message: A TestPackedTypes instance.
  iYi�iZi�i[i�i\i�i]i�i^i�i_i�i`i�iai�ibi�g�@g8�@g �@g@�@N(tpacked_int32textendtpacked_int64t
packed_uint32t
packed_uint64t
packed_sint32t
packed_sint64tpacked_fixed32tpacked_fixed64tpacked_sfixed32tpacked_sfixed64tpacked_floatt
packed_doubletpacked_boolRRRtpacked_enumRRMR.(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllPackedFields�scCs�|j}t}||jjddg�||jjddg�||jjddg�||jjddg�||jjd	d
g�||jjddg�||j	jd
dg�||j
jddg�||jjddg�||jjddg�||j
jddg�||jjddg�||jjttg�||jjtjtjg�dS(s}Sets every extension in the message to a unique value.

  Args:
    message: A unittest_pb2.TestPackedExtensions instance.
  iYi�iZi�i[i�i\i�i]i�i^i�i_i�i`i�iai�ibi�g�@g8�@g �@g@�@N(RqRtpacked_int32_extensionR�tpacked_int64_extensiontpacked_uint32_extensiontpacked_uint64_extensiontpacked_sint32_extensiontpacked_sint64_extensiontpacked_fixed32_extensiontpacked_fixed64_extensiontpacked_sfixed32_extensiontpacked_sfixed64_extensiontpacked_float_extensiontpacked_double_extensiontpacked_bool_extensionRRRtpacked_enum_extensionRMR.(RR�R�((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllPackedExtensions�s"	cCs>|jjddg�|jjddg�|jjddg�|jjddg�|jjd	d
g�|jjddg�|jjd
dg�|jjddg�|j	jddg�|j
jddg�|jjddg�|jjddg�|j
jttg�|jjtjtjg�dS(svSets every field in the message to a unique value.

  Args:
    message: A unittest_pb2.TestUnpackedTypes instance.
  iYi�iZi�i[i�i\i�i]i�i^i�i_i�i`i�iai�ibi�g�@g8�@g �@g@�@N(tunpacked_int32R�tunpacked_int64tunpacked_uint32tunpacked_uint64tunpacked_sint32tunpacked_sint64tunpacked_fixed32tunpacked_fixed64tunpacked_sfixed32tunpacked_sfixed64tunpacked_floattunpacked_doublet
unpacked_boolRRRt
unpacked_enumRRMR.(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllUnpackedFields�stNonStandardIntegercBs�eZdZd*d�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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,RS(+s�An integer object that does not subclass int.

  This is used to verify that both C++ and regular proto systems can handle
  integer others than int and long and that they handle them in predictable
  ways.

  NonStandardInteger is the minimal legal specification for a custom Integral.
  As such, it does not support 0 < x < 5 and it is not hashable.

  Note: This is added here instead of relying on numpy or a similar library
  with custom integers to limit dependencies.
  cCs1t|t�r|j}n||_||_dS(N(t
isinstanceRtvalterror_string_on_conversion(tselfRR((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__init__�s	cCs(|jrt|j��nt|j�S(N(RR�tlongR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__long__�s	cCsttj|j��S(N(RtoperatortabsR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__abs__�scCsttj|j|��S(N(RRRER(Rty((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__add__�scCsttj|j|��S(N(RRtdivR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__div__�scCstj|j|�S(N(RteqR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__eq__�scCsttj|j|��S(N(RRtfloordivR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__floordiv__�scCsttj|j|��S(N(RRttruedivR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__truediv__�scCsttj|j��S(N(RRtinvertR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt
__invert__�scCsttj|j|��S(N(RRtmodR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__mod__scCsttj|j|��S(N(RRtmulR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__mul__scCsttj|j��S(N(RRtnegR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__neg__scCsttj|j��S(N(RRtposR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__pos__	scCsttj|j|��S(N(RRtpowR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__pow__scCs
t|j�S(N(tintR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt	__trunc__scCsttj||j��S(N(RRRER(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__radd__scCsttj||j��S(N(RRR$R(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rdiv__scCsttj||j��S(N(RRR.R(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rmod__scCsttj||j��S(N(RRR0R(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rmul__scCsttj||j��S(N(RRR6R(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rpow__scCsttj||j��S(N(RRR(R(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt
__rfloordiv__!scCsttj||j��S(N(RRR*R(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rtruediv__$scCsttj|j|��S(N(RRtlshiftR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt
__lshift__'scCsttj|j|��S(N(RRtrshiftR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt
__rshift__*scCsttj||j��S(N(RRRAR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rlshift__-scCsttj||j��S(N(RRRCR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rrshift__0scCs.t|t�r|j}ntj|j|�S(N(RRRRtle(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__le__3scCs.t|t�r|j}ntj|j|�S(N(RRRRtlt(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__lt__8scCsttj|j|��S(N(RRtand_R(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__and__=scCsttj|j|��S(N(RRtor_R(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__or__@scCsttj|j|��S(N(RRtxorR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__xor__CscCsttj||j��S(N(RRRKR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rand__FscCsttj||j��S(N(RRRMR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__ror__IscCsttj||j��S(N(RRROR(RR"((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rxor__LscCs|jS(N(R(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__bool__OscCs|jS(N(R(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__nonzero__RscCs|S(N((R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__ceil__UscCs|S(N((R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt	__floor__XscCs(|jrt|j��nt|j�S(N(RR�R8R(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__int__[s	cCs|S(N((R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt	__round__`scCsd|jS(NsNonStandardInteger(%s)(R(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__repr__csN(-t__name__t
__module__t__doc__tNoneRRR!R#R%R'R)R+R-R/R1R3R5R7R9R:R;R<R=R>R?R@RBRDRERFRHRJRLRNRPRQRRRSRTRURVRWRXRYRZ(((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyR�sT																																							(R]t
__author__tnumbersRtos.pathR�tgoogle.protobufRRRt	NameErrorR8RRnRpR�R�R�R�R�R�R�RRtIntegralR(((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt<module>#s.

		�		�	
		�					PK�\D@	+	++protobuf/internal/packed_field_test_pb2.pyonu�[����
���hc;@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedejdddddddddd�ejdddddddddd�ejdd dd!dd!dddd�gd"dddd#d$d%d&�	Zeje�ejdd'dd(ddded"dd)ejdd*dd+dddddd,d-dd.dd/ed0gd1dd2dd"dd3ed4dddde�ejdd5dd6dddd!ddd-d!d.dd/ed0gd1dd2dd"dd3ed4dddde�ejdd7dd8dd!dddd9d-dd.dd/ed0gd1dd2dd"dd3ed4dddde�ejdd:dd;dddd<dd<d-d<d.dd/ed0gd1dd2dd"dd3ed4dddde�ejdd=dd>dd<dd,dd?d-dd.dd/ed0gd1dd2dd"dd3ed4dddde�ejdd@ddAdd,ddBddCd-d!d.dd/ed0gd1dd2dd"dd3ed4dddde�ejddDddEddBddFddFd-dd.dd/ed0gd1dd2dd"dd3ed4dddde�ejddGddHddFddIddBd-d<d.dd/ed0gd1dd2dd"dd3ed4dddde�ejddJddKddIddLddMd-dd.dd/ed0gd1dd2dd"dd3ed4dddde�ejddNddOddLddPddQd-d!d.dd/ed0gd1dd2dd"dd3ed4dddde�ejddRddSddPddTdd!d-dBd.dd/ed0gd1dd2dd"dd3ed4dddde�ejddUddVddTddWddd-d,d.dd/ed0gd1dd2dd"dd3ed4dddde�ejddXddYddWdd9ddId-dFd.dd/ed0gd1dd2dd"dd3ed4dddde�ejddZdd[dd9dd\dd\d-dId.dd/ed0gd1dd2dd"dd3ed4dddde�gd]gd^gd_egddd`edddagdbgd#dcd%d&�Zejdddddeddded"dd)ejdd*ddfdddddd,d-dd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejdd5ddhdddd!ddd-d!d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejdd7ddidd!dddd9d-dd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejdd:ddjdddd<dd<d-d<d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejdd=ddkdd<dd,dd?d-dd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejdd@ddldd,ddBddCd-d!d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddDddmddBddFddFd-dd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddGddnddFddIddBd-d<d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddJddoddIddLddMd-dd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddNddpddLddPddQd-d!d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddRddqddPddTdd!d-dBd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddUddrddTddWddd-d,d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddXddsddWdd9ddId-dFd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddZddtdd9dd\dd\d-dId.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�gd]gd^gd_gddd`edddagdbgd#dud%dv�ZeejdZ_ee_eejdZ_eej d'<eej dd<ej!e�e	j"d'ej#fe$dwedxdy��Z%ej&e%�e	j"ddej#fe$dwedxdy��Z'ej&e'�e(ejd*_)ejej�edg��ejd*_*e(ejd5_)ejej�edg��ejd5_*e(ejd7_)ejej�edg��ejd7_*e(ejd:_)ejej�edg��ejd:_*e(ejd=_)ejej�edg��ejd=_*e(ejd@_)ejej�edg��ejd@_*e(ejdD_)ejej�edg��ejdD_*e(ejdG_)ejej�edg��ejdG_*e(ejdJ_)ejej�edg��ejdJ_*e(ejdN_)ejej�edg��ejdN_*e(ejdR_)ejej�edg��ejdR_*e(ejdU_)ejej�edg��ejdU_*e(ejdX_)ejej�edg��ejdX_*e(ejdZ_)ejej�edg��ejdZ_*dS(zi����NiicCs|S(N((tx((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/packed_field_test_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/packed_field_test_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames0google/protobuf/internal/packed_field_test.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto3t
serialized_pbs(
0google/protobuf/internal/packed_field_test.protogoogle.protobuf.python.internal"�
TestPackedTypes
repeated_int32 (
repeated_int64 (
repeated_uint32 (

repeated_uint64 (
repeated_sint32 (
repeated_sint64 (
repeated_fixed32 (
repeated_fixed64 (
repeated_sfixed32	 (
repeated_sfixed64
 (
repeated_float (
repeated_double (

repeated_bool
 (Y
repeated_nested_enum (2;.google.protobuf.python.internal.TestPackedTypes.NestedEnum"'

NestedEnum
FOO
BAR
BAZ"�
TestUnpackedTypes
repeated_int32 (B
repeated_int64 (B
repeated_uint32 (
B
repeated_uint64 (B
repeated_sint32 (B
repeated_sint64 (B
repeated_fixed32 (B
repeated_fixed64 (B
repeated_sfixed32	 (B
repeated_sfixed64
 (B
repeated_float (B
repeated_double (B

repeated_bool
 (B]
repeated_nested_enum (2;.google.protobuf.python.internal.TestPackedTypes.NestedEnumBbproto3t
NestedEnumt	full_names:google.protobuf.python.internal.TestPackedTypes.NestedEnumtfilenametfiletvaluestFOOtindextnumbertoptionsttypetBARitBAZitcontaining_typetserialized_starti
tserialized_endi1tTestPackedTypess/google.protobuf.python.internal.TestPackedTypestfieldstrepeated_int32s>google.protobuf.python.internal.TestPackedTypes.repeated_int32itcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetrepeated_int64s>google.protobuf.python.internal.TestPackedTypes.repeated_int64trepeated_uint32s?google.protobuf.python.internal.TestPackedTypes.repeated_uint32i
trepeated_uint64s?google.protobuf.python.internal.TestPackedTypes.repeated_uint64itrepeated_sint32s?google.protobuf.python.internal.TestPackedTypes.repeated_sint32itrepeated_sint64s?google.protobuf.python.internal.TestPackedTypes.repeated_sint64iitrepeated_fixed32s@google.protobuf.python.internal.TestPackedTypes.repeated_fixed32itrepeated_fixed64s@google.protobuf.python.internal.TestPackedTypes.repeated_fixed64itrepeated_sfixed32sAgoogle.protobuf.python.internal.TestPackedTypes.repeated_sfixed32i	itrepeated_sfixed64sAgoogle.protobuf.python.internal.TestPackedTypes.repeated_sfixed64i
itrepeated_floats>google.protobuf.python.internal.TestPackedTypes.repeated_floatitrepeated_doubles?google.protobuf.python.internal.TestPackedTypes.repeated_doubleit
repeated_bools=google.protobuf.python.internal.TestPackedTypes.repeated_booltrepeated_nested_enumsDgoogle.protobuf.python.internal.TestPackedTypes.repeated_nested_enumit
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsiVtTestUnpackedTypess1google.protobuf.python.internal.TestUnpackedTypess@google.protobuf.python.internal.TestUnpackedTypes.repeated_int32ss@google.protobuf.python.internal.TestUnpackedTypes.repeated_int64sAgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_uint32sAgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_uint64sAgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_sint32sAgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_sint64sBgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_fixed32sBgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_fixed64sCgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_sfixed32sCgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_sfixed64s@google.protobuf.python.internal.TestUnpackedTypes.repeated_floatsAgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_doubles?google.protobuf.python.internal.TestUnpackedTypes.repeated_boolsFgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_nested_enumi4i t
DESCRIPTORt
__module__s.google.protobuf.internal.packed_field_test_pb2(+tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR=tEnumDescriptortNonetEnumValueDescriptort_TESTPACKEDTYPES_NESTEDENUMtRegisterEnumDescriptort
DescriptortFieldDescriptortFalset_TESTPACKEDTYPESt
_ParseOptionstFieldOptionst_TESTUNPACKEDTYPEStfields_by_nameR&Rtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR<tTruethas_optionst_options(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/packed_field_test_pb2.pyt<module>s`%						
																			$	$	$	$	$	$	$	$	$	$	$	$	$	*		




(((((((((((((PK�\Jp�u����$protobuf/internal/reflection_test.pynu�[���# -*- coding: utf-8 -*-
#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Unittest for reflection.py, which also indirectly tests the output of the
pure-Python protocol compiler.
"""

import copy
import gc
import operator
import six
import struct

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import unittest_import_pb2
from google.protobuf import unittest_mset_pb2
from google.protobuf import unittest_pb2
from google.protobuf import descriptor_pb2
from google.protobuf import descriptor
from google.protobuf import message
from google.protobuf import reflection
from google.protobuf import text_format
from google.protobuf.internal import api_implementation
from google.protobuf.internal import more_extensions_pb2
from google.protobuf.internal import more_messages_pb2
from google.protobuf.internal import message_set_extensions_pb2
from google.protobuf.internal import wire_format
from google.protobuf.internal import test_util
from google.protobuf.internal import testing_refleaks
from google.protobuf.internal import decoder


BaseTestCase = testing_refleaks.BaseTestCase


class _MiniDecoder(object):
  """Decodes a stream of values from a string.

  Once upon a time we actually had a class called decoder.Decoder.  Then we
  got rid of it during a redesign that made decoding much, much faster overall.
  But a couple tests in this file used it to check that the serialized form of
  a message was correct.  So, this class implements just the methods that were
  used by said tests, so that we don't have to rewrite the tests.
  """

  def __init__(self, bytes):
    self._bytes = bytes
    self._pos = 0

  def ReadVarint(self):
    result, self._pos = decoder._DecodeVarint(self._bytes, self._pos)
    return result

  ReadInt32 = ReadVarint
  ReadInt64 = ReadVarint
  ReadUInt32 = ReadVarint
  ReadUInt64 = ReadVarint

  def ReadSInt64(self):
    return wire_format.ZigZagDecode(self.ReadVarint())

  ReadSInt32 = ReadSInt64

  def ReadFieldNumberAndWireType(self):
    return wire_format.UnpackTag(self.ReadVarint())

  def ReadFloat(self):
    result = struct.unpack('<f', self._bytes[self._pos:self._pos+4])[0]
    self._pos += 4
    return result

  def ReadDouble(self):
    result = struct.unpack('<d', self._bytes[self._pos:self._pos+8])[0]
    self._pos += 8
    return result

  def EndOfStream(self):
    return self._pos == len(self._bytes)


class ReflectionTest(BaseTestCase):

  def assertListsEqual(self, values, others):
    self.assertEqual(len(values), len(others))
    for i in range(len(values)):
      self.assertEqual(values[i], others[i])

  def testScalarConstructor(self):
    # Constructor with only scalar types should succeed.
    proto = unittest_pb2.TestAllTypes(
        optional_int32=24,
        optional_double=54.321,
        optional_string='optional_string',
        optional_float=None)

    self.assertEqual(24, proto.optional_int32)
    self.assertEqual(54.321, proto.optional_double)
    self.assertEqual('optional_string', proto.optional_string)
    self.assertFalse(proto.HasField("optional_float"))

  def testRepeatedScalarConstructor(self):
    # Constructor with only repeated scalar types should succeed.
    proto = unittest_pb2.TestAllTypes(
        repeated_int32=[1, 2, 3, 4],
        repeated_double=[1.23, 54.321],
        repeated_bool=[True, False, False],
        repeated_string=["optional_string"],
        repeated_float=None)

    self.assertEqual([1, 2, 3, 4], list(proto.repeated_int32))
    self.assertEqual([1.23, 54.321], list(proto.repeated_double))
    self.assertEqual([True, False, False], list(proto.repeated_bool))
    self.assertEqual(["optional_string"], list(proto.repeated_string))
    self.assertEqual([], list(proto.repeated_float))

  def testRepeatedCompositeConstructor(self):
    # Constructor with only repeated composite types should succeed.
    proto = unittest_pb2.TestAllTypes(
        repeated_nested_message=[
            unittest_pb2.TestAllTypes.NestedMessage(
                bb=unittest_pb2.TestAllTypes.FOO),
            unittest_pb2.TestAllTypes.NestedMessage(
                bb=unittest_pb2.TestAllTypes.BAR)],
        repeated_foreign_message=[
            unittest_pb2.ForeignMessage(c=-43),
            unittest_pb2.ForeignMessage(c=45324),
            unittest_pb2.ForeignMessage(c=12)],
        repeatedgroup=[
            unittest_pb2.TestAllTypes.RepeatedGroup(),
            unittest_pb2.TestAllTypes.RepeatedGroup(a=1),
            unittest_pb2.TestAllTypes.RepeatedGroup(a=2)])

    self.assertEqual(
        [unittest_pb2.TestAllTypes.NestedMessage(
            bb=unittest_pb2.TestAllTypes.FOO),
         unittest_pb2.TestAllTypes.NestedMessage(
             bb=unittest_pb2.TestAllTypes.BAR)],
        list(proto.repeated_nested_message))
    self.assertEqual(
        [unittest_pb2.ForeignMessage(c=-43),
         unittest_pb2.ForeignMessage(c=45324),
         unittest_pb2.ForeignMessage(c=12)],
        list(proto.repeated_foreign_message))
    self.assertEqual(
        [unittest_pb2.TestAllTypes.RepeatedGroup(),
         unittest_pb2.TestAllTypes.RepeatedGroup(a=1),
         unittest_pb2.TestAllTypes.RepeatedGroup(a=2)],
        list(proto.repeatedgroup))

  def testMixedConstructor(self):
    # Constructor with only mixed types should succeed.
    proto = unittest_pb2.TestAllTypes(
        optional_int32=24,
        optional_string='optional_string',
        repeated_double=[1.23, 54.321],
        repeated_bool=[True, False, False],
        repeated_nested_message=[
            unittest_pb2.TestAllTypes.NestedMessage(
                bb=unittest_pb2.TestAllTypes.FOO),
            unittest_pb2.TestAllTypes.NestedMessage(
                bb=unittest_pb2.TestAllTypes.BAR)],
        repeated_foreign_message=[
            unittest_pb2.ForeignMessage(c=-43),
            unittest_pb2.ForeignMessage(c=45324),
            unittest_pb2.ForeignMessage(c=12)],
        optional_nested_message=None)

    self.assertEqual(24, proto.optional_int32)
    self.assertEqual('optional_string', proto.optional_string)
    self.assertEqual([1.23, 54.321], list(proto.repeated_double))
    self.assertEqual([True, False, False], list(proto.repeated_bool))
    self.assertEqual(
        [unittest_pb2.TestAllTypes.NestedMessage(
            bb=unittest_pb2.TestAllTypes.FOO),
         unittest_pb2.TestAllTypes.NestedMessage(
             bb=unittest_pb2.TestAllTypes.BAR)],
        list(proto.repeated_nested_message))
    self.assertEqual(
        [unittest_pb2.ForeignMessage(c=-43),
         unittest_pb2.ForeignMessage(c=45324),
         unittest_pb2.ForeignMessage(c=12)],
        list(proto.repeated_foreign_message))
    self.assertFalse(proto.HasField("optional_nested_message"))

  def testConstructorTypeError(self):
    self.assertRaises(
        TypeError, unittest_pb2.TestAllTypes, optional_int32="foo")
    self.assertRaises(
        TypeError, unittest_pb2.TestAllTypes, optional_string=1234)
    self.assertRaises(
        TypeError, unittest_pb2.TestAllTypes, optional_nested_message=1234)
    self.assertRaises(
        TypeError, unittest_pb2.TestAllTypes, repeated_int32=1234)
    self.assertRaises(
        TypeError, unittest_pb2.TestAllTypes, repeated_int32=["foo"])
    self.assertRaises(
        TypeError, unittest_pb2.TestAllTypes, repeated_string=1234)
    self.assertRaises(
        TypeError, unittest_pb2.TestAllTypes, repeated_string=[1234])
    self.assertRaises(
        TypeError, unittest_pb2.TestAllTypes, repeated_nested_message=1234)
    self.assertRaises(
        TypeError, unittest_pb2.TestAllTypes, repeated_nested_message=[1234])

  def testConstructorInvalidatesCachedByteSize(self):
    message = unittest_pb2.TestAllTypes(optional_int32 = 12)
    self.assertEqual(2, message.ByteSize())

    message = unittest_pb2.TestAllTypes(
        optional_nested_message = unittest_pb2.TestAllTypes.NestedMessage())
    self.assertEqual(3, message.ByteSize())

    message = unittest_pb2.TestAllTypes(repeated_int32 = [12])
    self.assertEqual(3, message.ByteSize())

    message = unittest_pb2.TestAllTypes(
        repeated_nested_message = [unittest_pb2.TestAllTypes.NestedMessage()])
    self.assertEqual(3, message.ByteSize())

  def testSimpleHasBits(self):
    # Test a scalar.
    proto = unittest_pb2.TestAllTypes()
    self.assertTrue(not proto.HasField('optional_int32'))
    self.assertEqual(0, proto.optional_int32)
    # HasField() shouldn't be true if all we've done is
    # read the default value.
    self.assertTrue(not proto.HasField('optional_int32'))
    proto.optional_int32 = 1
    # Setting a value however *should* set the "has" bit.
    self.assertTrue(proto.HasField('optional_int32'))
    proto.ClearField('optional_int32')
    # And clearing that value should unset the "has" bit.
    self.assertTrue(not proto.HasField('optional_int32'))

  def testHasBitsWithSinglyNestedScalar(self):
    # Helper used to test foreign messages and groups.
    #
    # composite_field_name should be the name of a non-repeated
    # composite (i.e., foreign or group) field in TestAllTypes,
    # and scalar_field_name should be the name of an integer-valued
    # scalar field within that composite.
    #
    # I never thought I'd miss C++ macros and templates so much. :(
    # This helper is semantically just:
    #
    #   assert proto.composite_field.scalar_field == 0
    #   assert not proto.composite_field.HasField('scalar_field')
    #   assert not proto.HasField('composite_field')
    #
    #   proto.composite_field.scalar_field = 10
    #   old_composite_field = proto.composite_field
    #
    #   assert proto.composite_field.scalar_field == 10
    #   assert proto.composite_field.HasField('scalar_field')
    #   assert proto.HasField('composite_field')
    #
    #   proto.ClearField('composite_field')
    #
    #   assert not proto.composite_field.HasField('scalar_field')
    #   assert not proto.HasField('composite_field')
    #   assert proto.composite_field.scalar_field == 0
    #
    #   # Now ensure that ClearField('composite_field') disconnected
    #   # the old field object from the object tree...
    #   assert old_composite_field is not proto.composite_field
    #   old_composite_field.scalar_field = 20
    #   assert not proto.composite_field.HasField('scalar_field')
    #   assert not proto.HasField('composite_field')
    def TestCompositeHasBits(composite_field_name, scalar_field_name):
      proto = unittest_pb2.TestAllTypes()
      # First, check that we can get the scalar value, and see that it's the
      # default (0), but that proto.HasField('omposite') and
      # proto.composite.HasField('scalar') will still return False.
      composite_field = getattr(proto, composite_field_name)
      original_scalar_value = getattr(composite_field, scalar_field_name)
      self.assertEqual(0, original_scalar_value)
      # Assert that the composite object does not "have" the scalar.
      self.assertTrue(not composite_field.HasField(scalar_field_name))
      # Assert that proto does not "have" the composite field.
      self.assertTrue(not proto.HasField(composite_field_name))

      # Now set the scalar within the composite field.  Ensure that the setting
      # is reflected, and that proto.HasField('composite') and
      # proto.composite.HasField('scalar') now both return True.
      new_val = 20
      setattr(composite_field, scalar_field_name, new_val)
      self.assertEqual(new_val, getattr(composite_field, scalar_field_name))
      # Hold on to a reference to the current composite_field object.
      old_composite_field = composite_field
      # Assert that the has methods now return true.
      self.assertTrue(composite_field.HasField(scalar_field_name))
      self.assertTrue(proto.HasField(composite_field_name))

      # Now call the clear method...
      proto.ClearField(composite_field_name)

      # ...and ensure that the "has" bits are all back to False...
      composite_field = getattr(proto, composite_field_name)
      self.assertTrue(not composite_field.HasField(scalar_field_name))
      self.assertTrue(not proto.HasField(composite_field_name))
      # ...and ensure that the scalar field has returned to its default.
      self.assertEqual(0, getattr(composite_field, scalar_field_name))

      self.assertTrue(old_composite_field is not composite_field)
      setattr(old_composite_field, scalar_field_name, new_val)
      self.assertTrue(not composite_field.HasField(scalar_field_name))
      self.assertTrue(not proto.HasField(composite_field_name))
      self.assertEqual(0, getattr(composite_field, scalar_field_name))

    # Test simple, single-level nesting when we set a scalar.
    TestCompositeHasBits('optionalgroup', 'a')
    TestCompositeHasBits('optional_nested_message', 'bb')
    TestCompositeHasBits('optional_foreign_message', 'c')
    TestCompositeHasBits('optional_import_message', 'd')

  def testReferencesToNestedMessage(self):
    proto = unittest_pb2.TestAllTypes()
    nested = proto.optional_nested_message
    del proto
    # A previous version had a bug where this would raise an exception when
    # hitting a now-dead weak reference.
    nested.bb = 23

  def testDisconnectingNestedMessageBeforeSettingField(self):
    proto = unittest_pb2.TestAllTypes()
    nested = proto.optional_nested_message
    proto.ClearField('optional_nested_message')  # Should disconnect from parent
    self.assertTrue(nested is not proto.optional_nested_message)
    nested.bb = 23
    self.assertTrue(not proto.HasField('optional_nested_message'))
    self.assertEqual(0, proto.optional_nested_message.bb)

  def testGetDefaultMessageAfterDisconnectingDefaultMessage(self):
    proto = unittest_pb2.TestAllTypes()
    nested = proto.optional_nested_message
    proto.ClearField('optional_nested_message')
    del proto
    del nested
    # Force a garbage collect so that the underlying CMessages are freed along
    # with the Messages they point to. This is to make sure we're not deleting
    # default message instances.
    gc.collect()
    proto = unittest_pb2.TestAllTypes()
    nested = proto.optional_nested_message

  def testDisconnectingNestedMessageAfterSettingField(self):
    proto = unittest_pb2.TestAllTypes()
    nested = proto.optional_nested_message
    nested.bb = 5
    self.assertTrue(proto.HasField('optional_nested_message'))
    proto.ClearField('optional_nested_message')  # Should disconnect from parent
    self.assertEqual(5, nested.bb)
    self.assertEqual(0, proto.optional_nested_message.bb)
    self.assertTrue(nested is not proto.optional_nested_message)
    nested.bb = 23
    self.assertTrue(not proto.HasField('optional_nested_message'))
    self.assertEqual(0, proto.optional_nested_message.bb)

  def testDisconnectingNestedMessageBeforeGettingField(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertTrue(not proto.HasField('optional_nested_message'))
    proto.ClearField('optional_nested_message')
    self.assertTrue(not proto.HasField('optional_nested_message'))

  def testDisconnectingNestedMessageAfterMerge(self):
    # This test exercises the code path that does not use ReleaseMessage().
    # The underlying fear is that if we use ReleaseMessage() incorrectly,
    # we will have memory leaks.  It's hard to check that that doesn't happen,
    # but at least we can exercise that code path to make sure it works.
    proto1 = unittest_pb2.TestAllTypes()
    proto2 = unittest_pb2.TestAllTypes()
    proto2.optional_nested_message.bb = 5
    proto1.MergeFrom(proto2)
    self.assertTrue(proto1.HasField('optional_nested_message'))
    proto1.ClearField('optional_nested_message')
    self.assertTrue(not proto1.HasField('optional_nested_message'))

  def testDisconnectingLazyNestedMessage(self):
    # This test exercises releasing a nested message that is lazy. This test
    # only exercises real code in the C++ implementation as Python does not
    # support lazy parsing, but the current C++ implementation results in
    # memory corruption and a crash.
    if api_implementation.Type() != 'python':
      return
    proto = unittest_pb2.TestAllTypes()
    proto.optional_lazy_message.bb = 5
    proto.ClearField('optional_lazy_message')
    del proto
    gc.collect()

  def testHasBitsWhenModifyingRepeatedFields(self):
    # Test nesting when we add an element to a repeated field in a submessage.
    proto = unittest_pb2.TestNestedMessageHasBits()
    proto.optional_nested_message.nestedmessage_repeated_int32.append(5)
    self.assertEqual(
        [5], proto.optional_nested_message.nestedmessage_repeated_int32)
    self.assertTrue(proto.HasField('optional_nested_message'))

    # Do the same test, but with a repeated composite field within the
    # submessage.
    proto.ClearField('optional_nested_message')
    self.assertTrue(not proto.HasField('optional_nested_message'))
    proto.optional_nested_message.nestedmessage_repeated_foreignmessage.add()
    self.assertTrue(proto.HasField('optional_nested_message'))

  def testHasBitsForManyLevelsOfNesting(self):
    # Test nesting many levels deep.
    recursive_proto = unittest_pb2.TestMutualRecursionA()
    self.assertTrue(not recursive_proto.HasField('bb'))
    self.assertEqual(0, recursive_proto.bb.a.bb.a.bb.optional_int32)
    self.assertTrue(not recursive_proto.HasField('bb'))
    recursive_proto.bb.a.bb.a.bb.optional_int32 = 5
    self.assertEqual(5, recursive_proto.bb.a.bb.a.bb.optional_int32)
    self.assertTrue(recursive_proto.HasField('bb'))
    self.assertTrue(recursive_proto.bb.HasField('a'))
    self.assertTrue(recursive_proto.bb.a.HasField('bb'))
    self.assertTrue(recursive_proto.bb.a.bb.HasField('a'))
    self.assertTrue(recursive_proto.bb.a.bb.a.HasField('bb'))
    self.assertTrue(not recursive_proto.bb.a.bb.a.bb.HasField('a'))
    self.assertTrue(recursive_proto.bb.a.bb.a.bb.HasField('optional_int32'))

  def testSingularListFields(self):
    proto = unittest_pb2.TestAllTypes()
    proto.optional_fixed32 = 1
    proto.optional_int32 = 5
    proto.optional_string = 'foo'
    # Access sub-message but don't set it yet.
    nested_message = proto.optional_nested_message
    self.assertEqual(
      [ (proto.DESCRIPTOR.fields_by_name['optional_int32'  ], 5),
        (proto.DESCRIPTOR.fields_by_name['optional_fixed32'], 1),
        (proto.DESCRIPTOR.fields_by_name['optional_string' ], 'foo') ],
      proto.ListFields())

    proto.optional_nested_message.bb = 123
    self.assertEqual(
      [ (proto.DESCRIPTOR.fields_by_name['optional_int32'  ], 5),
        (proto.DESCRIPTOR.fields_by_name['optional_fixed32'], 1),
        (proto.DESCRIPTOR.fields_by_name['optional_string' ], 'foo'),
        (proto.DESCRIPTOR.fields_by_name['optional_nested_message' ],
             nested_message) ],
      proto.ListFields())

  def testRepeatedListFields(self):
    proto = unittest_pb2.TestAllTypes()
    proto.repeated_fixed32.append(1)
    proto.repeated_int32.append(5)
    proto.repeated_int32.append(11)
    proto.repeated_string.extend(['foo', 'bar'])
    proto.repeated_string.extend([])
    proto.repeated_string.append('baz')
    proto.repeated_string.extend(str(x) for x in range(2))
    proto.optional_int32 = 21
    proto.repeated_bool  # Access but don't set anything; should not be listed.
    self.assertEqual(
      [ (proto.DESCRIPTOR.fields_by_name['optional_int32'  ], 21),
        (proto.DESCRIPTOR.fields_by_name['repeated_int32'  ], [5, 11]),
        (proto.DESCRIPTOR.fields_by_name['repeated_fixed32'], [1]),
        (proto.DESCRIPTOR.fields_by_name['repeated_string' ],
          ['foo', 'bar', 'baz', '0', '1']) ],
      proto.ListFields())

  def testSingularListExtensions(self):
    proto = unittest_pb2.TestAllExtensions()
    proto.Extensions[unittest_pb2.optional_fixed32_extension] = 1
    proto.Extensions[unittest_pb2.optional_int32_extension  ] = 5
    proto.Extensions[unittest_pb2.optional_string_extension ] = 'foo'
    self.assertEqual(
      [ (unittest_pb2.optional_int32_extension  , 5),
        (unittest_pb2.optional_fixed32_extension, 1),
        (unittest_pb2.optional_string_extension , 'foo') ],
      proto.ListFields())

  def testRepeatedListExtensions(self):
    proto = unittest_pb2.TestAllExtensions()
    proto.Extensions[unittest_pb2.repeated_fixed32_extension].append(1)
    proto.Extensions[unittest_pb2.repeated_int32_extension  ].append(5)
    proto.Extensions[unittest_pb2.repeated_int32_extension  ].append(11)
    proto.Extensions[unittest_pb2.repeated_string_extension ].append('foo')
    proto.Extensions[unittest_pb2.repeated_string_extension ].append('bar')
    proto.Extensions[unittest_pb2.repeated_string_extension ].append('baz')
    proto.Extensions[unittest_pb2.optional_int32_extension  ] = 21
    self.assertEqual(
      [ (unittest_pb2.optional_int32_extension  , 21),
        (unittest_pb2.repeated_int32_extension  , [5, 11]),
        (unittest_pb2.repeated_fixed32_extension, [1]),
        (unittest_pb2.repeated_string_extension , ['foo', 'bar', 'baz']) ],
      proto.ListFields())

  def testListFieldsAndExtensions(self):
    proto = unittest_pb2.TestFieldOrderings()
    test_util.SetAllFieldsAndExtensions(proto)
    unittest_pb2.my_extension_int
    self.assertEqual(
      [ (proto.DESCRIPTOR.fields_by_name['my_int'   ], 1),
        (unittest_pb2.my_extension_int               , 23),
        (proto.DESCRIPTOR.fields_by_name['my_string'], 'foo'),
        (unittest_pb2.my_extension_string            , 'bar'),
        (proto.DESCRIPTOR.fields_by_name['my_float' ], 1.0) ],
      proto.ListFields())

  def testDefaultValues(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertEqual(0, proto.optional_int32)
    self.assertEqual(0, proto.optional_int64)
    self.assertEqual(0, proto.optional_uint32)
    self.assertEqual(0, proto.optional_uint64)
    self.assertEqual(0, proto.optional_sint32)
    self.assertEqual(0, proto.optional_sint64)
    self.assertEqual(0, proto.optional_fixed32)
    self.assertEqual(0, proto.optional_fixed64)
    self.assertEqual(0, proto.optional_sfixed32)
    self.assertEqual(0, proto.optional_sfixed64)
    self.assertEqual(0.0, proto.optional_float)
    self.assertEqual(0.0, proto.optional_double)
    self.assertEqual(False, proto.optional_bool)
    self.assertEqual('', proto.optional_string)
    self.assertEqual(b'', proto.optional_bytes)

    self.assertEqual(41, proto.default_int32)
    self.assertEqual(42, proto.default_int64)
    self.assertEqual(43, proto.default_uint32)
    self.assertEqual(44, proto.default_uint64)
    self.assertEqual(-45, proto.default_sint32)
    self.assertEqual(46, proto.default_sint64)
    self.assertEqual(47, proto.default_fixed32)
    self.assertEqual(48, proto.default_fixed64)
    self.assertEqual(49, proto.default_sfixed32)
    self.assertEqual(-50, proto.default_sfixed64)
    self.assertEqual(51.5, proto.default_float)
    self.assertEqual(52e3, proto.default_double)
    self.assertEqual(True, proto.default_bool)
    self.assertEqual('hello', proto.default_string)
    self.assertEqual(b'world', proto.default_bytes)
    self.assertEqual(unittest_pb2.TestAllTypes.BAR, proto.default_nested_enum)
    self.assertEqual(unittest_pb2.FOREIGN_BAR, proto.default_foreign_enum)
    self.assertEqual(unittest_import_pb2.IMPORT_BAR,
                     proto.default_import_enum)

    proto = unittest_pb2.TestExtremeDefaultValues()
    self.assertEqual(u'\u1234', proto.utf8_string)

  def testHasFieldWithUnknownFieldName(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertRaises(ValueError, proto.HasField, 'nonexistent_field')

  def testClearFieldWithUnknownFieldName(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertRaises(ValueError, proto.ClearField, 'nonexistent_field')

  def testClearRemovesChildren(self):
    # Make sure there aren't any implementation bugs that are only partially
    # clearing the message (which can happen in the more complex C++
    # implementation which has parallel message lists).
    proto = unittest_pb2.TestRequiredForeign()
    for i in range(10):
      proto.repeated_message.add()
    proto2 = unittest_pb2.TestRequiredForeign()
    proto.CopyFrom(proto2)
    self.assertRaises(IndexError, lambda: proto.repeated_message[5])

  def testDisallowedAssignments(self):
    # It's illegal to assign values directly to repeated fields
    # or to nonrepeated composite fields.  Ensure that this fails.
    proto = unittest_pb2.TestAllTypes()
    # Repeated fields.
    self.assertRaises(AttributeError, setattr, proto, 'repeated_int32', 10)
    # Lists shouldn't work, either.
    self.assertRaises(AttributeError, setattr, proto, 'repeated_int32', [10])
    # Composite fields.
    self.assertRaises(AttributeError, setattr, proto,
                      'optional_nested_message', 23)
    # Assignment to a repeated nested message field without specifying
    # the index in the array of nested messages.
    self.assertRaises(AttributeError, setattr, proto.repeated_nested_message,
                      'bb', 34)
    # Assignment to an attribute of a repeated field.
    self.assertRaises(AttributeError, setattr, proto.repeated_float,
                      'some_attribute', 34)
    # proto.nonexistent_field = 23 should fail as well.
    self.assertRaises(AttributeError, setattr, proto, 'nonexistent_field', 23)

  def testSingleScalarTypeSafety(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertRaises(TypeError, setattr, proto, 'optional_int32', 1.1)
    self.assertRaises(TypeError, setattr, proto, 'optional_int32', 'foo')
    self.assertRaises(TypeError, setattr, proto, 'optional_string', 10)
    self.assertRaises(TypeError, setattr, proto, 'optional_bytes', 10)
    self.assertRaises(TypeError, setattr, proto, 'optional_bool', 'foo')
    self.assertRaises(TypeError, setattr, proto, 'optional_float', 'foo')
    self.assertRaises(TypeError, setattr, proto, 'optional_double', 'foo')
    # TODO(jieluo): Fix type checking difference for python and c extension
    if api_implementation.Type() == 'python':
      self.assertRaises(TypeError, setattr, proto, 'optional_bool', 1.1)
    else:
      proto.optional_bool = 1.1

  def assertIntegerTypes(self, integer_fn):
    """Verifies setting of scalar integers.

    Args:
      integer_fn: A function to wrap the integers that will be assigned.
    """
    def TestGetAndDeserialize(field_name, value, expected_type):
      proto = unittest_pb2.TestAllTypes()
      value = integer_fn(value)
      setattr(proto, field_name, value)
      self.assertIsInstance(getattr(proto, field_name), expected_type)
      proto2 = unittest_pb2.TestAllTypes()
      proto2.ParseFromString(proto.SerializeToString())
      self.assertIsInstance(getattr(proto2, field_name), expected_type)

    TestGetAndDeserialize('optional_int32', 1, int)
    TestGetAndDeserialize('optional_int32', 1 << 30, int)
    TestGetAndDeserialize('optional_uint32', 1 << 30, int)
    try:
      integer_64 = long
    except NameError:  # Python3
      integer_64 = int
    if struct.calcsize('L') == 4:
      # Python only has signed ints, so 32-bit python can't fit an uint32
      # in an int.
      TestGetAndDeserialize('optional_uint32', 1 << 31, integer_64)
    else:
      # 64-bit python can fit uint32 inside an int
      TestGetAndDeserialize('optional_uint32', 1 << 31, int)
    TestGetAndDeserialize('optional_int64', 1 << 30, integer_64)
    TestGetAndDeserialize('optional_int64', 1 << 60, integer_64)
    TestGetAndDeserialize('optional_uint64', 1 << 30, integer_64)
    TestGetAndDeserialize('optional_uint64', 1 << 60, integer_64)

  def testIntegerTypes(self):
    self.assertIntegerTypes(lambda x: x)

  def testNonStandardIntegerTypes(self):
    self.assertIntegerTypes(test_util.NonStandardInteger)

  def testIllegalValuesForIntegers(self):
    pb = unittest_pb2.TestAllTypes()

    # Strings are illegal, even when the represent an integer.
    with self.assertRaises(TypeError):
      pb.optional_uint64 = '2'

    # The exact error should propagate with a poorly written custom integer.
    with self.assertRaisesRegexp(RuntimeError, 'my_error'):
      pb.optional_uint64 = test_util.NonStandardInteger(5, 'my_error')

  def assetIntegerBoundsChecking(self, integer_fn):
    """Verifies bounds checking for scalar integer fields.

    Args:
      integer_fn: A function to wrap the integers that will be assigned.
    """
    def TestMinAndMaxIntegers(field_name, expected_min, expected_max):
      pb = unittest_pb2.TestAllTypes()
      expected_min = integer_fn(expected_min)
      expected_max = integer_fn(expected_max)
      setattr(pb, field_name, expected_min)
      self.assertEqual(expected_min, getattr(pb, field_name))
      setattr(pb, field_name, expected_max)
      self.assertEqual(expected_max, getattr(pb, field_name))
      self.assertRaises((ValueError, TypeError), setattr, pb, field_name,
                        expected_min - 1)
      self.assertRaises((ValueError, TypeError), setattr, pb, field_name,
                        expected_max + 1)

    TestMinAndMaxIntegers('optional_int32', -(1 << 31), (1 << 31) - 1)
    TestMinAndMaxIntegers('optional_uint32', 0, 0xffffffff)
    TestMinAndMaxIntegers('optional_int64', -(1 << 63), (1 << 63) - 1)
    TestMinAndMaxIntegers('optional_uint64', 0, 0xffffffffffffffff)
    # A bit of white-box testing since -1 is an int and not a long in C++ and
    # so goes down a different path.
    pb = unittest_pb2.TestAllTypes()
    with self.assertRaises((ValueError, TypeError)):
      pb.optional_uint64 = integer_fn(-(1 << 63))

    pb = unittest_pb2.TestAllTypes()
    pb.optional_nested_enum = integer_fn(1)
    self.assertEqual(1, pb.optional_nested_enum)

  def testSingleScalarBoundsChecking(self):
    self.assetIntegerBoundsChecking(lambda x: x)

  def testNonStandardSingleScalarBoundsChecking(self):
    self.assetIntegerBoundsChecking(test_util.NonStandardInteger)

  def testRepeatedScalarTypeSafety(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertRaises(TypeError, proto.repeated_int32.append, 1.1)
    self.assertRaises(TypeError, proto.repeated_int32.append, 'foo')
    self.assertRaises(TypeError, proto.repeated_string, 10)
    self.assertRaises(TypeError, proto.repeated_bytes, 10)

    proto.repeated_int32.append(10)
    proto.repeated_int32[0] = 23
    self.assertRaises(IndexError, proto.repeated_int32.__setitem__, 500, 23)
    self.assertRaises(TypeError, proto.repeated_int32.__setitem__, 0, 'abc')
    self.assertRaises(TypeError, proto.repeated_int32.__setitem__, 0, [])
    self.assertRaises(TypeError, proto.repeated_int32.__setitem__,
                      'index', 23)

    proto.repeated_string.append('2')
    self.assertRaises(TypeError, proto.repeated_string.__setitem__, 0, 10)

    # Repeated enums tests.
    #proto.repeated_nested_enum.append(0)

  def testSingleScalarGettersAndSetters(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertEqual(0, proto.optional_int32)
    proto.optional_int32 = 1
    self.assertEqual(1, proto.optional_int32)

    proto.optional_uint64 = 0xffffffffffff
    self.assertEqual(0xffffffffffff, proto.optional_uint64)
    proto.optional_uint64 = 0xffffffffffffffff
    self.assertEqual(0xffffffffffffffff, proto.optional_uint64)
    # TODO(robinson): Test all other scalar field types.

  def testSingleScalarClearField(self):
    proto = unittest_pb2.TestAllTypes()
    # Should be allowed to clear something that's not there (a no-op).
    proto.ClearField('optional_int32')
    proto.optional_int32 = 1
    self.assertTrue(proto.HasField('optional_int32'))
    proto.ClearField('optional_int32')
    self.assertEqual(0, proto.optional_int32)
    self.assertTrue(not proto.HasField('optional_int32'))
    # TODO(robinson): Test all other scalar field types.

  def testEnums(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertEqual(1, proto.FOO)
    self.assertEqual(1, unittest_pb2.TestAllTypes.FOO)
    self.assertEqual(2, proto.BAR)
    self.assertEqual(2, unittest_pb2.TestAllTypes.BAR)
    self.assertEqual(3, proto.BAZ)
    self.assertEqual(3, unittest_pb2.TestAllTypes.BAZ)

  def testEnum_Name(self):
    self.assertEqual('FOREIGN_FOO',
                     unittest_pb2.ForeignEnum.Name(unittest_pb2.FOREIGN_FOO))
    self.assertEqual('FOREIGN_BAR',
                     unittest_pb2.ForeignEnum.Name(unittest_pb2.FOREIGN_BAR))
    self.assertEqual('FOREIGN_BAZ',
                     unittest_pb2.ForeignEnum.Name(unittest_pb2.FOREIGN_BAZ))
    self.assertRaises(ValueError,
                      unittest_pb2.ForeignEnum.Name, 11312)

    proto = unittest_pb2.TestAllTypes()
    self.assertEqual('FOO',
                     proto.NestedEnum.Name(proto.FOO))
    self.assertEqual('FOO',
                     unittest_pb2.TestAllTypes.NestedEnum.Name(proto.FOO))
    self.assertEqual('BAR',
                     proto.NestedEnum.Name(proto.BAR))
    self.assertEqual('BAR',
                     unittest_pb2.TestAllTypes.NestedEnum.Name(proto.BAR))
    self.assertEqual('BAZ',
                     proto.NestedEnum.Name(proto.BAZ))
    self.assertEqual('BAZ',
                     unittest_pb2.TestAllTypes.NestedEnum.Name(proto.BAZ))
    self.assertRaises(ValueError,
                      proto.NestedEnum.Name, 11312)
    self.assertRaises(ValueError,
                      unittest_pb2.TestAllTypes.NestedEnum.Name, 11312)

  def testEnum_Value(self):
    self.assertEqual(unittest_pb2.FOREIGN_FOO,
                     unittest_pb2.ForeignEnum.Value('FOREIGN_FOO'))
    self.assertEqual(unittest_pb2.FOREIGN_BAR,
                     unittest_pb2.ForeignEnum.Value('FOREIGN_BAR'))
    self.assertEqual(unittest_pb2.FOREIGN_BAZ,
                     unittest_pb2.ForeignEnum.Value('FOREIGN_BAZ'))
    self.assertRaises(ValueError,
                      unittest_pb2.ForeignEnum.Value, 'FO')

    proto = unittest_pb2.TestAllTypes()
    self.assertEqual(proto.FOO,
                     proto.NestedEnum.Value('FOO'))
    self.assertEqual(proto.FOO,
                     unittest_pb2.TestAllTypes.NestedEnum.Value('FOO'))
    self.assertEqual(proto.BAR,
                     proto.NestedEnum.Value('BAR'))
    self.assertEqual(proto.BAR,
                     unittest_pb2.TestAllTypes.NestedEnum.Value('BAR'))
    self.assertEqual(proto.BAZ,
                     proto.NestedEnum.Value('BAZ'))
    self.assertEqual(proto.BAZ,
                     unittest_pb2.TestAllTypes.NestedEnum.Value('BAZ'))
    self.assertRaises(ValueError,
                      proto.NestedEnum.Value, 'Foo')
    self.assertRaises(ValueError,
                      unittest_pb2.TestAllTypes.NestedEnum.Value, 'Foo')

  def testEnum_KeysAndValues(self):
    self.assertEqual(['FOREIGN_FOO', 'FOREIGN_BAR', 'FOREIGN_BAZ'],
                     list(unittest_pb2.ForeignEnum.keys()))
    self.assertEqual([4, 5, 6],
                     list(unittest_pb2.ForeignEnum.values()))
    self.assertEqual([('FOREIGN_FOO', 4), ('FOREIGN_BAR', 5),
                      ('FOREIGN_BAZ', 6)],
                     list(unittest_pb2.ForeignEnum.items()))

    proto = unittest_pb2.TestAllTypes()
    self.assertEqual(['FOO', 'BAR', 'BAZ', 'NEG'], list(proto.NestedEnum.keys()))
    self.assertEqual([1, 2, 3, -1], list(proto.NestedEnum.values()))
    self.assertEqual([('FOO', 1), ('BAR', 2), ('BAZ', 3), ('NEG', -1)],
                     list(proto.NestedEnum.items()))

  def testRepeatedScalars(self):
    proto = unittest_pb2.TestAllTypes()

    self.assertTrue(not proto.repeated_int32)
    self.assertEqual(0, len(proto.repeated_int32))
    proto.repeated_int32.append(5)
    proto.repeated_int32.append(10)
    proto.repeated_int32.append(15)
    self.assertTrue(proto.repeated_int32)
    self.assertEqual(3, len(proto.repeated_int32))

    self.assertEqual([5, 10, 15], proto.repeated_int32)

    # Test single retrieval.
    self.assertEqual(5, proto.repeated_int32[0])
    self.assertEqual(15, proto.repeated_int32[-1])
    # Test out-of-bounds indices.
    self.assertRaises(IndexError, proto.repeated_int32.__getitem__, 1234)
    self.assertRaises(IndexError, proto.repeated_int32.__getitem__, -1234)
    # Test incorrect types passed to __getitem__.
    self.assertRaises(TypeError, proto.repeated_int32.__getitem__, 'foo')
    self.assertRaises(TypeError, proto.repeated_int32.__getitem__, None)

    # Test single assignment.
    proto.repeated_int32[1] = 20
    self.assertEqual([5, 20, 15], proto.repeated_int32)

    # Test insertion.
    proto.repeated_int32.insert(1, 25)
    self.assertEqual([5, 25, 20, 15], proto.repeated_int32)

    # Test slice retrieval.
    proto.repeated_int32.append(30)
    self.assertEqual([25, 20, 15], proto.repeated_int32[1:4])
    self.assertEqual([5, 25, 20, 15, 30], proto.repeated_int32[:])

    # Test slice assignment with an iterator
    proto.repeated_int32[1:4] = (i for i in range(3))
    self.assertEqual([5, 0, 1, 2, 30], proto.repeated_int32)

    # Test slice assignment.
    proto.repeated_int32[1:4] = [35, 40, 45]
    self.assertEqual([5, 35, 40, 45, 30], proto.repeated_int32)

    # Test that we can use the field as an iterator.
    result = []
    for i in proto.repeated_int32:
      result.append(i)
    self.assertEqual([5, 35, 40, 45, 30], result)

    # Test single deletion.
    del proto.repeated_int32[2]
    self.assertEqual([5, 35, 45, 30], proto.repeated_int32)

    # Test slice deletion.
    del proto.repeated_int32[2:]
    self.assertEqual([5, 35], proto.repeated_int32)

    # Test extending.
    proto.repeated_int32.extend([3, 13])
    self.assertEqual([5, 35, 3, 13], proto.repeated_int32)

    # Test clearing.
    proto.ClearField('repeated_int32')
    self.assertTrue(not proto.repeated_int32)
    self.assertEqual(0, len(proto.repeated_int32))

    proto.repeated_int32.append(1)
    self.assertEqual(1, proto.repeated_int32[-1])
    # Test assignment to a negative index.
    proto.repeated_int32[-1] = 2
    self.assertEqual(2, proto.repeated_int32[-1])

    # Test deletion at negative indices.
    proto.repeated_int32[:] = [0, 1, 2, 3]
    del proto.repeated_int32[-1]
    self.assertEqual([0, 1, 2], proto.repeated_int32)

    del proto.repeated_int32[-2]
    self.assertEqual([0, 2], proto.repeated_int32)

    self.assertRaises(IndexError, proto.repeated_int32.__delitem__, -3)
    self.assertRaises(IndexError, proto.repeated_int32.__delitem__, 300)

    del proto.repeated_int32[-2:-1]
    self.assertEqual([2], proto.repeated_int32)

    del proto.repeated_int32[100:10000]
    self.assertEqual([2], proto.repeated_int32)

  def testRepeatedScalarsRemove(self):
    proto = unittest_pb2.TestAllTypes()

    self.assertTrue(not proto.repeated_int32)
    self.assertEqual(0, len(proto.repeated_int32))
    proto.repeated_int32.append(5)
    proto.repeated_int32.append(10)
    proto.repeated_int32.append(5)
    proto.repeated_int32.append(5)

    self.assertEqual(4, len(proto.repeated_int32))
    proto.repeated_int32.remove(5)
    self.assertEqual(3, len(proto.repeated_int32))
    self.assertEqual(10, proto.repeated_int32[0])
    self.assertEqual(5, proto.repeated_int32[1])
    self.assertEqual(5, proto.repeated_int32[2])

    proto.repeated_int32.remove(5)
    self.assertEqual(2, len(proto.repeated_int32))
    self.assertEqual(10, proto.repeated_int32[0])
    self.assertEqual(5, proto.repeated_int32[1])

    proto.repeated_int32.remove(10)
    self.assertEqual(1, len(proto.repeated_int32))
    self.assertEqual(5, proto.repeated_int32[0])

    # Remove a non-existent element.
    self.assertRaises(ValueError, proto.repeated_int32.remove, 123)

  def testRepeatedComposites(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertTrue(not proto.repeated_nested_message)
    self.assertEqual(0, len(proto.repeated_nested_message))
    m0 = proto.repeated_nested_message.add()
    m1 = proto.repeated_nested_message.add()
    self.assertTrue(proto.repeated_nested_message)
    self.assertEqual(2, len(proto.repeated_nested_message))
    self.assertListsEqual([m0, m1], proto.repeated_nested_message)
    self.assertIsInstance(m0, unittest_pb2.TestAllTypes.NestedMessage)

    # Test out-of-bounds indices.
    self.assertRaises(IndexError, proto.repeated_nested_message.__getitem__,
                      1234)
    self.assertRaises(IndexError, proto.repeated_nested_message.__getitem__,
                      -1234)

    # Test incorrect types passed to __getitem__.
    self.assertRaises(TypeError, proto.repeated_nested_message.__getitem__,
                      'foo')
    self.assertRaises(TypeError, proto.repeated_nested_message.__getitem__,
                      None)

    # Test slice retrieval.
    m2 = proto.repeated_nested_message.add()
    m3 = proto.repeated_nested_message.add()
    m4 = proto.repeated_nested_message.add()
    self.assertListsEqual(
        [m1, m2, m3], proto.repeated_nested_message[1:4])
    self.assertListsEqual(
        [m0, m1, m2, m3, m4], proto.repeated_nested_message[:])
    self.assertListsEqual(
        [m0, m1], proto.repeated_nested_message[:2])
    self.assertListsEqual(
        [m2, m3, m4], proto.repeated_nested_message[2:])
    self.assertEqual(
        m0, proto.repeated_nested_message[0])
    self.assertListsEqual(
        [m0], proto.repeated_nested_message[:1])

    # Test that we can use the field as an iterator.
    result = []
    for i in proto.repeated_nested_message:
      result.append(i)
    self.assertListsEqual([m0, m1, m2, m3, m4], result)

    # Test single deletion.
    del proto.repeated_nested_message[2]
    self.assertListsEqual([m0, m1, m3, m4], proto.repeated_nested_message)

    # Test slice deletion.
    del proto.repeated_nested_message[2:]
    self.assertListsEqual([m0, m1], proto.repeated_nested_message)

    # Test extending.
    n1 = unittest_pb2.TestAllTypes.NestedMessage(bb=1)
    n2 = unittest_pb2.TestAllTypes.NestedMessage(bb=2)
    proto.repeated_nested_message.extend([n1,n2])
    self.assertEqual(4, len(proto.repeated_nested_message))
    self.assertEqual(n1, proto.repeated_nested_message[2])
    self.assertEqual(n2, proto.repeated_nested_message[3])
    self.assertRaises(TypeError,
                      proto.repeated_nested_message.extend, n1)
    self.assertRaises(TypeError,
                      proto.repeated_nested_message.extend, [0])
    wrong_message_type = unittest_pb2.TestAllTypes()
    self.assertRaises(TypeError,
                      proto.repeated_nested_message.extend,
                      [wrong_message_type])

    # Test clearing.
    proto.ClearField('repeated_nested_message')
    self.assertTrue(not proto.repeated_nested_message)
    self.assertEqual(0, len(proto.repeated_nested_message))

    # Test constructing an element while adding it.
    proto.repeated_nested_message.add(bb=23)
    self.assertEqual(1, len(proto.repeated_nested_message))
    self.assertEqual(23, proto.repeated_nested_message[0].bb)
    self.assertRaises(TypeError, proto.repeated_nested_message.add, 23)
    with self.assertRaises(Exception):
      proto.repeated_nested_message[0] = 23

  def testRepeatedCompositeRemove(self):
    proto = unittest_pb2.TestAllTypes()

    self.assertEqual(0, len(proto.repeated_nested_message))
    m0 = proto.repeated_nested_message.add()
    # Need to set some differentiating variable so m0 != m1 != m2:
    m0.bb = len(proto.repeated_nested_message)
    m1 = proto.repeated_nested_message.add()
    m1.bb = len(proto.repeated_nested_message)
    self.assertTrue(m0 != m1)
    m2 = proto.repeated_nested_message.add()
    m2.bb = len(proto.repeated_nested_message)
    self.assertListsEqual([m0, m1, m2], proto.repeated_nested_message)

    self.assertEqual(3, len(proto.repeated_nested_message))
    proto.repeated_nested_message.remove(m0)
    self.assertEqual(2, len(proto.repeated_nested_message))
    self.assertEqual(m1, proto.repeated_nested_message[0])
    self.assertEqual(m2, proto.repeated_nested_message[1])

    # Removing m0 again or removing None should raise error
    self.assertRaises(ValueError, proto.repeated_nested_message.remove, m0)
    self.assertRaises(ValueError, proto.repeated_nested_message.remove, None)
    self.assertEqual(2, len(proto.repeated_nested_message))

    proto.repeated_nested_message.remove(m2)
    self.assertEqual(1, len(proto.repeated_nested_message))
    self.assertEqual(m1, proto.repeated_nested_message[0])

  def testHandWrittenReflection(self):
    # Hand written extensions are only supported by the pure-Python
    # implementation of the API.
    if api_implementation.Type() != 'python':
      return

    FieldDescriptor = descriptor.FieldDescriptor
    foo_field_descriptor = FieldDescriptor(
        name='foo_field', full_name='MyProto.foo_field',
        index=0, number=1, type=FieldDescriptor.TYPE_INT64,
        cpp_type=FieldDescriptor.CPPTYPE_INT64,
        label=FieldDescriptor.LABEL_OPTIONAL, default_value=0,
        containing_type=None, message_type=None, enum_type=None,
        is_extension=False, extension_scope=None,
        options=descriptor_pb2.FieldOptions())
    mydescriptor = descriptor.Descriptor(
        name='MyProto', full_name='MyProto', filename='ignored',
        containing_type=None, nested_types=[], enum_types=[],
        fields=[foo_field_descriptor], extensions=[],
        options=descriptor_pb2.MessageOptions())
    class MyProtoClass(six.with_metaclass(reflection.GeneratedProtocolMessageType, message.Message)):
      DESCRIPTOR = mydescriptor
    myproto_instance = MyProtoClass()
    self.assertEqual(0, myproto_instance.foo_field)
    self.assertTrue(not myproto_instance.HasField('foo_field'))
    myproto_instance.foo_field = 23
    self.assertEqual(23, myproto_instance.foo_field)
    self.assertTrue(myproto_instance.HasField('foo_field'))

  def testDescriptorProtoSupport(self):
    # Hand written descriptors/reflection are only supported by the pure-Python
    # implementation of the API.
    if api_implementation.Type() != 'python':
      return

    def AddDescriptorField(proto, field_name, field_type):
      AddDescriptorField.field_index += 1
      new_field = proto.field.add()
      new_field.name = field_name
      new_field.type = field_type
      new_field.number = AddDescriptorField.field_index
      new_field.label = descriptor_pb2.FieldDescriptorProto.LABEL_OPTIONAL

    AddDescriptorField.field_index = 0

    desc_proto = descriptor_pb2.DescriptorProto()
    desc_proto.name = 'Car'
    fdp = descriptor_pb2.FieldDescriptorProto
    AddDescriptorField(desc_proto, 'name', fdp.TYPE_STRING)
    AddDescriptorField(desc_proto, 'year', fdp.TYPE_INT64)
    AddDescriptorField(desc_proto, 'automatic', fdp.TYPE_BOOL)
    AddDescriptorField(desc_proto, 'price', fdp.TYPE_DOUBLE)
    # Add a repeated field
    AddDescriptorField.field_index += 1
    new_field = desc_proto.field.add()
    new_field.name = 'owners'
    new_field.type = fdp.TYPE_STRING
    new_field.number = AddDescriptorField.field_index
    new_field.label = descriptor_pb2.FieldDescriptorProto.LABEL_REPEATED

    desc = descriptor.MakeDescriptor(desc_proto)
    self.assertTrue('name' in desc.fields_by_name)
    self.assertTrue('year' in desc.fields_by_name)
    self.assertTrue('automatic' in desc.fields_by_name)
    self.assertTrue('price' in desc.fields_by_name)
    self.assertTrue('owners' in desc.fields_by_name)

    class CarMessage(six.with_metaclass(reflection.GeneratedProtocolMessageType, message.Message)):
      DESCRIPTOR = desc

    prius = CarMessage()
    prius.name = 'prius'
    prius.year = 2010
    prius.automatic = True
    prius.price = 25134.75
    prius.owners.extend(['bob', 'susan'])

    serialized_prius = prius.SerializeToString()
    new_prius = reflection.ParseMessage(desc, serialized_prius)
    self.assertTrue(new_prius is not prius)
    self.assertEqual(prius, new_prius)

    # these are unnecessary assuming message equality works as advertised but
    # explicitly check to be safe since we're mucking about in metaclass foo
    self.assertEqual(prius.name, new_prius.name)
    self.assertEqual(prius.year, new_prius.year)
    self.assertEqual(prius.automatic, new_prius.automatic)
    self.assertEqual(prius.price, new_prius.price)
    self.assertEqual(prius.owners, new_prius.owners)

  def testTopLevelExtensionsForOptionalScalar(self):
    extendee_proto = unittest_pb2.TestAllExtensions()
    extension = unittest_pb2.optional_int32_extension
    self.assertTrue(not extendee_proto.HasExtension(extension))
    self.assertEqual(0, extendee_proto.Extensions[extension])
    # As with normal scalar fields, just doing a read doesn't actually set the
    # "has" bit.
    self.assertTrue(not extendee_proto.HasExtension(extension))
    # Actually set the thing.
    extendee_proto.Extensions[extension] = 23
    self.assertEqual(23, extendee_proto.Extensions[extension])
    self.assertTrue(extendee_proto.HasExtension(extension))
    # Ensure that clearing works as well.
    extendee_proto.ClearExtension(extension)
    self.assertEqual(0, extendee_proto.Extensions[extension])
    self.assertTrue(not extendee_proto.HasExtension(extension))

  def testTopLevelExtensionsForRepeatedScalar(self):
    extendee_proto = unittest_pb2.TestAllExtensions()
    extension = unittest_pb2.repeated_string_extension
    self.assertEqual(0, len(extendee_proto.Extensions[extension]))
    extendee_proto.Extensions[extension].append('foo')
    self.assertEqual(['foo'], extendee_proto.Extensions[extension])
    string_list = extendee_proto.Extensions[extension]
    extendee_proto.ClearExtension(extension)
    self.assertEqual(0, len(extendee_proto.Extensions[extension]))
    self.assertTrue(string_list is not extendee_proto.Extensions[extension])
    # Shouldn't be allowed to do Extensions[extension] = 'a'
    self.assertRaises(TypeError, operator.setitem, extendee_proto.Extensions,
                      extension, 'a')

  def testTopLevelExtensionsForOptionalMessage(self):
    extendee_proto = unittest_pb2.TestAllExtensions()
    extension = unittest_pb2.optional_foreign_message_extension
    self.assertTrue(not extendee_proto.HasExtension(extension))
    self.assertEqual(0, extendee_proto.Extensions[extension].c)
    # As with normal (non-extension) fields, merely reading from the
    # thing shouldn't set the "has" bit.
    self.assertTrue(not extendee_proto.HasExtension(extension))
    extendee_proto.Extensions[extension].c = 23
    self.assertEqual(23, extendee_proto.Extensions[extension].c)
    self.assertTrue(extendee_proto.HasExtension(extension))
    # Save a reference here.
    foreign_message = extendee_proto.Extensions[extension]
    extendee_proto.ClearExtension(extension)
    self.assertTrue(foreign_message is not extendee_proto.Extensions[extension])
    # Setting a field on foreign_message now shouldn't set
    # any "has" bits on extendee_proto.
    foreign_message.c = 42
    self.assertEqual(42, foreign_message.c)
    self.assertTrue(foreign_message.HasField('c'))
    self.assertTrue(not extendee_proto.HasExtension(extension))
    # Shouldn't be allowed to do Extensions[extension] = 'a'
    self.assertRaises(TypeError, operator.setitem, extendee_proto.Extensions,
                      extension, 'a')

  def testTopLevelExtensionsForRepeatedMessage(self):
    extendee_proto = unittest_pb2.TestAllExtensions()
    extension = unittest_pb2.repeatedgroup_extension
    self.assertEqual(0, len(extendee_proto.Extensions[extension]))
    group = extendee_proto.Extensions[extension].add()
    group.a = 23
    self.assertEqual(23, extendee_proto.Extensions[extension][0].a)
    group.a = 42
    self.assertEqual(42, extendee_proto.Extensions[extension][0].a)
    group_list = extendee_proto.Extensions[extension]
    extendee_proto.ClearExtension(extension)
    self.assertEqual(0, len(extendee_proto.Extensions[extension]))
    self.assertTrue(group_list is not extendee_proto.Extensions[extension])
    # Shouldn't be allowed to do Extensions[extension] = 'a'
    self.assertRaises(TypeError, operator.setitem, extendee_proto.Extensions,
                      extension, 'a')

  def testNestedExtensions(self):
    extendee_proto = unittest_pb2.TestAllExtensions()
    extension = unittest_pb2.TestRequired.single

    # We just test the non-repeated case.
    self.assertTrue(not extendee_proto.HasExtension(extension))
    required = extendee_proto.Extensions[extension]
    self.assertEqual(0, required.a)
    self.assertTrue(not extendee_proto.HasExtension(extension))
    required.a = 23
    self.assertEqual(23, extendee_proto.Extensions[extension].a)
    self.assertTrue(extendee_proto.HasExtension(extension))
    extendee_proto.ClearExtension(extension)
    self.assertTrue(required is not extendee_proto.Extensions[extension])
    self.assertTrue(not extendee_proto.HasExtension(extension))

  def testRegisteredExtensions(self):
    pool = unittest_pb2.DESCRIPTOR.pool
    self.assertTrue(
        pool.FindExtensionByNumber(
            unittest_pb2.TestAllExtensions.DESCRIPTOR, 1))
    self.assertIs(
        pool.FindExtensionByName(
            'protobuf_unittest.optional_int32_extension').containing_type,
        unittest_pb2.TestAllExtensions.DESCRIPTOR)
    # Make sure extensions haven't been registered into types that shouldn't
    # have any.
    self.assertEqual(0, len(
        pool.FindAllExtensions(unittest_pb2.TestAllTypes.DESCRIPTOR)))

  # If message A directly contains message B, and
  # a.HasField('b') is currently False, then mutating any
  # extension in B should change a.HasField('b') to True
  # (and so on up the object tree).
  def testHasBitsForAncestorsOfExtendedMessage(self):
    # Optional scalar extension.
    toplevel = more_extensions_pb2.TopLevelMessage()
    self.assertTrue(not toplevel.HasField('submessage'))
    self.assertEqual(0, toplevel.submessage.Extensions[
        more_extensions_pb2.optional_int_extension])
    self.assertTrue(not toplevel.HasField('submessage'))
    toplevel.submessage.Extensions[
        more_extensions_pb2.optional_int_extension] = 23
    self.assertEqual(23, toplevel.submessage.Extensions[
        more_extensions_pb2.optional_int_extension])
    self.assertTrue(toplevel.HasField('submessage'))

    # Repeated scalar extension.
    toplevel = more_extensions_pb2.TopLevelMessage()
    self.assertTrue(not toplevel.HasField('submessage'))
    self.assertEqual([], toplevel.submessage.Extensions[
        more_extensions_pb2.repeated_int_extension])
    self.assertTrue(not toplevel.HasField('submessage'))
    toplevel.submessage.Extensions[
        more_extensions_pb2.repeated_int_extension].append(23)
    self.assertEqual([23], toplevel.submessage.Extensions[
        more_extensions_pb2.repeated_int_extension])
    self.assertTrue(toplevel.HasField('submessage'))

    # Optional message extension.
    toplevel = more_extensions_pb2.TopLevelMessage()
    self.assertTrue(not toplevel.HasField('submessage'))
    self.assertEqual(0, toplevel.submessage.Extensions[
        more_extensions_pb2.optional_message_extension].foreign_message_int)
    self.assertTrue(not toplevel.HasField('submessage'))
    toplevel.submessage.Extensions[
        more_extensions_pb2.optional_message_extension].foreign_message_int = 23
    self.assertEqual(23, toplevel.submessage.Extensions[
        more_extensions_pb2.optional_message_extension].foreign_message_int)
    self.assertTrue(toplevel.HasField('submessage'))

    # Repeated message extension.
    toplevel = more_extensions_pb2.TopLevelMessage()
    self.assertTrue(not toplevel.HasField('submessage'))
    self.assertEqual(0, len(toplevel.submessage.Extensions[
        more_extensions_pb2.repeated_message_extension]))
    self.assertTrue(not toplevel.HasField('submessage'))
    foreign = toplevel.submessage.Extensions[
        more_extensions_pb2.repeated_message_extension].add()
    self.assertEqual(foreign, toplevel.submessage.Extensions[
        more_extensions_pb2.repeated_message_extension][0])
    self.assertTrue(toplevel.HasField('submessage'))

  def testDisconnectionAfterClearingEmptyMessage(self):
    toplevel = more_extensions_pb2.TopLevelMessage()
    extendee_proto = toplevel.submessage
    extension = more_extensions_pb2.optional_message_extension
    extension_proto = extendee_proto.Extensions[extension]
    extendee_proto.ClearExtension(extension)
    extension_proto.foreign_message_int = 23

    self.assertTrue(extension_proto is not extendee_proto.Extensions[extension])

  def testExtensionFailureModes(self):
    extendee_proto = unittest_pb2.TestAllExtensions()

    # Try non-extension-handle arguments to HasExtension,
    # ClearExtension(), and Extensions[]...
    self.assertRaises(KeyError, extendee_proto.HasExtension, 1234)
    self.assertRaises(KeyError, extendee_proto.ClearExtension, 1234)
    self.assertRaises(KeyError, extendee_proto.Extensions.__getitem__, 1234)
    self.assertRaises(KeyError, extendee_proto.Extensions.__setitem__, 1234, 5)

    # Try something that *is* an extension handle, just not for
    # this message...
    for unknown_handle in (more_extensions_pb2.optional_int_extension,
                           more_extensions_pb2.optional_message_extension,
                           more_extensions_pb2.repeated_int_extension,
                           more_extensions_pb2.repeated_message_extension):
      self.assertRaises(KeyError, extendee_proto.HasExtension,
                        unknown_handle)
      self.assertRaises(KeyError, extendee_proto.ClearExtension,
                        unknown_handle)
      self.assertRaises(KeyError, extendee_proto.Extensions.__getitem__,
                        unknown_handle)
      self.assertRaises(KeyError, extendee_proto.Extensions.__setitem__,
                        unknown_handle, 5)

    # Try call HasExtension() with a valid handle, but for a
    # *repeated* field.  (Just as with non-extension repeated
    # fields, Has*() isn't supported for extension repeated fields).
    self.assertRaises(KeyError, extendee_proto.HasExtension,
                      unittest_pb2.repeated_string_extension)

  def testStaticParseFrom(self):
    proto1 = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(proto1)

    string1 = proto1.SerializeToString()
    proto2 = unittest_pb2.TestAllTypes.FromString(string1)

    # Messages should be equal.
    self.assertEqual(proto2, proto1)

  def testMergeFromSingularField(self):
    # Test merge with just a singular field.
    proto1 = unittest_pb2.TestAllTypes()
    proto1.optional_int32 = 1

    proto2 = unittest_pb2.TestAllTypes()
    # This shouldn't get overwritten.
    proto2.optional_string = 'value'

    proto2.MergeFrom(proto1)
    self.assertEqual(1, proto2.optional_int32)
    self.assertEqual('value', proto2.optional_string)

  def testMergeFromRepeatedField(self):
    # Test merge with just a repeated field.
    proto1 = unittest_pb2.TestAllTypes()
    proto1.repeated_int32.append(1)
    proto1.repeated_int32.append(2)

    proto2 = unittest_pb2.TestAllTypes()
    proto2.repeated_int32.append(0)
    proto2.MergeFrom(proto1)

    self.assertEqual(0, proto2.repeated_int32[0])
    self.assertEqual(1, proto2.repeated_int32[1])
    self.assertEqual(2, proto2.repeated_int32[2])

  def testMergeFromOptionalGroup(self):
    # Test merge with an optional group.
    proto1 = unittest_pb2.TestAllTypes()
    proto1.optionalgroup.a = 12
    proto2 = unittest_pb2.TestAllTypes()
    proto2.MergeFrom(proto1)
    self.assertEqual(12, proto2.optionalgroup.a)

  def testMergeFromRepeatedNestedMessage(self):
    # Test merge with a repeated nested message.
    proto1 = unittest_pb2.TestAllTypes()
    m = proto1.repeated_nested_message.add()
    m.bb = 123
    m = proto1.repeated_nested_message.add()
    m.bb = 321

    proto2 = unittest_pb2.TestAllTypes()
    m = proto2.repeated_nested_message.add()
    m.bb = 999
    proto2.MergeFrom(proto1)
    self.assertEqual(999, proto2.repeated_nested_message[0].bb)
    self.assertEqual(123, proto2.repeated_nested_message[1].bb)
    self.assertEqual(321, proto2.repeated_nested_message[2].bb)

    proto3 = unittest_pb2.TestAllTypes()
    proto3.repeated_nested_message.MergeFrom(proto2.repeated_nested_message)
    self.assertEqual(999, proto3.repeated_nested_message[0].bb)
    self.assertEqual(123, proto3.repeated_nested_message[1].bb)
    self.assertEqual(321, proto3.repeated_nested_message[2].bb)

  def testMergeFromAllFields(self):
    # With all fields set.
    proto1 = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(proto1)
    proto2 = unittest_pb2.TestAllTypes()
    proto2.MergeFrom(proto1)

    # Messages should be equal.
    self.assertEqual(proto2, proto1)

    # Serialized string should be equal too.
    string1 = proto1.SerializeToString()
    string2 = proto2.SerializeToString()
    self.assertEqual(string1, string2)

  def testMergeFromExtensionsSingular(self):
    proto1 = unittest_pb2.TestAllExtensions()
    proto1.Extensions[unittest_pb2.optional_int32_extension] = 1

    proto2 = unittest_pb2.TestAllExtensions()
    proto2.MergeFrom(proto1)
    self.assertEqual(
        1, proto2.Extensions[unittest_pb2.optional_int32_extension])

  def testMergeFromExtensionsRepeated(self):
    proto1 = unittest_pb2.TestAllExtensions()
    proto1.Extensions[unittest_pb2.repeated_int32_extension].append(1)
    proto1.Extensions[unittest_pb2.repeated_int32_extension].append(2)

    proto2 = unittest_pb2.TestAllExtensions()
    proto2.Extensions[unittest_pb2.repeated_int32_extension].append(0)
    proto2.MergeFrom(proto1)
    self.assertEqual(
        3, len(proto2.Extensions[unittest_pb2.repeated_int32_extension]))
    self.assertEqual(
        0, proto2.Extensions[unittest_pb2.repeated_int32_extension][0])
    self.assertEqual(
        1, proto2.Extensions[unittest_pb2.repeated_int32_extension][1])
    self.assertEqual(
        2, proto2.Extensions[unittest_pb2.repeated_int32_extension][2])

  def testMergeFromExtensionsNestedMessage(self):
    proto1 = unittest_pb2.TestAllExtensions()
    ext1 = proto1.Extensions[
        unittest_pb2.repeated_nested_message_extension]
    m = ext1.add()
    m.bb = 222
    m = ext1.add()
    m.bb = 333

    proto2 = unittest_pb2.TestAllExtensions()
    ext2 = proto2.Extensions[
        unittest_pb2.repeated_nested_message_extension]
    m = ext2.add()
    m.bb = 111

    proto2.MergeFrom(proto1)
    ext2 = proto2.Extensions[
        unittest_pb2.repeated_nested_message_extension]
    self.assertEqual(3, len(ext2))
    self.assertEqual(111, ext2[0].bb)
    self.assertEqual(222, ext2[1].bb)
    self.assertEqual(333, ext2[2].bb)

  def testMergeFromBug(self):
    message1 = unittest_pb2.TestAllTypes()
    message2 = unittest_pb2.TestAllTypes()

    # Cause optional_nested_message to be instantiated within message1, even
    # though it is not considered to be "present".
    message1.optional_nested_message
    self.assertFalse(message1.HasField('optional_nested_message'))

    # Merge into message2.  This should not instantiate the field is message2.
    message2.MergeFrom(message1)
    self.assertFalse(message2.HasField('optional_nested_message'))

  def testCopyFromSingularField(self):
    # Test copy with just a singular field.
    proto1 = unittest_pb2.TestAllTypes()
    proto1.optional_int32 = 1
    proto1.optional_string = 'important-text'

    proto2 = unittest_pb2.TestAllTypes()
    proto2.optional_string = 'value'

    proto2.CopyFrom(proto1)
    self.assertEqual(1, proto2.optional_int32)
    self.assertEqual('important-text', proto2.optional_string)

  def testCopyFromRepeatedField(self):
    # Test copy with a repeated field.
    proto1 = unittest_pb2.TestAllTypes()
    proto1.repeated_int32.append(1)
    proto1.repeated_int32.append(2)

    proto2 = unittest_pb2.TestAllTypes()
    proto2.repeated_int32.append(0)
    proto2.CopyFrom(proto1)

    self.assertEqual(1, proto2.repeated_int32[0])
    self.assertEqual(2, proto2.repeated_int32[1])

  def testCopyFromAllFields(self):
    # With all fields set.
    proto1 = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(proto1)
    proto2 = unittest_pb2.TestAllTypes()
    proto2.CopyFrom(proto1)

    # Messages should be equal.
    self.assertEqual(proto2, proto1)

    # Serialized string should be equal too.
    string1 = proto1.SerializeToString()
    string2 = proto2.SerializeToString()
    self.assertEqual(string1, string2)

  def testCopyFromSelf(self):
    proto1 = unittest_pb2.TestAllTypes()
    proto1.repeated_int32.append(1)
    proto1.optional_int32 = 2
    proto1.optional_string = 'important-text'

    proto1.CopyFrom(proto1)
    self.assertEqual(1, proto1.repeated_int32[0])
    self.assertEqual(2, proto1.optional_int32)
    self.assertEqual('important-text', proto1.optional_string)

  def testCopyFromBadType(self):
    # The python implementation doesn't raise an exception in this
    # case. In theory it should.
    if api_implementation.Type() == 'python':
      return
    proto1 = unittest_pb2.TestAllTypes()
    proto2 = unittest_pb2.TestAllExtensions()
    self.assertRaises(TypeError, proto1.CopyFrom, proto2)

  def testDeepCopy(self):
    proto1 = unittest_pb2.TestAllTypes()
    proto1.optional_int32 = 1
    proto2 = copy.deepcopy(proto1)
    self.assertEqual(1, proto2.optional_int32)

    proto1.repeated_int32.append(2)
    proto1.repeated_int32.append(3)
    container = copy.deepcopy(proto1.repeated_int32)
    self.assertEqual([2, 3], container)

    message1 = proto1.repeated_nested_message.add()
    message1.bb = 1
    messages = copy.deepcopy(proto1.repeated_nested_message)
    self.assertEqual(proto1.repeated_nested_message, messages)
    message1.bb = 2
    self.assertNotEqual(proto1.repeated_nested_message, messages)

    # TODO(anuraag): Implement deepcopy for extension dict

  def testClear(self):
    proto = unittest_pb2.TestAllTypes()
    # C++ implementation does not support lazy fields right now so leave it
    # out for now.
    if api_implementation.Type() == 'python':
      test_util.SetAllFields(proto)
    else:
      test_util.SetAllNonLazyFields(proto)
    # Clear the message.
    proto.Clear()
    self.assertEqual(proto.ByteSize(), 0)
    empty_proto = unittest_pb2.TestAllTypes()
    self.assertEqual(proto, empty_proto)

    # Test if extensions which were set are cleared.
    proto = unittest_pb2.TestAllExtensions()
    test_util.SetAllExtensions(proto)
    # Clear the message.
    proto.Clear()
    self.assertEqual(proto.ByteSize(), 0)
    empty_proto = unittest_pb2.TestAllExtensions()
    self.assertEqual(proto, empty_proto)

  def testDisconnectingBeforeClear(self):
    proto = unittest_pb2.TestAllTypes()
    nested = proto.optional_nested_message
    proto.Clear()
    self.assertTrue(nested is not proto.optional_nested_message)
    nested.bb = 23
    self.assertTrue(not proto.HasField('optional_nested_message'))
    self.assertEqual(0, proto.optional_nested_message.bb)

    proto = unittest_pb2.TestAllTypes()
    nested = proto.optional_nested_message
    nested.bb = 5
    foreign = proto.optional_foreign_message
    foreign.c = 6

    proto.Clear()
    self.assertTrue(nested is not proto.optional_nested_message)
    self.assertTrue(foreign is not proto.optional_foreign_message)
    self.assertEqual(5, nested.bb)
    self.assertEqual(6, foreign.c)
    nested.bb = 15
    foreign.c = 16
    self.assertFalse(proto.HasField('optional_nested_message'))
    self.assertEqual(0, proto.optional_nested_message.bb)
    self.assertFalse(proto.HasField('optional_foreign_message'))
    self.assertEqual(0, proto.optional_foreign_message.c)

  def testDisconnectingInOneof(self):
    m = unittest_pb2.TestOneof2()  # This message has two messages in a oneof.
    m.foo_message.qux_int = 5
    sub_message = m.foo_message
    # Accessing another message's field does not clear the first one
    self.assertEqual(m.foo_lazy_message.qux_int, 0)
    self.assertEqual(m.foo_message.qux_int, 5)
    # But mutating another message in the oneof detaches the first one.
    m.foo_lazy_message.qux_int = 6
    self.assertEqual(m.foo_message.qux_int, 0)
    # The reference we got above was detached and is still valid.
    self.assertEqual(sub_message.qux_int, 5)
    sub_message.qux_int = 7

  def testOneOf(self):
    proto = unittest_pb2.TestAllTypes()
    proto.oneof_uint32 = 10
    proto.oneof_nested_message.bb = 11
    self.assertEqual(11, proto.oneof_nested_message.bb)
    self.assertFalse(proto.HasField('oneof_uint32'))
    nested = proto.oneof_nested_message
    proto.oneof_string = 'abc'
    self.assertEqual('abc', proto.oneof_string)
    self.assertEqual(11, nested.bb)
    self.assertFalse(proto.HasField('oneof_nested_message'))

  def assertInitialized(self, proto):
    self.assertTrue(proto.IsInitialized())
    # Neither method should raise an exception.
    proto.SerializeToString()
    proto.SerializePartialToString()

  def assertNotInitialized(self, proto, error_size=None):
    errors = []
    self.assertFalse(proto.IsInitialized())
    self.assertFalse(proto.IsInitialized(errors))
    self.assertEqual(error_size, len(errors))
    self.assertRaises(message.EncodeError, proto.SerializeToString)
    # "Partial" serialization doesn't care if message is uninitialized.
    proto.SerializePartialToString()

  def testIsInitialized(self):
    # Trivial cases - all optional fields and extensions.
    proto = unittest_pb2.TestAllTypes()
    self.assertInitialized(proto)
    proto = unittest_pb2.TestAllExtensions()
    self.assertInitialized(proto)

    # The case of uninitialized required fields.
    proto = unittest_pb2.TestRequired()
    self.assertNotInitialized(proto, 3)
    proto.a = proto.b = proto.c = 2
    self.assertInitialized(proto)

    # The case of uninitialized submessage.
    proto = unittest_pb2.TestRequiredForeign()
    self.assertInitialized(proto)
    proto.optional_message.a = 1
    self.assertNotInitialized(proto, 2)
    proto.optional_message.b = 0
    proto.optional_message.c = 0
    self.assertInitialized(proto)

    # Uninitialized repeated submessage.
    message1 = proto.repeated_message.add()
    self.assertNotInitialized(proto, 3)
    message1.a = message1.b = message1.c = 0
    self.assertInitialized(proto)

    # Uninitialized repeated group in an extension.
    proto = unittest_pb2.TestAllExtensions()
    extension = unittest_pb2.TestRequired.multi
    message1 = proto.Extensions[extension].add()
    message2 = proto.Extensions[extension].add()
    self.assertNotInitialized(proto, 6)
    message1.a = 1
    message1.b = 1
    message1.c = 1
    self.assertNotInitialized(proto, 3)
    message2.a = 2
    message2.b = 2
    message2.c = 2
    self.assertInitialized(proto)

    # Uninitialized nonrepeated message in an extension.
    proto = unittest_pb2.TestAllExtensions()
    extension = unittest_pb2.TestRequired.single
    proto.Extensions[extension].a = 1
    self.assertNotInitialized(proto, 2)
    proto.Extensions[extension].b = 2
    proto.Extensions[extension].c = 3
    self.assertInitialized(proto)

    # Try passing an errors list.
    errors = []
    proto = unittest_pb2.TestRequired()
    self.assertFalse(proto.IsInitialized(errors))
    self.assertEqual(errors, ['a', 'b', 'c'])

  @unittest.skipIf(
      api_implementation.Type() != 'cpp' or api_implementation.Version() != 2,
      'Errors are only available from the most recent C++ implementation.')
  def testFileDescriptorErrors(self):
    file_name = 'test_file_descriptor_errors.proto'
    package_name = 'test_file_descriptor_errors.proto'
    file_descriptor_proto = descriptor_pb2.FileDescriptorProto()
    file_descriptor_proto.name = file_name
    file_descriptor_proto.package = package_name
    m1 = file_descriptor_proto.message_type.add()
    m1.name = 'msg1'
    # Compiles the proto into the C++ descriptor pool
    descriptor.FileDescriptor(
        file_name,
        package_name,
        serialized_pb=file_descriptor_proto.SerializeToString())
    # Add a FileDescriptorProto that has duplicate symbols
    another_file_name = 'another_test_file_descriptor_errors.proto'
    file_descriptor_proto.name = another_file_name
    m2 = file_descriptor_proto.message_type.add()
    m2.name = 'msg2'
    with self.assertRaises(TypeError) as cm:
      descriptor.FileDescriptor(
          another_file_name,
          package_name,
          serialized_pb=file_descriptor_proto.SerializeToString())
      self.assertTrue(hasattr(cm, 'exception'), '%s not raised' %
                      getattr(cm.expected, '__name__', cm.expected))
      self.assertIn('test_file_descriptor_errors.proto', str(cm.exception))
      # Error message will say something about this definition being a
      # duplicate, though we don't check the message exactly to avoid a
      # dependency on the C++ logging code.
      self.assertIn('test_file_descriptor_errors.msg1', str(cm.exception))

  def testStringUTF8Encoding(self):
    proto = unittest_pb2.TestAllTypes()

    # Assignment of a unicode object to a field of type 'bytes' is not allowed.
    self.assertRaises(TypeError,
                      setattr, proto, 'optional_bytes', u'unicode object')

    # Check that the default value is of python's 'unicode' type.
    self.assertEqual(type(proto.optional_string), six.text_type)

    proto.optional_string = six.text_type('Testing')
    self.assertEqual(proto.optional_string, str('Testing'))

    # Assign a value of type 'str' which can be encoded in UTF-8.
    proto.optional_string = str('Testing')
    self.assertEqual(proto.optional_string, six.text_type('Testing'))

    # Try to assign a 'bytes' object which contains non-UTF-8.
    self.assertRaises(ValueError,
                      setattr, proto, 'optional_string', b'a\x80a')
    # No exception: Assign already encoded UTF-8 bytes to a string field.
    utf8_bytes = u'Тест'.encode('utf-8')
    proto.optional_string = utf8_bytes
    # No exception: Assign the a non-ascii unicode object.
    proto.optional_string = u'Тест'
    # No exception thrown (normal str assignment containing ASCII).
    proto.optional_string = 'abc'

  def testStringUTF8Serialization(self):
    proto = message_set_extensions_pb2.TestMessageSet()
    extension_message = message_set_extensions_pb2.TestMessageSetExtension2
    extension = extension_message.message_set_extension

    test_utf8 = u'Тест'
    test_utf8_bytes = test_utf8.encode('utf-8')

    # 'Test' in another language, using UTF-8 charset.
    proto.Extensions[extension].str = test_utf8

    # Serialize using the MessageSet wire format (this is specified in the
    # .proto file).
    serialized = proto.SerializeToString()

    # Check byte size.
    self.assertEqual(proto.ByteSize(), len(serialized))

    raw = unittest_mset_pb2.RawMessageSet()
    bytes_read = raw.MergeFromString(serialized)
    self.assertEqual(len(serialized), bytes_read)

    message2 = message_set_extensions_pb2.TestMessageSetExtension2()

    self.assertEqual(1, len(raw.item))
    # Check that the type_id is the same as the tag ID in the .proto file.
    self.assertEqual(raw.item[0].type_id, 98418634)

    # Check the actual bytes on the wire.
    self.assertTrue(raw.item[0].message.endswith(test_utf8_bytes))
    bytes_read = message2.MergeFromString(raw.item[0].message)
    self.assertEqual(len(raw.item[0].message), bytes_read)

    self.assertEqual(type(message2.str), six.text_type)
    self.assertEqual(message2.str, test_utf8)

    # The pure Python API throws an exception on MergeFromString(),
    # if any of the string fields of the message can't be UTF-8 decoded.
    # The C++ implementation of the API has no way to check that on
    # MergeFromString and thus has no way to throw the exception.
    #
    # The pure Python API always returns objects of type 'unicode' (UTF-8
    # encoded), or 'bytes' (in 7 bit ASCII).
    badbytes = raw.item[0].message.replace(
        test_utf8_bytes, len(test_utf8_bytes) * b'\xff')

    unicode_decode_failed = False
    try:
      message2.MergeFromString(badbytes)
    except UnicodeDecodeError:
      unicode_decode_failed = True
    string_field = message2.str
    self.assertTrue(unicode_decode_failed or type(string_field) is bytes)

  def testBytesInTextFormat(self):
    proto = unittest_pb2.TestAllTypes(optional_bytes=b'\x00\x7f\x80\xff')
    self.assertEqual(u'optional_bytes: "\\000\\177\\200\\377"\n',
                     six.text_type(proto))

  def testEmptyNestedMessage(self):
    proto = unittest_pb2.TestAllTypes()
    proto.optional_nested_message.MergeFrom(
        unittest_pb2.TestAllTypes.NestedMessage())
    self.assertTrue(proto.HasField('optional_nested_message'))

    proto = unittest_pb2.TestAllTypes()
    proto.optional_nested_message.CopyFrom(
        unittest_pb2.TestAllTypes.NestedMessage())
    self.assertTrue(proto.HasField('optional_nested_message'))

    proto = unittest_pb2.TestAllTypes()
    bytes_read = proto.optional_nested_message.MergeFromString(b'')
    self.assertEqual(0, bytes_read)
    self.assertTrue(proto.HasField('optional_nested_message'))

    proto = unittest_pb2.TestAllTypes()
    proto.optional_nested_message.ParseFromString(b'')
    self.assertTrue(proto.HasField('optional_nested_message'))

    serialized = proto.SerializeToString()
    proto2 = unittest_pb2.TestAllTypes()
    self.assertEqual(
        len(serialized),
        proto2.MergeFromString(serialized))
    self.assertTrue(proto2.HasField('optional_nested_message'))

  def testSetInParent(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertFalse(proto.HasField('optionalgroup'))
    proto.optionalgroup.SetInParent()
    self.assertTrue(proto.HasField('optionalgroup'))

  def testPackageInitializationImport(self):
    """Test that we can import nested messages from their __init__.py.

    Such setup is not trivial since at the time of processing of __init__.py one
    can't refer to its submodules by name in code, so expressions like
    google.protobuf.internal.import_test_package.inner_pb2
    don't work. They do work in imports, so we have assign an alias at import
    and then use that alias in generated code.
    """
    # We import here since it's the import that used to fail, and we want
    # the failure to have the right context.
    # pylint: disable=g-import-not-at-top
    from google.protobuf.internal import import_test_package
    # pylint: enable=g-import-not-at-top
    msg = import_test_package.myproto.Outer()
    # Just check the default value.
    self.assertEqual(57, msg.inner.value)

#  Since we had so many tests for protocol buffer equality, we broke these out
#  into separate TestCase classes.


class TestAllTypesEqualityTest(BaseTestCase):

  def setUp(self):
    self.first_proto = unittest_pb2.TestAllTypes()
    self.second_proto = unittest_pb2.TestAllTypes()

  def testNotHashable(self):
    self.assertRaises(TypeError, hash, self.first_proto)

  def testSelfEquality(self):
    self.assertEqual(self.first_proto, self.first_proto)

  def testEmptyProtosEqual(self):
    self.assertEqual(self.first_proto, self.second_proto)


class FullProtosEqualityTest(BaseTestCase):

  """Equality tests using completely-full protos as a starting point."""

  def setUp(self):
    self.first_proto = unittest_pb2.TestAllTypes()
    self.second_proto = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(self.first_proto)
    test_util.SetAllFields(self.second_proto)

  def testNotHashable(self):
    self.assertRaises(TypeError, hash, self.first_proto)

  def testNoneNotEqual(self):
    self.assertNotEqual(self.first_proto, None)
    self.assertNotEqual(None, self.second_proto)

  def testNotEqualToOtherMessage(self):
    third_proto = unittest_pb2.TestRequired()
    self.assertNotEqual(self.first_proto, third_proto)
    self.assertNotEqual(third_proto, self.second_proto)

  def testAllFieldsFilledEquality(self):
    self.assertEqual(self.first_proto, self.second_proto)

  def testNonRepeatedScalar(self):
    # Nonrepeated scalar field change should cause inequality.
    self.first_proto.optional_int32 += 1
    self.assertNotEqual(self.first_proto, self.second_proto)
    # ...as should clearing a field.
    self.first_proto.ClearField('optional_int32')
    self.assertNotEqual(self.first_proto, self.second_proto)

  def testNonRepeatedComposite(self):
    # Change a nonrepeated composite field.
    self.first_proto.optional_nested_message.bb += 1
    self.assertNotEqual(self.first_proto, self.second_proto)
    self.first_proto.optional_nested_message.bb -= 1
    self.assertEqual(self.first_proto, self.second_proto)
    # Clear a field in the nested message.
    self.first_proto.optional_nested_message.ClearField('bb')
    self.assertNotEqual(self.first_proto, self.second_proto)
    self.first_proto.optional_nested_message.bb = (
        self.second_proto.optional_nested_message.bb)
    self.assertEqual(self.first_proto, self.second_proto)
    # Remove the nested message entirely.
    self.first_proto.ClearField('optional_nested_message')
    self.assertNotEqual(self.first_proto, self.second_proto)

  def testRepeatedScalar(self):
    # Change a repeated scalar field.
    self.first_proto.repeated_int32.append(5)
    self.assertNotEqual(self.first_proto, self.second_proto)
    self.first_proto.ClearField('repeated_int32')
    self.assertNotEqual(self.first_proto, self.second_proto)

  def testRepeatedComposite(self):
    # Change value within a repeated composite field.
    self.first_proto.repeated_nested_message[0].bb += 1
    self.assertNotEqual(self.first_proto, self.second_proto)
    self.first_proto.repeated_nested_message[0].bb -= 1
    self.assertEqual(self.first_proto, self.second_proto)
    # Add a value to a repeated composite field.
    self.first_proto.repeated_nested_message.add()
    self.assertNotEqual(self.first_proto, self.second_proto)
    self.second_proto.repeated_nested_message.add()
    self.assertEqual(self.first_proto, self.second_proto)

  def testNonRepeatedScalarHasBits(self):
    # Ensure that we test "has" bits as well as value for
    # nonrepeated scalar field.
    self.first_proto.ClearField('optional_int32')
    self.second_proto.optional_int32 = 0
    self.assertNotEqual(self.first_proto, self.second_proto)

  def testNonRepeatedCompositeHasBits(self):
    # Ensure that we test "has" bits as well as value for
    # nonrepeated composite field.
    self.first_proto.ClearField('optional_nested_message')
    self.second_proto.optional_nested_message.ClearField('bb')
    self.assertNotEqual(self.first_proto, self.second_proto)
    self.first_proto.optional_nested_message.bb = 0
    self.first_proto.optional_nested_message.ClearField('bb')
    self.assertEqual(self.first_proto, self.second_proto)


class ExtensionEqualityTest(BaseTestCase):

  def testExtensionEquality(self):
    first_proto = unittest_pb2.TestAllExtensions()
    second_proto = unittest_pb2.TestAllExtensions()
    self.assertEqual(first_proto, second_proto)
    test_util.SetAllExtensions(first_proto)
    self.assertNotEqual(first_proto, second_proto)
    test_util.SetAllExtensions(second_proto)
    self.assertEqual(first_proto, second_proto)

    # Ensure that we check value equality.
    first_proto.Extensions[unittest_pb2.optional_int32_extension] += 1
    self.assertNotEqual(first_proto, second_proto)
    first_proto.Extensions[unittest_pb2.optional_int32_extension] -= 1
    self.assertEqual(first_proto, second_proto)

    # Ensure that we also look at "has" bits.
    first_proto.ClearExtension(unittest_pb2.optional_int32_extension)
    second_proto.Extensions[unittest_pb2.optional_int32_extension] = 0
    self.assertNotEqual(first_proto, second_proto)
    first_proto.Extensions[unittest_pb2.optional_int32_extension] = 0
    self.assertEqual(first_proto, second_proto)

    # Ensure that differences in cached values
    # don't matter if "has" bits are both false.
    first_proto = unittest_pb2.TestAllExtensions()
    second_proto = unittest_pb2.TestAllExtensions()
    self.assertEqual(
        0, first_proto.Extensions[unittest_pb2.optional_int32_extension])
    self.assertEqual(first_proto, second_proto)


class MutualRecursionEqualityTest(BaseTestCase):

  def testEqualityWithMutualRecursion(self):
    first_proto = unittest_pb2.TestMutualRecursionA()
    second_proto = unittest_pb2.TestMutualRecursionA()
    self.assertEqual(first_proto, second_proto)
    first_proto.bb.a.bb.optional_int32 = 23
    self.assertNotEqual(first_proto, second_proto)
    second_proto.bb.a.bb.optional_int32 = 23
    self.assertEqual(first_proto, second_proto)


class ByteSizeTest(BaseTestCase):

  def setUp(self):
    self.proto = unittest_pb2.TestAllTypes()
    self.extended_proto = more_extensions_pb2.ExtendedMessage()
    self.packed_proto = unittest_pb2.TestPackedTypes()
    self.packed_extended_proto = unittest_pb2.TestPackedExtensions()

  def Size(self):
    return self.proto.ByteSize()

  def testEmptyMessage(self):
    self.assertEqual(0, self.proto.ByteSize())

  def testSizedOnKwargs(self):
    # Use a separate message to ensure testing right after creation.
    proto = unittest_pb2.TestAllTypes()
    self.assertEqual(0, proto.ByteSize())
    proto_kwargs = unittest_pb2.TestAllTypes(optional_int64 = 1)
    # One byte for the tag, one to encode varint 1.
    self.assertEqual(2, proto_kwargs.ByteSize())

  def testVarints(self):
    def Test(i, expected_varint_size):
      self.proto.Clear()
      self.proto.optional_int64 = i
      # Add one to the varint size for the tag info
      # for tag 1.
      self.assertEqual(expected_varint_size + 1, self.Size())
    Test(0, 1)
    Test(1, 1)
    for i, num_bytes in zip(range(7, 63, 7), range(1, 10000)):
      Test((1 << i) - 1, num_bytes)
    Test(-1, 10)
    Test(-2, 10)
    Test(-(1 << 63), 10)

  def testStrings(self):
    self.proto.optional_string = ''
    # Need one byte for tag info (tag #14), and one byte for length.
    self.assertEqual(2, self.Size())

    self.proto.optional_string = 'abc'
    # Need one byte for tag info (tag #14), and one byte for length.
    self.assertEqual(2 + len(self.proto.optional_string), self.Size())

    self.proto.optional_string = 'x' * 128
    # Need one byte for tag info (tag #14), and TWO bytes for length.
    self.assertEqual(3 + len(self.proto.optional_string), self.Size())

  def testOtherNumerics(self):
    self.proto.optional_fixed32 = 1234
    # One byte for tag and 4 bytes for fixed32.
    self.assertEqual(5, self.Size())
    self.proto = unittest_pb2.TestAllTypes()

    self.proto.optional_fixed64 = 1234
    # One byte for tag and 8 bytes for fixed64.
    self.assertEqual(9, self.Size())
    self.proto = unittest_pb2.TestAllTypes()

    self.proto.optional_float = 1.234
    # One byte for tag and 4 bytes for float.
    self.assertEqual(5, self.Size())
    self.proto = unittest_pb2.TestAllTypes()

    self.proto.optional_double = 1.234
    # One byte for tag and 8 bytes for float.
    self.assertEqual(9, self.Size())
    self.proto = unittest_pb2.TestAllTypes()

    self.proto.optional_sint32 = 64
    # One byte for tag and 2 bytes for zig-zag-encoded 64.
    self.assertEqual(3, self.Size())
    self.proto = unittest_pb2.TestAllTypes()

  def testComposites(self):
    # 3 bytes.
    self.proto.optional_nested_message.bb = (1 << 14)
    # Plus one byte for bb tag.
    # Plus 1 byte for optional_nested_message serialized size.
    # Plus two bytes for optional_nested_message tag.
    self.assertEqual(3 + 1 + 1 + 2, self.Size())

  def testGroups(self):
    # 4 bytes.
    self.proto.optionalgroup.a = (1 << 21)
    # Plus two bytes for |a| tag.
    # Plus 2 * two bytes for START_GROUP and END_GROUP tags.
    self.assertEqual(4 + 2 + 2*2, self.Size())

  def testRepeatedScalars(self):
    self.proto.repeated_int32.append(10)  # 1 byte.
    self.proto.repeated_int32.append(128)  # 2 bytes.
    # Also need 2 bytes for each entry for tag.
    self.assertEqual(1 + 2 + 2*2, self.Size())

  def testRepeatedScalarsExtend(self):
    self.proto.repeated_int32.extend([10, 128])  # 3 bytes.
    # Also need 2 bytes for each entry for tag.
    self.assertEqual(1 + 2 + 2*2, self.Size())

  def testRepeatedScalarsRemove(self):
    self.proto.repeated_int32.append(10)  # 1 byte.
    self.proto.repeated_int32.append(128)  # 2 bytes.
    # Also need 2 bytes for each entry for tag.
    self.assertEqual(1 + 2 + 2*2, self.Size())
    self.proto.repeated_int32.remove(128)
    self.assertEqual(1 + 2, self.Size())

  def testRepeatedComposites(self):
    # Empty message.  2 bytes tag plus 1 byte length.
    foreign_message_0 = self.proto.repeated_nested_message.add()
    # 2 bytes tag plus 1 byte length plus 1 byte bb tag 1 byte int.
    foreign_message_1 = self.proto.repeated_nested_message.add()
    foreign_message_1.bb = 7
    self.assertEqual(2 + 1 + 2 + 1 + 1 + 1, self.Size())

  def testRepeatedCompositesDelete(self):
    # Empty message.  2 bytes tag plus 1 byte length.
    foreign_message_0 = self.proto.repeated_nested_message.add()
    # 2 bytes tag plus 1 byte length plus 1 byte bb tag 1 byte int.
    foreign_message_1 = self.proto.repeated_nested_message.add()
    foreign_message_1.bb = 9
    self.assertEqual(2 + 1 + 2 + 1 + 1 + 1, self.Size())
    repeated_nested_message = copy.deepcopy(
        self.proto.repeated_nested_message)

    # 2 bytes tag plus 1 byte length plus 1 byte bb tag 1 byte int.
    del self.proto.repeated_nested_message[0]
    self.assertEqual(2 + 1 + 1 + 1, self.Size())

    # Now add a new message.
    foreign_message_2 = self.proto.repeated_nested_message.add()
    foreign_message_2.bb = 12

    # 2 bytes tag plus 1 byte length plus 1 byte bb tag 1 byte int.
    # 2 bytes tag plus 1 byte length plus 1 byte bb tag 1 byte int.
    self.assertEqual(2 + 1 + 1 + 1 + 2 + 1 + 1 + 1, self.Size())

    # 2 bytes tag plus 1 byte length plus 1 byte bb tag 1 byte int.
    del self.proto.repeated_nested_message[1]
    self.assertEqual(2 + 1 + 1 + 1, self.Size())

    del self.proto.repeated_nested_message[0]
    self.assertEqual(0, self.Size())

    self.assertEqual(2, len(repeated_nested_message))
    del repeated_nested_message[0:1]
    # TODO(jieluo): Fix cpp extension bug when delete repeated message.
    if api_implementation.Type() == 'python':
      self.assertEqual(1, len(repeated_nested_message))
    del repeated_nested_message[-1]
    # TODO(jieluo): Fix cpp extension bug when delete repeated message.
    if api_implementation.Type() == 'python':
      self.assertEqual(0, len(repeated_nested_message))

  def testRepeatedGroups(self):
    # 2-byte START_GROUP plus 2-byte END_GROUP.
    group_0 = self.proto.repeatedgroup.add()
    # 2-byte START_GROUP plus 2-byte |a| tag + 1-byte |a|
    # plus 2-byte END_GROUP.
    group_1 = self.proto.repeatedgroup.add()
    group_1.a =  7
    self.assertEqual(2 + 2 + 2 + 2 + 1 + 2, self.Size())

  def testExtensions(self):
    proto = unittest_pb2.TestAllExtensions()
    self.assertEqual(0, proto.ByteSize())
    extension = unittest_pb2.optional_int32_extension  # Field #1, 1 byte.
    proto.Extensions[extension] = 23
    # 1 byte for tag, 1 byte for value.
    self.assertEqual(2, proto.ByteSize())
    field = unittest_pb2.TestAllTypes.DESCRIPTOR.fields_by_name[
        'optional_int32']
    with self.assertRaises(KeyError):
      proto.Extensions[field] = 23

  def testCacheInvalidationForNonrepeatedScalar(self):
    # Test non-extension.
    self.proto.optional_int32 = 1
    self.assertEqual(2, self.proto.ByteSize())
    self.proto.optional_int32 = 128
    self.assertEqual(3, self.proto.ByteSize())
    self.proto.ClearField('optional_int32')
    self.assertEqual(0, self.proto.ByteSize())

    # Test within extension.
    extension = more_extensions_pb2.optional_int_extension
    self.extended_proto.Extensions[extension] = 1
    self.assertEqual(2, self.extended_proto.ByteSize())
    self.extended_proto.Extensions[extension] = 128
    self.assertEqual(3, self.extended_proto.ByteSize())
    self.extended_proto.ClearExtension(extension)
    self.assertEqual(0, self.extended_proto.ByteSize())

  def testCacheInvalidationForRepeatedScalar(self):
    # Test non-extension.
    self.proto.repeated_int32.append(1)
    self.assertEqual(3, self.proto.ByteSize())
    self.proto.repeated_int32.append(1)
    self.assertEqual(6, self.proto.ByteSize())
    self.proto.repeated_int32[1] = 128
    self.assertEqual(7, self.proto.ByteSize())
    self.proto.ClearField('repeated_int32')
    self.assertEqual(0, self.proto.ByteSize())

    # Test within extension.
    extension = more_extensions_pb2.repeated_int_extension
    repeated = self.extended_proto.Extensions[extension]
    repeated.append(1)
    self.assertEqual(2, self.extended_proto.ByteSize())
    repeated.append(1)
    self.assertEqual(4, self.extended_proto.ByteSize())
    repeated[1] = 128
    self.assertEqual(5, self.extended_proto.ByteSize())
    self.extended_proto.ClearExtension(extension)
    self.assertEqual(0, self.extended_proto.ByteSize())

  def testCacheInvalidationForNonrepeatedMessage(self):
    # Test non-extension.
    self.proto.optional_foreign_message.c = 1
    self.assertEqual(5, self.proto.ByteSize())
    self.proto.optional_foreign_message.c = 128
    self.assertEqual(6, self.proto.ByteSize())
    self.proto.optional_foreign_message.ClearField('c')
    self.assertEqual(3, self.proto.ByteSize())
    self.proto.ClearField('optional_foreign_message')
    self.assertEqual(0, self.proto.ByteSize())

    if api_implementation.Type() == 'python':
      # This is only possible in pure-Python implementation of the API.
      child = self.proto.optional_foreign_message
      self.proto.ClearField('optional_foreign_message')
      child.c = 128
      self.assertEqual(0, self.proto.ByteSize())

    # Test within extension.
    extension = more_extensions_pb2.optional_message_extension
    child = self.extended_proto.Extensions[extension]
    self.assertEqual(0, self.extended_proto.ByteSize())
    child.foreign_message_int = 1
    self.assertEqual(4, self.extended_proto.ByteSize())
    child.foreign_message_int = 128
    self.assertEqual(5, self.extended_proto.ByteSize())
    self.extended_proto.ClearExtension(extension)
    self.assertEqual(0, self.extended_proto.ByteSize())

  def testCacheInvalidationForRepeatedMessage(self):
    # Test non-extension.
    child0 = self.proto.repeated_foreign_message.add()
    self.assertEqual(3, self.proto.ByteSize())
    self.proto.repeated_foreign_message.add()
    self.assertEqual(6, self.proto.ByteSize())
    child0.c = 1
    self.assertEqual(8, self.proto.ByteSize())
    self.proto.ClearField('repeated_foreign_message')
    self.assertEqual(0, self.proto.ByteSize())

    # Test within extension.
    extension = more_extensions_pb2.repeated_message_extension
    child_list = self.extended_proto.Extensions[extension]
    child0 = child_list.add()
    self.assertEqual(2, self.extended_proto.ByteSize())
    child_list.add()
    self.assertEqual(4, self.extended_proto.ByteSize())
    child0.foreign_message_int = 1
    self.assertEqual(6, self.extended_proto.ByteSize())
    child0.ClearField('foreign_message_int')
    self.assertEqual(4, self.extended_proto.ByteSize())
    self.extended_proto.ClearExtension(extension)
    self.assertEqual(0, self.extended_proto.ByteSize())

  def testPackedRepeatedScalars(self):
    self.assertEqual(0, self.packed_proto.ByteSize())

    self.packed_proto.packed_int32.append(10)   # 1 byte.
    self.packed_proto.packed_int32.append(128)  # 2 bytes.
    # The tag is 2 bytes (the field number is 90), and the varint
    # storing the length is 1 byte.
    int_size = 1 + 2 + 3
    self.assertEqual(int_size, self.packed_proto.ByteSize())

    self.packed_proto.packed_double.append(4.2)   # 8 bytes
    self.packed_proto.packed_double.append(3.25)  # 8 bytes
    # 2 more tag bytes, 1 more length byte.
    double_size = 8 + 8 + 3
    self.assertEqual(int_size+double_size, self.packed_proto.ByteSize())

    self.packed_proto.ClearField('packed_int32')
    self.assertEqual(double_size, self.packed_proto.ByteSize())

  def testPackedExtensions(self):
    self.assertEqual(0, self.packed_extended_proto.ByteSize())
    extension = self.packed_extended_proto.Extensions[
        unittest_pb2.packed_fixed32_extension]
    extension.extend([1, 2, 3, 4])   # 16 bytes
    # Tag is 3 bytes.
    self.assertEqual(19, self.packed_extended_proto.ByteSize())


# Issues to be sure to cover include:
#   * Handling of unrecognized tags ("uninterpreted_bytes").
#   * Handling of MessageSets.
#   * Consistent ordering of tags in the wire format,
#     including ordering between extensions and non-extension
#     fields.
#   * Consistent serialization of negative numbers, especially
#     negative int32s.
#   * Handling of empty submessages (with and without "has"
#     bits set).

class SerializationTest(BaseTestCase):

  def testSerializeEmtpyMessage(self):
    first_proto = unittest_pb2.TestAllTypes()
    second_proto = unittest_pb2.TestAllTypes()
    serialized = first_proto.SerializeToString()
    self.assertEqual(first_proto.ByteSize(), len(serialized))
    self.assertEqual(
        len(serialized),
        second_proto.MergeFromString(serialized))
    self.assertEqual(first_proto, second_proto)

  def testSerializeAllFields(self):
    first_proto = unittest_pb2.TestAllTypes()
    second_proto = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(first_proto)
    serialized = first_proto.SerializeToString()
    self.assertEqual(first_proto.ByteSize(), len(serialized))
    self.assertEqual(
        len(serialized),
        second_proto.MergeFromString(serialized))
    self.assertEqual(first_proto, second_proto)

  def testSerializeAllExtensions(self):
    first_proto = unittest_pb2.TestAllExtensions()
    second_proto = unittest_pb2.TestAllExtensions()
    test_util.SetAllExtensions(first_proto)
    serialized = first_proto.SerializeToString()
    self.assertEqual(
        len(serialized),
        second_proto.MergeFromString(serialized))
    self.assertEqual(first_proto, second_proto)

  def testSerializeWithOptionalGroup(self):
    first_proto = unittest_pb2.TestAllTypes()
    second_proto = unittest_pb2.TestAllTypes()
    first_proto.optionalgroup.a = 242
    serialized = first_proto.SerializeToString()
    self.assertEqual(
        len(serialized),
        second_proto.MergeFromString(serialized))
    self.assertEqual(first_proto, second_proto)

  def testSerializeNegativeValues(self):
    first_proto = unittest_pb2.TestAllTypes()

    first_proto.optional_int32 = -1
    first_proto.optional_int64 = -(2 << 40)
    first_proto.optional_sint32 = -3
    first_proto.optional_sint64 = -(4 << 40)
    first_proto.optional_sfixed32 = -5
    first_proto.optional_sfixed64 = -(6 << 40)

    second_proto = unittest_pb2.TestAllTypes.FromString(
        first_proto.SerializeToString())

    self.assertEqual(first_proto, second_proto)

  def testParseTruncated(self):
    # This test is only applicable for the Python implementation of the API.
    if api_implementation.Type() != 'python':
      return

    first_proto = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(first_proto)
    serialized = first_proto.SerializeToString()

    for truncation_point in range(len(serialized) + 1):
      try:
        second_proto = unittest_pb2.TestAllTypes()
        unknown_fields = unittest_pb2.TestEmptyMessage()
        pos = second_proto._InternalParse(serialized, 0, truncation_point)
        # If we didn't raise an error then we read exactly the amount expected.
        self.assertEqual(truncation_point, pos)

        # Parsing to unknown fields should not throw if parsing to known fields
        # did not.
        try:
          pos2 = unknown_fields._InternalParse(serialized, 0, truncation_point)
          self.assertEqual(truncation_point, pos2)
        except message.DecodeError:
          self.fail('Parsing unknown fields failed when parsing known fields '
                    'did not.')
      except message.DecodeError:
        # Parsing unknown fields should also fail.
        self.assertRaises(message.DecodeError, unknown_fields._InternalParse,
                          serialized, 0, truncation_point)

  def testCanonicalSerializationOrder(self):
    proto = more_messages_pb2.OutOfOrderFields()
    # These are also their tag numbers.  Even though we're setting these in
    # reverse-tag order AND they're listed in reverse tag-order in the .proto
    # file, they should nonetheless be serialized in tag order.
    proto.optional_sint32 = 5
    proto.Extensions[more_messages_pb2.optional_uint64] = 4
    proto.optional_uint32 = 3
    proto.Extensions[more_messages_pb2.optional_int64] = 2
    proto.optional_int32 = 1
    serialized = proto.SerializeToString()
    self.assertEqual(proto.ByteSize(), len(serialized))
    d = _MiniDecoder(serialized)
    ReadTag = d.ReadFieldNumberAndWireType
    self.assertEqual((1, wire_format.WIRETYPE_VARINT), ReadTag())
    self.assertEqual(1, d.ReadInt32())
    self.assertEqual((2, wire_format.WIRETYPE_VARINT), ReadTag())
    self.assertEqual(2, d.ReadInt64())
    self.assertEqual((3, wire_format.WIRETYPE_VARINT), ReadTag())
    self.assertEqual(3, d.ReadUInt32())
    self.assertEqual((4, wire_format.WIRETYPE_VARINT), ReadTag())
    self.assertEqual(4, d.ReadUInt64())
    self.assertEqual((5, wire_format.WIRETYPE_VARINT), ReadTag())
    self.assertEqual(5, d.ReadSInt32())

  def testCanonicalSerializationOrderSameAsCpp(self):
    # Copy of the same test we use for C++.
    proto = unittest_pb2.TestFieldOrderings()
    test_util.SetAllFieldsAndExtensions(proto)
    serialized = proto.SerializeToString()
    test_util.ExpectAllFieldsAndExtensionsInOrder(serialized)

  def testMergeFromStringWhenFieldsAlreadySet(self):
    first_proto = unittest_pb2.TestAllTypes()
    first_proto.repeated_string.append('foobar')
    first_proto.optional_int32 = 23
    first_proto.optional_nested_message.bb = 42
    serialized = first_proto.SerializeToString()

    second_proto = unittest_pb2.TestAllTypes()
    second_proto.repeated_string.append('baz')
    second_proto.optional_int32 = 100
    second_proto.optional_nested_message.bb = 999

    bytes_parsed = second_proto.MergeFromString(serialized)
    self.assertEqual(len(serialized), bytes_parsed)

    # Ensure that we append to repeated fields.
    self.assertEqual(['baz', 'foobar'], list(second_proto.repeated_string))
    # Ensure that we overwrite nonrepeatd scalars.
    self.assertEqual(23, second_proto.optional_int32)
    # Ensure that we recursively call MergeFromString() on
    # submessages.
    self.assertEqual(42, second_proto.optional_nested_message.bb)

  def testMessageSetWireFormat(self):
    proto = message_set_extensions_pb2.TestMessageSet()
    extension_message1 = message_set_extensions_pb2.TestMessageSetExtension1
    extension_message2 = message_set_extensions_pb2.TestMessageSetExtension2
    extension1 = extension_message1.message_set_extension
    extension2 = extension_message2.message_set_extension
    extension3 = message_set_extensions_pb2.message_set_extension3
    proto.Extensions[extension1].i = 123
    proto.Extensions[extension2].str = 'foo'
    proto.Extensions[extension3].text = 'bar'

    # Serialize using the MessageSet wire format (this is specified in the
    # .proto file).
    serialized = proto.SerializeToString()

    raw = unittest_mset_pb2.RawMessageSet()
    self.assertEqual(False,
                     raw.DESCRIPTOR.GetOptions().message_set_wire_format)
    self.assertEqual(
        len(serialized),
        raw.MergeFromString(serialized))
    self.assertEqual(3, len(raw.item))

    message1 = message_set_extensions_pb2.TestMessageSetExtension1()
    self.assertEqual(
        len(raw.item[0].message),
        message1.MergeFromString(raw.item[0].message))
    self.assertEqual(123, message1.i)

    message2 = message_set_extensions_pb2.TestMessageSetExtension2()
    self.assertEqual(
        len(raw.item[1].message),
        message2.MergeFromString(raw.item[1].message))
    self.assertEqual('foo', message2.str)

    message3 = message_set_extensions_pb2.TestMessageSetExtension3()
    self.assertEqual(
        len(raw.item[2].message),
        message3.MergeFromString(raw.item[2].message))
    self.assertEqual('bar', message3.text)

    # Deserialize using the MessageSet wire format.
    proto2 = message_set_extensions_pb2.TestMessageSet()
    self.assertEqual(
        len(serialized),
        proto2.MergeFromString(serialized))
    self.assertEqual(123, proto2.Extensions[extension1].i)
    self.assertEqual('foo', proto2.Extensions[extension2].str)
    self.assertEqual('bar', proto2.Extensions[extension3].text)

    # Check byte size.
    self.assertEqual(proto2.ByteSize(), len(serialized))
    self.assertEqual(proto.ByteSize(), len(serialized))

  def testMessageSetWireFormatUnknownExtension(self):
    # Create a message using the message set wire format with an unknown
    # message.
    raw = unittest_mset_pb2.RawMessageSet()

    # Add an item.
    item = raw.item.add()
    item.type_id = 98418603
    extension_message1 = message_set_extensions_pb2.TestMessageSetExtension1
    message1 = message_set_extensions_pb2.TestMessageSetExtension1()
    message1.i = 12345
    item.message = message1.SerializeToString()

    # Add a second, unknown extension.
    item = raw.item.add()
    item.type_id = 98418604
    extension_message1 = message_set_extensions_pb2.TestMessageSetExtension1
    message1 = message_set_extensions_pb2.TestMessageSetExtension1()
    message1.i = 12346
    item.message = message1.SerializeToString()

    # Add another unknown extension.
    item = raw.item.add()
    item.type_id = 98418605
    message1 = message_set_extensions_pb2.TestMessageSetExtension2()
    message1.str = 'foo'
    item.message = message1.SerializeToString()

    serialized = raw.SerializeToString()

    # Parse message using the message set wire format.
    proto = message_set_extensions_pb2.TestMessageSet()
    self.assertEqual(
        len(serialized),
        proto.MergeFromString(serialized))

    # Check that the message parsed well.
    extension_message1 = message_set_extensions_pb2.TestMessageSetExtension1
    extension1 = extension_message1.message_set_extension
    self.assertEqual(12345, proto.Extensions[extension1].i)

  def testUnknownFields(self):
    proto = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(proto)

    serialized = proto.SerializeToString()

    # The empty message should be parsable with all of the fields
    # unknown.
    proto2 = unittest_pb2.TestEmptyMessage()

    # Parsing this message should succeed.
    self.assertEqual(
        len(serialized),
        proto2.MergeFromString(serialized))

    # Now test with a int64 field set.
    proto = unittest_pb2.TestAllTypes()
    proto.optional_int64 = 0x0fffffffffffffff
    serialized = proto.SerializeToString()
    # The empty message should be parsable with all of the fields
    # unknown.
    proto2 = unittest_pb2.TestEmptyMessage()
    # Parsing this message should succeed.
    self.assertEqual(
        len(serialized),
        proto2.MergeFromString(serialized))

  def _CheckRaises(self, exc_class, callable_obj, exception):
    """This method checks if the excpetion type and message are as expected."""
    try:
      callable_obj()
    except exc_class as ex:
      # Check if the exception message is the right one.
      self.assertEqual(exception, str(ex))
      return
    else:
      raise self.failureException('%s not raised' % str(exc_class))

  def testSerializeUninitialized(self):
    proto = unittest_pb2.TestRequired()
    self._CheckRaises(
        message.EncodeError,
        proto.SerializeToString,
        'Message protobuf_unittest.TestRequired is missing required fields: '
        'a,b,c')
    # Shouldn't raise exceptions.
    partial = proto.SerializePartialToString()

    proto2 = unittest_pb2.TestRequired()
    self.assertFalse(proto2.HasField('a'))
    # proto2 ParseFromString does not check that required fields are set.
    proto2.ParseFromString(partial)
    self.assertFalse(proto2.HasField('a'))

    proto.a = 1
    self._CheckRaises(
        message.EncodeError,
        proto.SerializeToString,
        'Message protobuf_unittest.TestRequired is missing required fields: b,c')
    # Shouldn't raise exceptions.
    partial = proto.SerializePartialToString()

    proto.b = 2
    self._CheckRaises(
        message.EncodeError,
        proto.SerializeToString,
        'Message protobuf_unittest.TestRequired is missing required fields: c')
    # Shouldn't raise exceptions.
    partial = proto.SerializePartialToString()

    proto.c = 3
    serialized = proto.SerializeToString()
    # Shouldn't raise exceptions.
    partial = proto.SerializePartialToString()

    proto2 = unittest_pb2.TestRequired()
    self.assertEqual(
        len(serialized),
        proto2.MergeFromString(serialized))
    self.assertEqual(1, proto2.a)
    self.assertEqual(2, proto2.b)
    self.assertEqual(3, proto2.c)
    self.assertEqual(
        len(partial),
        proto2.MergeFromString(partial))
    self.assertEqual(1, proto2.a)
    self.assertEqual(2, proto2.b)
    self.assertEqual(3, proto2.c)

  def testSerializeUninitializedSubMessage(self):
    proto = unittest_pb2.TestRequiredForeign()

    # Sub-message doesn't exist yet, so this succeeds.
    proto.SerializeToString()

    proto.optional_message.a = 1
    self._CheckRaises(
        message.EncodeError,
        proto.SerializeToString,
        'Message protobuf_unittest.TestRequiredForeign '
        'is missing required fields: '
        'optional_message.b,optional_message.c')

    proto.optional_message.b = 2
    proto.optional_message.c = 3
    proto.SerializeToString()

    proto.repeated_message.add().a = 1
    proto.repeated_message.add().b = 2
    self._CheckRaises(
        message.EncodeError,
        proto.SerializeToString,
        'Message protobuf_unittest.TestRequiredForeign is missing required fields: '
        'repeated_message[0].b,repeated_message[0].c,'
        'repeated_message[1].a,repeated_message[1].c')

    proto.repeated_message[0].b = 2
    proto.repeated_message[0].c = 3
    proto.repeated_message[1].a = 1
    proto.repeated_message[1].c = 3
    proto.SerializeToString()

  def testSerializeAllPackedFields(self):
    first_proto = unittest_pb2.TestPackedTypes()
    second_proto = unittest_pb2.TestPackedTypes()
    test_util.SetAllPackedFields(first_proto)
    serialized = first_proto.SerializeToString()
    self.assertEqual(first_proto.ByteSize(), len(serialized))
    bytes_read = second_proto.MergeFromString(serialized)
    self.assertEqual(second_proto.ByteSize(), bytes_read)
    self.assertEqual(first_proto, second_proto)

  def testSerializeAllPackedExtensions(self):
    first_proto = unittest_pb2.TestPackedExtensions()
    second_proto = unittest_pb2.TestPackedExtensions()
    test_util.SetAllPackedExtensions(first_proto)
    serialized = first_proto.SerializeToString()
    bytes_read = second_proto.MergeFromString(serialized)
    self.assertEqual(second_proto.ByteSize(), bytes_read)
    self.assertEqual(first_proto, second_proto)

  def testMergePackedFromStringWhenSomeFieldsAlreadySet(self):
    first_proto = unittest_pb2.TestPackedTypes()
    first_proto.packed_int32.extend([1, 2])
    first_proto.packed_double.append(3.0)
    serialized = first_proto.SerializeToString()

    second_proto = unittest_pb2.TestPackedTypes()
    second_proto.packed_int32.append(3)
    second_proto.packed_double.extend([1.0, 2.0])
    second_proto.packed_sint32.append(4)

    self.assertEqual(
        len(serialized),
        second_proto.MergeFromString(serialized))
    self.assertEqual([3, 1, 2], second_proto.packed_int32)
    self.assertEqual([1.0, 2.0, 3.0], second_proto.packed_double)
    self.assertEqual([4], second_proto.packed_sint32)

  def testPackedFieldsWireFormat(self):
    proto = unittest_pb2.TestPackedTypes()
    proto.packed_int32.extend([1, 2, 150, 3])  # 1 + 1 + 2 + 1 bytes
    proto.packed_double.extend([1.0, 1000.0])  # 8 + 8 bytes
    proto.packed_float.append(2.0)             # 4 bytes, will be before double
    serialized = proto.SerializeToString()
    self.assertEqual(proto.ByteSize(), len(serialized))
    d = _MiniDecoder(serialized)
    ReadTag = d.ReadFieldNumberAndWireType
    self.assertEqual((90, wire_format.WIRETYPE_LENGTH_DELIMITED), ReadTag())
    self.assertEqual(1+1+1+2, d.ReadInt32())
    self.assertEqual(1, d.ReadInt32())
    self.assertEqual(2, d.ReadInt32())
    self.assertEqual(150, d.ReadInt32())
    self.assertEqual(3, d.ReadInt32())
    self.assertEqual((100, wire_format.WIRETYPE_LENGTH_DELIMITED), ReadTag())
    self.assertEqual(4, d.ReadInt32())
    self.assertEqual(2.0, d.ReadFloat())
    self.assertEqual((101, wire_format.WIRETYPE_LENGTH_DELIMITED), ReadTag())
    self.assertEqual(8+8, d.ReadInt32())
    self.assertEqual(1.0, d.ReadDouble())
    self.assertEqual(1000.0, d.ReadDouble())
    self.assertTrue(d.EndOfStream())

  def testParsePackedFromUnpacked(self):
    unpacked = unittest_pb2.TestUnpackedTypes()
    test_util.SetAllUnpackedFields(unpacked)
    packed = unittest_pb2.TestPackedTypes()
    serialized = unpacked.SerializeToString()
    self.assertEqual(
        len(serialized),
        packed.MergeFromString(serialized))
    expected = unittest_pb2.TestPackedTypes()
    test_util.SetAllPackedFields(expected)
    self.assertEqual(expected, packed)

  def testParseUnpackedFromPacked(self):
    packed = unittest_pb2.TestPackedTypes()
    test_util.SetAllPackedFields(packed)
    unpacked = unittest_pb2.TestUnpackedTypes()
    serialized = packed.SerializeToString()
    self.assertEqual(
        len(serialized),
        unpacked.MergeFromString(serialized))
    expected = unittest_pb2.TestUnpackedTypes()
    test_util.SetAllUnpackedFields(expected)
    self.assertEqual(expected, unpacked)

  def testFieldNumbers(self):
    proto = unittest_pb2.TestAllTypes()
    self.assertEqual(unittest_pb2.TestAllTypes.NestedMessage.BB_FIELD_NUMBER, 1)
    self.assertEqual(unittest_pb2.TestAllTypes.OPTIONAL_INT32_FIELD_NUMBER, 1)
    self.assertEqual(unittest_pb2.TestAllTypes.OPTIONALGROUP_FIELD_NUMBER, 16)
    self.assertEqual(
      unittest_pb2.TestAllTypes.OPTIONAL_NESTED_MESSAGE_FIELD_NUMBER, 18)
    self.assertEqual(
      unittest_pb2.TestAllTypes.OPTIONAL_NESTED_ENUM_FIELD_NUMBER, 21)
    self.assertEqual(unittest_pb2.TestAllTypes.REPEATED_INT32_FIELD_NUMBER, 31)
    self.assertEqual(unittest_pb2.TestAllTypes.REPEATEDGROUP_FIELD_NUMBER, 46)
    self.assertEqual(
      unittest_pb2.TestAllTypes.REPEATED_NESTED_MESSAGE_FIELD_NUMBER, 48)
    self.assertEqual(
      unittest_pb2.TestAllTypes.REPEATED_NESTED_ENUM_FIELD_NUMBER, 51)

  def testExtensionFieldNumbers(self):
    self.assertEqual(unittest_pb2.TestRequired.single.number, 1000)
    self.assertEqual(unittest_pb2.TestRequired.SINGLE_FIELD_NUMBER, 1000)
    self.assertEqual(unittest_pb2.TestRequired.multi.number, 1001)
    self.assertEqual(unittest_pb2.TestRequired.MULTI_FIELD_NUMBER, 1001)
    self.assertEqual(unittest_pb2.optional_int32_extension.number, 1)
    self.assertEqual(unittest_pb2.OPTIONAL_INT32_EXTENSION_FIELD_NUMBER, 1)
    self.assertEqual(unittest_pb2.optionalgroup_extension.number, 16)
    self.assertEqual(unittest_pb2.OPTIONALGROUP_EXTENSION_FIELD_NUMBER, 16)
    self.assertEqual(unittest_pb2.optional_nested_message_extension.number, 18)
    self.assertEqual(
      unittest_pb2.OPTIONAL_NESTED_MESSAGE_EXTENSION_FIELD_NUMBER, 18)
    self.assertEqual(unittest_pb2.optional_nested_enum_extension.number, 21)
    self.assertEqual(unittest_pb2.OPTIONAL_NESTED_ENUM_EXTENSION_FIELD_NUMBER,
      21)
    self.assertEqual(unittest_pb2.repeated_int32_extension.number, 31)
    self.assertEqual(unittest_pb2.REPEATED_INT32_EXTENSION_FIELD_NUMBER, 31)
    self.assertEqual(unittest_pb2.repeatedgroup_extension.number, 46)
    self.assertEqual(unittest_pb2.REPEATEDGROUP_EXTENSION_FIELD_NUMBER, 46)
    self.assertEqual(unittest_pb2.repeated_nested_message_extension.number, 48)
    self.assertEqual(
      unittest_pb2.REPEATED_NESTED_MESSAGE_EXTENSION_FIELD_NUMBER, 48)
    self.assertEqual(unittest_pb2.repeated_nested_enum_extension.number, 51)
    self.assertEqual(unittest_pb2.REPEATED_NESTED_ENUM_EXTENSION_FIELD_NUMBER,
      51)

  def testInitKwargs(self):
    proto = unittest_pb2.TestAllTypes(
        optional_int32=1,
        optional_string='foo',
        optional_bool=True,
        optional_bytes=b'bar',
        optional_nested_message=unittest_pb2.TestAllTypes.NestedMessage(bb=1),
        optional_foreign_message=unittest_pb2.ForeignMessage(c=1),
        optional_nested_enum=unittest_pb2.TestAllTypes.FOO,
        optional_foreign_enum=unittest_pb2.FOREIGN_FOO,
        repeated_int32=[1, 2, 3])
    self.assertTrue(proto.IsInitialized())
    self.assertTrue(proto.HasField('optional_int32'))
    self.assertTrue(proto.HasField('optional_string'))
    self.assertTrue(proto.HasField('optional_bool'))
    self.assertTrue(proto.HasField('optional_bytes'))
    self.assertTrue(proto.HasField('optional_nested_message'))
    self.assertTrue(proto.HasField('optional_foreign_message'))
    self.assertTrue(proto.HasField('optional_nested_enum'))
    self.assertTrue(proto.HasField('optional_foreign_enum'))
    self.assertEqual(1, proto.optional_int32)
    self.assertEqual('foo', proto.optional_string)
    self.assertEqual(True, proto.optional_bool)
    self.assertEqual(b'bar', proto.optional_bytes)
    self.assertEqual(1, proto.optional_nested_message.bb)
    self.assertEqual(1, proto.optional_foreign_message.c)
    self.assertEqual(unittest_pb2.TestAllTypes.FOO,
                     proto.optional_nested_enum)
    self.assertEqual(unittest_pb2.FOREIGN_FOO, proto.optional_foreign_enum)
    self.assertEqual([1, 2, 3], proto.repeated_int32)

  def testInitArgsUnknownFieldName(self):
    def InitalizeEmptyMessageWithExtraKeywordArg():
      unused_proto = unittest_pb2.TestEmptyMessage(unknown='unknown')
    self._CheckRaises(
        ValueError,
        InitalizeEmptyMessageWithExtraKeywordArg,
        'Protocol message TestEmptyMessage has no "unknown" field.')

  def testInitRequiredKwargs(self):
    proto = unittest_pb2.TestRequired(a=1, b=1, c=1)
    self.assertTrue(proto.IsInitialized())
    self.assertTrue(proto.HasField('a'))
    self.assertTrue(proto.HasField('b'))
    self.assertTrue(proto.HasField('c'))
    self.assertTrue(not proto.HasField('dummy2'))
    self.assertEqual(1, proto.a)
    self.assertEqual(1, proto.b)
    self.assertEqual(1, proto.c)

  def testInitRequiredForeignKwargs(self):
    proto = unittest_pb2.TestRequiredForeign(
        optional_message=unittest_pb2.TestRequired(a=1, b=1, c=1))
    self.assertTrue(proto.IsInitialized())
    self.assertTrue(proto.HasField('optional_message'))
    self.assertTrue(proto.optional_message.IsInitialized())
    self.assertTrue(proto.optional_message.HasField('a'))
    self.assertTrue(proto.optional_message.HasField('b'))
    self.assertTrue(proto.optional_message.HasField('c'))
    self.assertTrue(not proto.optional_message.HasField('dummy2'))
    self.assertEqual(unittest_pb2.TestRequired(a=1, b=1, c=1),
                     proto.optional_message)
    self.assertEqual(1, proto.optional_message.a)
    self.assertEqual(1, proto.optional_message.b)
    self.assertEqual(1, proto.optional_message.c)

  def testInitRepeatedKwargs(self):
    proto = unittest_pb2.TestAllTypes(repeated_int32=[1, 2, 3])
    self.assertTrue(proto.IsInitialized())
    self.assertEqual(1, proto.repeated_int32[0])
    self.assertEqual(2, proto.repeated_int32[1])
    self.assertEqual(3, proto.repeated_int32[2])


class OptionsTest(BaseTestCase):

  def testMessageOptions(self):
    proto = message_set_extensions_pb2.TestMessageSet()
    self.assertEqual(True,
                     proto.DESCRIPTOR.GetOptions().message_set_wire_format)
    proto = unittest_pb2.TestAllTypes()
    self.assertEqual(False,
                     proto.DESCRIPTOR.GetOptions().message_set_wire_format)

  def testPackedOptions(self):
    proto = unittest_pb2.TestAllTypes()
    proto.optional_int32 = 1
    proto.optional_double = 3.0
    for field_descriptor, _ in proto.ListFields():
      self.assertEqual(False, field_descriptor.GetOptions().packed)

    proto = unittest_pb2.TestPackedTypes()
    proto.packed_int32.append(1)
    proto.packed_double.append(3.0)
    for field_descriptor, _ in proto.ListFields():
      self.assertEqual(True, field_descriptor.GetOptions().packed)
      self.assertEqual(descriptor.FieldDescriptor.LABEL_REPEATED,
                       field_descriptor.label)



class ClassAPITest(BaseTestCase):

  @unittest.skipIf(
      api_implementation.Type() == 'cpp' and api_implementation.Version() == 2,
      'C++ implementation requires a call to MakeDescriptor()')
  def testMakeClassWithNestedDescriptor(self):
    leaf_desc = descriptor.Descriptor('leaf', 'package.parent.child.leaf', '',
                                      containing_type=None, fields=[],
                                      nested_types=[], enum_types=[],
                                      extensions=[])
    child_desc = descriptor.Descriptor('child', 'package.parent.child', '',
                                       containing_type=None, fields=[],
                                       nested_types=[leaf_desc], enum_types=[],
                                       extensions=[])
    sibling_desc = descriptor.Descriptor('sibling', 'package.parent.sibling',
                                         '', containing_type=None, fields=[],
                                         nested_types=[], enum_types=[],
                                         extensions=[])
    parent_desc = descriptor.Descriptor('parent', 'package.parent', '',
                                        containing_type=None, fields=[],
                                        nested_types=[child_desc, sibling_desc],
                                        enum_types=[], extensions=[])
    message_class = reflection.MakeClass(parent_desc)
    self.assertIn('child', message_class.__dict__)
    self.assertIn('sibling', message_class.__dict__)
    self.assertIn('leaf', message_class.child.__dict__)

  def _GetSerializedFileDescriptor(self, name):
    """Get a serialized representation of a test FileDescriptorProto.

    Args:
      name: All calls to this must use a unique message name, to avoid
          collisions in the cpp descriptor pool.
    Returns:
      A string containing the serialized form of a test FileDescriptorProto.
    """
    file_descriptor_str = (
        'message_type {'
        '  name: "' + name + '"'
        '  field {'
        '    name: "flat"'
        '    number: 1'
        '    label: LABEL_REPEATED'
        '    type: TYPE_UINT32'
        '  }'
        '  field {'
        '    name: "bar"'
        '    number: 2'
        '    label: LABEL_OPTIONAL'
        '    type: TYPE_MESSAGE'
        '    type_name: "Bar"'
        '  }'
        '  nested_type {'
        '    name: "Bar"'
        '    field {'
        '      name: "baz"'
        '      number: 3'
        '      label: LABEL_OPTIONAL'
        '      type: TYPE_MESSAGE'
        '      type_name: "Baz"'
        '    }'
        '    nested_type {'
        '      name: "Baz"'
        '      enum_type {'
        '        name: "deep_enum"'
        '        value {'
        '          name: "VALUE_A"'
        '          number: 0'
        '        }'
        '      }'
        '      field {'
        '        name: "deep"'
        '        number: 4'
        '        label: LABEL_OPTIONAL'
        '        type: TYPE_UINT32'
        '      }'
        '    }'
        '  }'
        '}')
    file_descriptor = descriptor_pb2.FileDescriptorProto()
    text_format.Merge(file_descriptor_str, file_descriptor)
    return file_descriptor.SerializeToString()

  @testing_refleaks.SkipReferenceLeakChecker('MakeDescriptor is not repeatable')
  # This test can only run once; the second time, it raises errors about
  # conflicting message descriptors.
  def testParsingFlatClassWithExplicitClassDeclaration(self):
    """Test that the generated class can parse a flat message."""
    # TODO(xiaofeng): This test fails with cpp implemetnation in the call
    # of six.with_metaclass(). The other two callsites of with_metaclass
    # in this file are both excluded from cpp test, so it might be expected
    # to fail. Need someone more familiar with the python code to take a
    # look at this.
    if api_implementation.Type() != 'python':
      return
    file_descriptor = descriptor_pb2.FileDescriptorProto()
    file_descriptor.ParseFromString(self._GetSerializedFileDescriptor('A'))
    msg_descriptor = descriptor.MakeDescriptor(
        file_descriptor.message_type[0])

    class MessageClass(six.with_metaclass(reflection.GeneratedProtocolMessageType, message.Message)):
      DESCRIPTOR = msg_descriptor
    msg = MessageClass()
    msg_str = (
        'flat: 0 '
        'flat: 1 '
        'flat: 2 ')
    text_format.Merge(msg_str, msg)
    self.assertEqual(msg.flat, [0, 1, 2])

  @testing_refleaks.SkipReferenceLeakChecker('MakeDescriptor is not repeatable')
  def testParsingFlatClass(self):
    """Test that the generated class can parse a flat message."""
    file_descriptor = descriptor_pb2.FileDescriptorProto()
    file_descriptor.ParseFromString(self._GetSerializedFileDescriptor('B'))
    msg_descriptor = descriptor.MakeDescriptor(
        file_descriptor.message_type[0])
    msg_class = reflection.MakeClass(msg_descriptor)
    msg = msg_class()
    msg_str = (
        'flat: 0 '
        'flat: 1 '
        'flat: 2 ')
    text_format.Merge(msg_str, msg)
    self.assertEqual(msg.flat, [0, 1, 2])

  @testing_refleaks.SkipReferenceLeakChecker('MakeDescriptor is not repeatable')
  def testParsingNestedClass(self):
    """Test that the generated class can parse a nested message."""
    file_descriptor = descriptor_pb2.FileDescriptorProto()
    file_descriptor.ParseFromString(self._GetSerializedFileDescriptor('C'))
    msg_descriptor = descriptor.MakeDescriptor(
        file_descriptor.message_type[0])
    msg_class = reflection.MakeClass(msg_descriptor)
    msg = msg_class()
    msg_str = (
        'bar {'
        '  baz {'
        '    deep: 4'
        '  }'
        '}')
    text_format.Merge(msg_str, msg)
    self.assertEqual(msg.bar.baz.deep, 4)

if __name__ == '__main__':
  unittest.main()
PK�\��h~HsHsprotobuf/internal/encoder.pycnu�[����
���hc@sydZdZddlZddlZddlmZdZeZd�Zd�Z	d�Z
d	�Zd
�Zd�Z
ee	�ZZZee�ZZee	ej�ZZe
d�ZZZe
d
�ZZZe
d�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$e#�Z%e$�Z&d�Z'd�Z(d�Z)d�Z*d�Z+d�Z,e)ej-e&e	�Z.Z/Z0e)ej-e%e�Z1Z2e*ej-e%eej�Z3Z4e+ej5d�Z6e+ej7d�Z8e+ej5d�Z9e+ej7d �Z:e,ej5d!�Z;e,ej7d"�Z<d#�Z=d$�Z>d%�Z?d&�Z@d'�ZAd(�ZBd)�ZCdS(*s�Code for encoding protocol message primitives.

Contains the logic for encoding every logical protocol field type
into one of the 5 physical wire types.

This code is designed to push the Python interpreter's performance to the
limits.

The basic idea is that at startup time, for every field (i.e. every
FieldDescriptor) we construct two functions:  a "sizer" and an "encoder".  The
sizer takes a value of this field's type and computes its byte size.  The
encoder takes a writer function and a value.  It encodes the value into byte
strings and invokes the writer function to write those strings.  Typically the
writer function is the write() method of a BytesIO.

We try to do as much work as possible when constructing the writer and the
sizer rather than when calling them.  In particular:
* We copy any needed global functions to local variables, so that we do not need
  to do costly global table lookups at runtime.
* Similarly, we try to do any attribute lookups at startup time if possible.
* Every field's tag is encoded to bytes at startup, since it can't change at
  runtime.
* Whatever component of the field size we can compute at startup, we do.
* We *avoid* sharing code if doing so would make the code slower and not sharing
  does not burden us too much.  For example, encoders for repeated fields do
  not just call the encoders for singular fields in a loop because this would
  add an extra function call overhead for every loop iteration; instead, we
  manually inline the single-value encoder into the loop.
* If a Python function lacks a return statement, Python actually generates
  instructions to pop the result of the last statement off the stack, push
  None onto the stack, and then return that.  If we really don't care what
  value is returned, then we can save two instructions by returning the
  result of the last statement.  It looks funny but it helps.
* We assume that type and bounds checking has happened at a higher level.
s kenton@google.com (Kenton Varda)i����N(twire_formatg�cCs�|dkrdS|dkr dS|dkr0dS|dkr@dS|d	krPd
S|dkr`dS|d
krpdS|dkr�dS|dkr�dSdS(s#Compute the size of a varint value.iii�?ii��ii���il��il���il���il����il����i	i
((tvalue((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_VarintSizeRs&cCs�|dkrdS|dkr dS|dkr0dS|dkr@dS|d	krPd
S|dkr`dS|d
krpdS|dkr�dS|dkr�dS|dkr�dSdS(s*Compute the size of a signed varint value.ii
iii�?ii��ii���il��il���il���il����il����i	((R((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SignedVarintSize`s*cCsttj|d��S(sQReturns the number of bytes required to serialize a tag with this field
  number.i(RRtPackTag(tfield_number((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_TagSizeoscs�fd�}|S(s�A sizer which uses the function compute_value_size to compute the size of
  each value.  Typically compute_value_size is _VarintSize.csgt|��|r1t����fd�}|S|rM��fd�}|S��fd�}|SdS(Ncs9d}x|D]}|�|�7}q
W|�|��S(Ni((Rtresulttelement(tcompute_value_sizetlocal_VarintSizettag_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytPackedFieldSize�s
cs5�t|�}x|D]}|�|�7}qW|S(N(tlen(RRR(R	R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytRepeatedFieldSize�s
cs��|�S(N((R(R	R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt	FieldSize�s(RR(Rtis_repeatedt	is_packedRRR(R	(R
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
SpecificSizer�s((R	R((R	sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SimpleSizer~scs��fd�}|S(s�Like SimpleSizer, but modify_value is invoked on each value before it is
  passed to compute_value_size.  modify_value is typically ZigZagEncode.cspt|��|r4t�����fd�}|S|rS���fd�}|S���fd�}|SdS(Ncs?d}x$|D]}|��|��7}q
W|�|��S(Ni((RRR(R	R
tmodify_valueR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s
cs;�t|�}x$|D]}|��|��7}qW|S(N(R
(RRR(R	RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s
cs���|��S(N((R(R	RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s(RR(RRRRRR(R	R(R
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s((R	RR((R	RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_ModifiedSizer�scs�fd�}|S(sWLike _SimpleSizer except for a fixed-size field.  The input is the size
  of one value.csut|��|r1t����fd�}|S|rT����fd�}|S����fd�}|SdS(Ncs"t|��}|�|��S(N(R
(RR(R
Rt
value_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�scst|��S(N(R
(R(telement_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�scs�S(N((R(t
field_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s(RR(RRRRRR(R(RRR
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s

((RR((RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_FixedSizer�siiicsat|��t�t�|s%t�|rD���fd�}|S���fd�}|SdS(s#Returns a sizer for a string field.csN�t|�}x7|D]/}�|jd��}|�|�|7}qW|S(Nsutf-8(R
tencode(RRRtl(R
t	local_lenR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s

cs'�|jd��}��|�|S(Nsutf-8(R(RR(R
RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�sN(RRR
tAssertionError(RRRRR((R
RRsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytStringSizer�s
csat|��t�t�|s%t�|rD���fd�}|S���fd�}|SdS(s"Returns a sizer for a bytes field.csE�t|�}x.|D]&}�|�}|�|�|7}qW|S(N(R
(RRRR(R
RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRs

cs�|�}��|�|S(N((RR(R
RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRsN(RRR
R(RRRRR((R
RRsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
BytesSizer�s
csMt|�d�|st�|r6�fd�}|S�fd�}|SdS(s"Returns a sizer for a group field.ics5�t|�}x|D]}||j�7}qW|S(N(R
tByteSize(RRR(R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRs
cs�|j�S(N(R (R(R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRsN(RR(RRRRR((RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
GroupSizers
csUt|��t�|st�|r;��fd�}|S��fd�}|SdS(s$Returns a sizer for a message field.csE�t|�}x.|D]&}|j�}|�|�|7}qW|S(N(R
R (RRRR(R
R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR+s

cs|j�}��|�|S(N(R (RR(R
R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR3sN(RRR(RRRRR((R
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageSizer$s
csJtd�dtd�t|�td��t���fd�}|S(s�Returns a sizer for extensions of MessageSet.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  iiics|j�}��|�|S(N(R (RR(R
tstatic_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRLs(RR(RR((R
R#sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageSetItemSizer=s
!
cs7|j�t|jtt�����fd�}|S(s Returns a sizer for a map field.cs`d}xS|D]K}||}�jd|d|�}|�|�7}�r
|j�q
q
W|S(NitkeyR(t_concrete_classR (t	map_valuettotalR%Rt	entry_msg(tis_message_mapt
message_sizertmessage_type(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR_s

(R,R"tnumbertFalse(tfield_descriptorR*R((R*R+R,sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMapSizerWs	cCs
d�}|S(sBReturn an encoder for a basic varint value (does not include tag).cSs_|d@}|dL}x5|rK|tjd|B��|d@}|dL}qW|tj|��S(Niii�(tsixtint2byte(twriteRtunused_deterministictbits((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeVarintws

	
((R6((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_VarintEncoderts		cCs
d�}|S(sKReturn an encoder for a basic signed varint value (does not include
  tag).cSsx|dkr|d7}n|d@}|dL}x5|rd|tjd|B��|d@}|dL}q0W|tj|��S(Niii@iii�l(R1R2(R3RR4R5((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeSignedVarint�s


	
((R8((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SignedVarintEncoder�s	cCs&g}t|j|t�dj|�S(s�Encode the given integer as a varint and return the bytes.  This is only
  called at startup time so it doesn't need to be fast.t(t
_EncodeVarinttappendtTruetjoin(Rtpieces((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_VarintBytes�scCstjttj||���S(sCEncode the given tag and return the bytes.  Only called at startup.(R1tbinary_typeR@RR(Rt	wire_type((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytTagBytes�scs���fd�}|S(s_Return a constructor for an encoder for fields of a particular type.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      encode_value:  A function which encodes an individual value, e.g.
        _EncodeVarint().
      compute_value_size:  A function which computes the size of an individual
        value, e.g. _VarintSize().
  cs�|r:t|tj��t�����fd�}|S|ret|�����fd�}|St|�����fd�}|SdS(Ncsf|��d}x|D]}|�|�7}qW�|||�x|D]}�|||�qHWdS(Ni((R3Rt
deterministictsizeR(R	tencode_valuetlocal_EncodeVarintt	tag_bytes(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodePackedField�s


cs/x(|D] }|���|||�qWdS(N((R3RRDR(RFRH(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeRepeatedField�s

cs|���|||�S(N((R3RRD(RFRH(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeField�s
(RCRtWIRETYPE_LENGTH_DELIMITEDR;(RRRRIRJRK(R	RFRB(RGRHsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytSpecificEncoder�s((RBRFR	RM((R	RFRBsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SimpleEncoder�scs����fd�}|S(s�Like SimpleEncoder but additionally invokes modify_value on every value
  before passing it to encode_value.  Usually modify_value is ZigZagEncode.cs�|r=t|tj��t������fd�}|S|rkt|������fd�}|St|������fd�}|SdS(Ncsr|��d}x$|D]}|��|��7}qW�|||�x$|D]}�|�|�|�qNWdS(Ni((R3RRDRER(R	RFRGRRH(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s


cs5x.|D]&}|���|�|�|�qWdS(N((R3RRDR(RFRRH(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s

cs |���|�|�|�S(N((R3RRD(RFRRH(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRK�s
(RCRRLR;(RRRRIRJRK(R	RFRRB(RGRHsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRM�s((RBRFR	RRM((R	RFRRBsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_ModifiedEncoder�scs(tj������fd�}|S(s�Return a constructor for an encoder for a fixed-width field.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      format:  The format string to pass to struct.pack().
  cs�tj�|rFt|tj��t������fd�}|S|rtt|������fd�}|St|������fd�}|SdS(NcsL|���|t|��|�x!|D]}|��|��q+WdS(N(R
(R3RRDR(tformatRGtlocal_struct_packRHR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRIs

cs2x+|D]#}|��|��|��qWdS(N((R3RR4R(RPRQRH(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJs

cs|��|��|��S(N((R3RR4(RPRQRH(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRKs
(tstructtpackRCRRLR;(RRRRIRJRK(RPRRB(RGRQRHsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRMs	(RRtcalcsize(RBRPRM((RPRRBsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_StructPackEncoder�scsktj����dkr'd��n(�dkr?d��ntd�������fd�}|S(sqReturn a constructor for an encoder for float fields.

  This is like StructPackEncoder, but catches errors that may be due to
  passing non-finite floating-point values to struct.pack, and makes a
  second attempt to encode those values.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      format:  The format string to pass to struct.pack().
  icSsR|tkr|d�n5|tkr2|d�n||krK|d�n�dS(Ns�s��s�(t_POS_INFt_NEG_INF(R3R((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeNonFiniteOrRaise+s


icSsR|tkr|d�n5|tkr2|d�n||krK|d�n�dS(Ns�s�s�(RVRW(R3R((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRX6s


sGCan't encode floating-point values that are %d bytes long (only 4 or 8)cs�tj�|rIt|tj��t�������fd�}|S|rzt|�������fd�}|St|�������fd�}|SdS(Ncsq|���|t|��|�xF|D]>}y|��|��Wq+tk
rh�||�q+Xq+WdS(N(R
tSystemError(R3RRDR(RXRPRGRQRHR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRIHs


csWxP|D]H}|��y|��|��Wqtk
rN�||�qXqWdS(N(RY(R3RR4R(RXRPRQRH(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJUs


csF|��y|��|��Wntk
rA�||�nXdS(N(RY(R3RR4(RXRPRQRH(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRK_s


(RRRSRCRRLR;(RRRRIRJRK(RXRPRRB(RGRQRHsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRMCs	
(RRRTt
ValueError(RBRPRM((RXRPRRBsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_FloatingPointEncoders


$s<Is<Qs<is<qs<fs<dcs�d�d�|rFt|tj��t�����fd�}|S|rwt|tj�����fd�}|St|tj�����fd�}|SdS(s'Returns an encoder for a boolean field.sscsR|���|t|�|�x+|D]#}|r@|��q'|��q'WdS(N(R
(R3RRDR(t
false_byteRGRHt	true_byte(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s


cs<x5|D]-}|��|r*|��q|��qWdS(N((R3RR4R(R\RHR](sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s



cs$|��|r|��S|��S(N((R3RR4(R\RHR](sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRK�s

N(RCRRLR;tWIRETYPE_VARINT(RRRRIRJRK((R\RGRHR]sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytBoolEncoder�scsgt|tj��t�t�|s+t�|rJ���fd�}|S���fd�}|SdS(s&Returns an encoder for a string field.csNxG|D]?}|jd�}|���|�|�|�||�qWdS(Nsutf-8(R(R3RRDRtencoded(RGRttag(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s


cs9|jd�}|���|�|�|�||�S(Nsutf-8(R(R3RRDR`(RGRRa(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRK�s
N(RCRRLR;R
R(RRRRJRK((RGRRasD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
StringEncoder�s
csgt|tj��t�t�|s+t�|rJ���fd�}|S���fd�}|SdS(s%Returns an encoder for a bytes field.cs?x8|D]0}|���|�|�|�||�qWdS(N((R3RRDR(RGRRa(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s

cs*|���|�|�|�||�S(N((R3RRD(RGRRa(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRK�s
N(RCRRLR;R
R(RRRRJRK((RGRRasD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytBytesEncoder�s
csgt|tj��t|tj��|s1t�|rM��fd�}|S��fd�}|SdS(s%Returns an encoder for a group field.cs9x2|D]*}|��|j||�|��qWdS(N(t_InternalSerialize(R3RRDR(tend_tagt	start_tag(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s

cs$|��|j||�|��S(N(Rd(R3RRD(ReRf(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRK�s
N(RCRtWIRETYPE_START_GROUPtWIRETYPE_END_GROUPR(RRRRJRK((ReRfsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytGroupEncoder�s
cs[t|tj��t�|s%t�|rA��fd�}|S��fd�}|SdS(s'Returns an encoder for a message field.csEx>|D]6}|���||j�|�|j||�qWdS(N(R Rd(R3RRDR(RGRa(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s

cs0|���||j�|�|j||�S(N(R Rd(R3RRD(RGRa(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRK�s
N(RCRRLR;R(RRRRJRK((RGRasD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageEncoder�s
csvdjtdtj�tdtj�t|�tdtj�g��tdtj��t����fd�}|S(s�Encoder for extensions of MessageSet.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  R:iiics:|���||j�|�|j||�|��S(N(R Rd(R3RRD(t	end_bytesRGtstart_bytes(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRKs
(	R>RCRRgR^R@RLRhR;(RRK((RkRGRlsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageSetItemEncoders	cs4|j�t|jtt����fd�}|S(s�Encoder for extensions of MessageSet.

  Maps always have a wire format like this:
    message MapEntry {
      key_type key = 1;
      value_type value = 2;
    }
    repeated MapEntry map = N;
  cs_|rt|j��n|}x:|D]2}�jd|d||�}�|||�q%WdS(NR%R(tsortedtkeysR&(R3RRDt
value_keysR%R)(tencode_messageR,(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRK5s
(R,RjR-R.(R/RK((RqR,sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
MapEncoder&s	(Dt__doc__t
__author__RRR1tgoogle.protobuf.internalRRVRWRRRRRRt
Int32Sizert
Int64Sizert	EnumSizertUInt32SizertUInt64SizertZigZagEncodetSInt32SizertSInt64SizertFixed32Sizert
SFixed32Sizert
FloatSizertFixed64Sizert
SFixed64SizertDoubleSizert	BoolSizerRRR!R"R$R0R7R9R;t_EncodeSignedVarintR@RCRNRORUR[R^tInt32EncodertInt64EncodertEnumEncodert
UInt32Encodert
UInt64Encodert
SInt32Encodert
SInt64EncodertWIRETYPE_FIXED32tFixed32EncodertWIRETYPE_FIXED64tFixed64EncodertSFixed32EncodertSFixed64EncodertFloatEncodert
DoubleEncoderR_RbRcRiRjRmRr(((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt<module>Asn						!													
	)	"	&	R	%					 PK�\֧%9UU.protobuf/internal/test_bad_identifiers_pb2.pyonu�[����
���hc!@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZddlmZej�Zejd
dddddded��ZdZejd
dddddddddddddd ed!ed"�jd#�d$dd%dd&dd'ed(dd)dd*e�Zd+Zejd
d,dd-dddd+ddddddd ed!ed.�jd#�d$dd%dd&dd'ed(dd)dd*e�Zd/Zejd
d0dd1dd2dd/ddddddd ed!ed3�jd#�d$dd%dd&dd'ed(dd)dd*e�Zd4Zejd
d5dd6dddd4ddddddd ed!ed7�jd#�d$dd%dd&dd'ed(dd)dd*e�Zejd
d8dd9d:dd*ed&dd;gd<gd=gd>gd)dd?eddd@dUgdBgdCdDdEdF�Zejd
dGddHd:dd*ed&dd;gd<gd=gd>gd)dd?eddd@gdBgdCdIdEdJ�Zeej d8<eej dG<eej!d<eej!d,<eej!d0<eej!d5<ej"e�e	j#d8ej$fe%dKedLdM��Z&ej'e&�e	j#dGej$fe%dKedLdM��Z(ej'e(�e&j)e�e&j)e�e&j)e�e&j)e�ee_*ej+ej,�edN��e_-ej.d
dOddPd*eddd)ddCdQdEdRdSg�Z/ej0e/�e/ej1dO<ej2dOe
j3fe%dKe/dLdM��Z4ej5dTe4fe%dKe/dLdM��Z6dS(Vi����NiicCs|S(N((tx((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/test_bad_identifiers_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/test_bad_identifiers_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tservice(tservice_reflection(tdescriptor_pb2tnames3google/protobuf/internal/test_bad_identifiers.prototpackagetprotobuf_unittesttsyntaxtproto2t
serialized_pbs�
3google/protobuf/internal/test_bad_identifiers.protoprotobuf_unittest"
TestBadIdentifiers*d����"
AnotherMessage2
AnotherService:;
message%.protobuf_unittest.TestBadIdentifiersd (	:foo:>

descriptor%.protobuf_unittest.TestBadIdentifierse (	:bar:>

reflection%.protobuf_unittest.TestBadIdentifiersf (	:baz:;
service%.protobuf_unittest.TestBadIdentifiersg (	:quxB�idRt	full_namesprotobuf_unittest.messagetindextnumberttypei	tcpp_typetlabelithas_default_valuet
default_valuetfoosutf-8tmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfileieRsprotobuf_unittest.descriptortbarifRsprotobuf_unittest.reflectionitbazigR	sprotobuf_unittest.servicetquxtTestBadIdentifierss$protobuf_unittest.TestBadIdentifierstfilenametfieldst
extensionstnested_typest
enum_typest
is_extendabletextension_rangesi toneofstserialized_startiJtserialized_endihtAnotherMessages protobuf_unittest.AnotherMessageijizt
DESCRIPTORt
__module__s1google.protobuf.internal.test_bad_identifiers_pb2s�tAnotherServices protobuf_unittest.AnotherServicei|i�tmethodstAnotherService_Stub(idi (7tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	t_serviceR
RtDefaultt_sym_dbtFileDescriptorR1tMESSAGE_FIELD_NUMBERtFieldDescriptortTruetdecodetNonetDESCRIPTOR_FIELD_NUMBERtREFLECTION_FIELD_NUMBERtSERVICE_FIELD_NUMBERt
Descriptort_TESTBADIDENTIFIERStFalset_ANOTHERMESSAGEtmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR%tRegisterMessageR0tRegisterExtensionthas_optionst
_ParseOptionstFileOptionst_optionstServiceDescriptort_ANOTHERSERVICEtRegisterServiceDescriptortservices_by_nametGeneratedServiceTypetServiceR3tGeneratedServiceStubTypeR5(((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/test_bad_identifiers_pb2.pyt<module>s�%										












	!		

PK�\��1�88'protobuf/internal/factory_test2_pb2.pyonu�[����
���hcA@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZejd
dddddded�dejg�Zejd
ddddddedejd
dddddddd d�ejd
d!dd"dd"ddd d�gd#dddd$d%d&d'�	Zeje�eje�ZdZd"Zd(Zejd
d)dd*dddd(d d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e"d5dddde�Z#ejd
d6dd7dddedejd
d8ddddddd d�ejd
d9dd"dd"ddd d�gd#dddd$d:d&d;�	Z$eje$�ejd
d<dd=dddedejd
d>ddddddd d�gd#dddd$d?d&d@�	Z%eje%�ej&d
dAddBddded#ddCejd
dDddEdddd"d d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e d5dddde�gdFgdGgdHgdddIe dddJgdKgd$dLd&dM�Z'ej&d
dNddOddded#ddCejd
dPddQddddRd d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e d5dddde�ejd
dSddTdd"ddUd d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e d5dddde�gdFgdGgdHgdddIe dddJgdKgd$dVd&dW�Z(ej&d
dXddYddded#ddCejd
dZdd[dddd"d d\d,d"d-d]d.e d/dd2dd3dd#dd4e d5dddde�ejd
d^dd_dd"dd]d dUd,d`d-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
daddbdd]ddd dUd,d`d-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
dcddddddded dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
dhddiddedd\d dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
djddkdd\ddld dUd,d`d-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
dmddnddlddod dUd,d`d-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
dpddqddodd`d dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
drddsdd`dd+d dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
dtddudd+ddgd d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e d5dddde�ejd
dvddwddgddfd d+d,d+d-dd.e d/gd2dd3dd#dd4e d5dddde�ejd
dxddyddfddzd dgd,dgd-dd.e d/gd2dd3dd#dd4e d5dddde�ejd
d{dd|ddzdd}d dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
d~ddddRdd�d d\d,d"d-d"d.e"d/d�d2dd3dd#dd4e d5dddde�ejd
d�dd�ddUdd�d d"d,d\d-d"d.e"d/e)d��d2dd3dd#dd4e d5dddde�ejd
d�dd�dd}dd�d d+d,d+d-d"d.e"d/ed��j!d1�d2dd3dd#dd4e d5dddde�ejd
d�dd�dd�dd�d d`d,dod-d"d.e"d/e d2dd3dd#dd4e d5dddde�ejd
d�dd�dd�dd�d dUd,d`d-d"d.e"d/d"d2dd3dd#dd4e d5dddde�ejd
d�dd�dd�dd�d dzd,d+d-d"d.e"d/ed��d2dd3dd#dd4e d5dddde�ejd
d�dd�dd�dd�d d\d,d"d-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
d�dd�dd�dd�d d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e d5dddde�gdFejd
d�dd�dddd�d d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e"d5dddde�gdGe'e(gdHe$gdddIe dddJgdKej*d
d�dd�ddd#ddCg�gd$d�d&d��Z+ej&d
d�dd�ddded#ddCejd
d{dd�dddd"d dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�gdFgdGgdHgdddIe dddJgdKgd$d�d&d��Z,ej&d
d�dd�ddded#ddCgdFgdGgdHe%gdddIe dddJgdKgd$d�d&d@�Z-ej&d
d�dd�ddded#ddCejd
d�dd�dddd"d d\d,d"d-d"d.e d/dd2dd3dd#dd4e d5dddde�gdFgdGgdHgdej.ej/�ed���dIe dddJgdKgd$d�d&d��Z0e+e'_1e+e(_1ee+j2d^_3e$e+j2da_3e'e+j2dc_4ej5e+j2dh_4ej6e+j2dj_3ej7e+j2dm_3ej8e+j2dp_4e+e+j2dr_4e(e+j2dx_4e,e+j2d{_4ee+j2d�_3e+e$_1e+j9d�j:j;e+j2d��e+j9d�e+j2d�_<e+j9d�j:j;e+j2d��e+j9d�e+j2d�_<e+e,j2d{_4e-e%_1e+ej=dX<e,ej=d�<e-ej=d�<e0ej=d�<eej>d<e#ej?d)<ej@e�ejAdXe	jBfeCdAejAdAe	jBfeCd�e'd�d���dNejAdNe	jBfeCd�e(d�d���d�e+d�d���ZDejEeD�ejEeDjF�ejEeDjG�ejAd�e	jBfeCd�e,d�d���ZHejEeH�ejAd�e	jBfeCd�e-d�d���ZIejEeI�ejAd�e	jBfeCd�e0d�d���ZJejEeJ�ejKjLe#�ejKjLe+j?d��e"e0_Mej.ej/�ed���e0_NdS(�i����NiicCs|S(N((tx((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test2_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test2_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tfactory_test1_pb2tnames,google/protobuf/internal/factory_test2.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbs�
,google/protobuf/internal/factory_test2.protogoogle.protobuf.python.internal,google/protobuf/internal/factory_test1.proto"�
Factory2Message
	mandatory (E
factory_2_enum (2-.google.protobuf.python.internal.Factory2Enumb
nested_factory_2_enum (2C.google.protobuf.python.internal.Factory2Message.NestedFactory2Enumh
nested_factory_2_message (2F.google.protobuf.python.internal.Factory2Message.NestedFactory2MessageK
factory_1_message (20.google.protobuf.python.internal.Factory1MessageE
factory_1_enum (2-.google.protobuf.python.internal.Factory1Enumb
nested_factory_1_enum (2C.google.protobuf.python.internal.Factory1Message.NestedFactory1Enumh
nested_factory_1_message (2F.google.protobuf.python.internal.Factory1Message.NestedFactory1MessageJ
circular_message	 (20.google.protobuf.python.internal.Factory2Message
scalar_value
 (	

list_value (	I
grouped (
28.google.protobuf.python.internal.Factory2Message.Grouped:
loop (2,.google.protobuf.python.internal.LoopMessage
int_with_default (:1776!
double_with_default (:9.99(
string_with_default (	:hello world 
bool_with_default (:false[
enum_with_default (2-.google.protobuf.python.internal.Factory2Enum:FACTORY_2_VALUE_1&
bytes_with_default (:
a\373\000c
	oneof_int (H
oneof_string (	H&
NestedFactory2Message
value (	)
Grouped
part_1
 (	
part_2 (	"P
NestedFactory2Enum
NESTED_FACTORY_2_VALUE_0
NESTED_FACTORY_2_VALUE_12I
one_more_field0.google.protobuf.python.internal.Factory1Message� (	B
oneof_field"M
LoopMessage>
loop (20.google.protobuf.python.internal.Factory2Message"D
MessageWithNestedEnumOnly"'

NestedEnum
NESTED_MESSAGE_ENUM_0"'
MessageWithOption
field1 (:*<
Factory2Enum
FACTORY_2_VALUE_0
FACTORY_2_VALUE_1:H

another_field0.google.protobuf.python.internal.Factory1Message� (	tdependenciestFactory2Enumt	full_names,google.protobuf.python.internal.Factory2EnumtfilenametfiletvaluestFACTORY_2_VALUE_0tindextnumbertoptionsttypetFACTORY_2_VALUE_1itcontaining_typetserialized_startitserialized_endiTi�t
another_fields-google.protobuf.python.internal.another_fieldi	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetNestedFactory2EnumsBgoogle.protobuf.python.internal.Factory2Message.NestedFactory2EnumtNESTED_FACTORY_2_VALUE_0tNESTED_FACTORY_2_VALUE_1i�i�t
NestedEnumsDgoogle.protobuf.python.internal.MessageWithNestedEnumOnly.NestedEnumtNESTED_MESSAGE_ENUM_0i�i�tNestedFactory2MessagesEgoogle.protobuf.python.internal.Factory2Message.NestedFactory2MessagetfieldstvaluesKgoogle.protobuf.python.internal.Factory2Message.NestedFactory2Message.valuet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi[i�tGroupeds7google.protobuf.python.internal.Factory2Message.Groupedtpart_1s>google.protobuf.python.internal.Factory2Message.Grouped.part_1i
tpart_2s>google.protobuf.python.internal.Factory2Message.Grouped.part_2ii�i�tFactory2Messages/google.protobuf.python.internal.Factory2Messaget	mandatorys9google.protobuf.python.internal.Factory2Message.mandatoryiitfactory_2_enums>google.protobuf.python.internal.Factory2Message.factory_2_enumitnested_factory_2_enumsEgoogle.protobuf.python.internal.Factory2Message.nested_factory_2_enumtnested_factory_2_messagesHgoogle.protobuf.python.internal.Factory2Message.nested_factory_2_messageiii
tfactory_1_messagesAgoogle.protobuf.python.internal.Factory2Message.factory_1_messagetfactory_1_enums>google.protobuf.python.internal.Factory2Message.factory_1_enumitnested_factory_1_enumsEgoogle.protobuf.python.internal.Factory2Message.nested_factory_1_enumitnested_factory_1_messagesHgoogle.protobuf.python.internal.Factory2Message.nested_factory_1_messagetcircular_messages@google.protobuf.python.internal.Factory2Message.circular_messagetscalar_values<google.protobuf.python.internal.Factory2Message.scalar_valuet
list_values:google.protobuf.python.internal.Factory2Message.list_valuetgroupeds7google.protobuf.python.internal.Factory2Message.groupeditloops4google.protobuf.python.internal.Factory2Message.loopitint_with_defaults@google.protobuf.python.internal.Factory2Message.int_with_defaultii�tdouble_with_defaultsCgoogle.protobuf.python.internal.Factory2Message.double_with_defaultig{�G�#@tstring_with_defaultsCgoogle.protobuf.python.internal.Factory2Message.string_with_defaultishello worldtbool_with_defaultsAgoogle.protobuf.python.internal.Factory2Message.bool_with_defaultitenum_with_defaultsAgoogle.protobuf.python.internal.Factory2Message.enum_with_defaultitbytes_with_defaultsBgoogle.protobuf.python.internal.Factory2Message.bytes_with_defaultisa�ct	oneof_ints9google.protobuf.python.internal.Factory2Message.oneof_intitoneof_strings<google.protobuf.python.internal.Factory2Message.oneof_stringitone_more_fields>google.protobuf.python.internal.Factory2Message.one_more_fieldi�toneof_fields;google.protobuf.python.internal.Factory2Message.oneof_fieldi�iXtLoopMessages+google.protobuf.python.internal.LoopMessages0google.protobuf.python.internal.LoopMessage.loopiZi�tMessageWithNestedEnumOnlys9google.protobuf.python.internal.MessageWithNestedEnumOnlyi�tMessageWithOptions1google.protobuf.python.internal.MessageWithOptiontfield1s8google.protobuf.python.internal.MessageWithOption.field1si�it
DESCRIPTORt
__module__s*google.protobuf.internal.factory_test2_pb2(Otsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt8google_dot_protobuf_dot_internal_dot_factory__test1__pb2tFileDescriptorRVtEnumDescriptortNonetEnumValueDescriptort
_FACTORY2ENUMtRegisterEnumDescriptortEnumTypeWrapperRRRtANOTHER_FIELD_FIELD_NUMBERtFieldDescriptortFalsetdecodetTrueR t#_FACTORY2MESSAGE_NESTEDFACTORY2ENUMt%_MESSAGEWITHNESTEDENUMONLY_NESTEDENUMt
Descriptort&_FACTORY2MESSAGE_NESTEDFACTORY2MESSAGEt_FACTORY2MESSAGE_GROUPEDtfloattOneofDescriptort_FACTORY2MESSAGEt_LOOPMESSAGEt_MESSAGEWITHNESTEDENUMONLYt
_ParseOptionstMessageOptionst_MESSAGEWITHOPTIONRtfields_by_nameR&R%t_FACTORY1MESSAGEt
_FACTORY1ENUMt#_FACTORY1MESSAGE_NESTEDFACTORY1ENUMt&_FACTORY1MESSAGE_NESTEDFACTORY1MESSAGEtoneofs_by_nameR/tappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR:tRegisterMessageR.R7RRRSRTtFactory1MessagetRegisterExtensionthas_optionst_options(((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test2_pb2.pyt<module>sH%					
					
			
																																														










	PK�\lH�;z;zprotobuf/internal/decoder.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Code for decoding protocol buffer primitives.

This code is very similar to encoder.py -- read the docs for that module first.

A "decoder" is a function with the signature:
  Decode(buffer, pos, end, message, field_dict)
The arguments are:
  buffer:     The string containing the encoded message.
  pos:        The current position in the string.
  end:        The position in the string where the current message ends.  May be
              less than len(buffer) if we're reading a sub-message.
  message:    The message object into which we're parsing.
  field_dict: message._fields (avoids a hashtable lookup).
The decoder reads the field and stores it into field_dict, returning the new
buffer position.  A decoder for a repeated field may proactively decode all of
the elements of that field, if they appear consecutively.

Note that decoders may throw any of the following:
  IndexError:  Indicates a truncated message.
  struct.error:  Unpacking of a fixed-width field failed.
  message.DecodeError:  Other errors.

Decoders are expected to raise an exception if they are called with pos > end.
This allows callers to be lax about bounds checking:  it's fineto read past
"end" as long as you are sure that someone else will notice and throw an
exception later on.

Something up the call stack is expected to catch IndexError and struct.error
and convert them to message.DecodeError.

Decoders are constructed using decoder constructors with the signature:
  MakeDecoder(field_number, is_repeated, is_packed, key, new_default)
The arguments are:
  field_number:  The field number of the field we want to decode.
  is_repeated:   Is the field a repeated field? (bool)
  is_packed:     Is the field a packed field? (bool)
  key:           The key to use when looking up the field within field_dict.
                 (This is actually the FieldDescriptor but nothing in this
                 file should depend on that.)
  new_default:   A function which takes a message object as a parameter and
                 returns a new instance of the default value for this field.
                 (This is called for repeated fields and sub-messages, when an
                 instance does not already exist.)

As with encoders, we define a decoder constructor for every type of field.
Then, for every field of every message class we construct an actual decoder.
That decoder goes into a dict indexed by tag, so when we decode a message
we repeatedly read a tag, look up the corresponding decoder, and invoke it.
"""

__author__ = 'kenton@google.com (Kenton Varda)'

import struct

import six

if six.PY3:
  long = int

from google.protobuf.internal import encoder
from google.protobuf.internal import wire_format
from google.protobuf import message


# This will overflow and thus become IEEE-754 "infinity".  We would use
# "float('inf')" but it doesn't work on Windows pre-Python-2.6.
_POS_INF = 1e10000
_NEG_INF = -_POS_INF
_NAN = _POS_INF * 0


# This is not for optimization, but rather to avoid conflicts with local
# variables named "message".
_DecodeError = message.DecodeError


def _VarintDecoder(mask, result_type):
  """Return an encoder for a basic varint value (does not include tag).

  Decoded values will be bitwise-anded with the given mask before being
  returned, e.g. to limit them to 32 bits.  The returned decoder does not
  take the usual "end" parameter -- the caller is expected to do bounds checking
  after the fact (often the caller can defer such checking until later).  The
  decoder returns a (value, new_pos) pair.
  """

  def DecodeVarint(buffer, pos):
    result = 0
    shift = 0
    while 1:
      b = six.indexbytes(buffer, pos)
      result |= ((b & 0x7f) << shift)
      pos += 1
      if not (b & 0x80):
        result &= mask
        result = result_type(result)
        return (result, pos)
      shift += 7
      if shift >= 64:
        raise _DecodeError('Too many bytes when decoding varint.')
  return DecodeVarint


def _SignedVarintDecoder(bits, result_type):
  """Like _VarintDecoder() but decodes signed values."""

  signbit = 1 << (bits - 1)
  mask = (1 << bits) - 1

  def DecodeVarint(buffer, pos):
    result = 0
    shift = 0
    while 1:
      b = six.indexbytes(buffer, pos)
      result |= ((b & 0x7f) << shift)
      pos += 1
      if not (b & 0x80):
        result &= mask
        result = (result ^ signbit) - signbit
        result = result_type(result)
        return (result, pos)
      shift += 7
      if shift >= 64:
        raise _DecodeError('Too many bytes when decoding varint.')
  return DecodeVarint

# We force 32-bit values to int and 64-bit values to long to make
# alternate implementations where the distinction is more significant
# (e.g. the C++ implementation) simpler.

_DecodeVarint = _VarintDecoder((1 << 64) - 1, long)
_DecodeSignedVarint = _SignedVarintDecoder(64, long)

# Use these versions for values which must be limited to 32 bits.
_DecodeVarint32 = _VarintDecoder((1 << 32) - 1, int)
_DecodeSignedVarint32 = _SignedVarintDecoder(32, int)


def ReadTag(buffer, pos):
  """Read a tag from the buffer, and return a (tag_bytes, new_pos) tuple.

  We return the raw bytes of the tag rather than decoding them.  The raw
  bytes can then be used to look up the proper decoder.  This effectively allows
  us to trade some work that would be done in pure-python (decoding a varint)
  for work that is done in C (searching for a byte string in a hash table).
  In a low-level language it would be much cheaper to decode the varint and
  use that, but not in Python.
  """

  start = pos
  while six.indexbytes(buffer, pos) & 0x80:
    pos += 1
  pos += 1
  return (six.binary_type(buffer[start:pos]), pos)


# --------------------------------------------------------------------


def _SimpleDecoder(wire_type, decode_value):
  """Return a constructor for a decoder for fields of a particular type.

  Args:
      wire_type:  The field's wire type.
      decode_value:  A function which decodes an individual value, e.g.
        _DecodeVarint()
  """

  def SpecificDecoder(field_number, is_repeated, is_packed, key, new_default):
    if is_packed:
      local_DecodeVarint = _DecodeVarint
      def DecodePackedField(buffer, pos, end, message, field_dict):
        value = field_dict.get(key)
        if value is None:
          value = field_dict.setdefault(key, new_default(message))
        (endpoint, pos) = local_DecodeVarint(buffer, pos)
        endpoint += pos
        if endpoint > end:
          raise _DecodeError('Truncated message.')
        while pos < endpoint:
          (element, pos) = decode_value(buffer, pos)
          value.append(element)
        if pos > endpoint:
          del value[-1]   # Discard corrupt value.
          raise _DecodeError('Packed element was truncated.')
        return pos
      return DecodePackedField
    elif is_repeated:
      tag_bytes = encoder.TagBytes(field_number, wire_type)
      tag_len = len(tag_bytes)
      def DecodeRepeatedField(buffer, pos, end, message, field_dict):
        value = field_dict.get(key)
        if value is None:
          value = field_dict.setdefault(key, new_default(message))
        while 1:
          (element, new_pos) = decode_value(buffer, pos)
          value.append(element)
          # Predict that the next tag is another copy of the same repeated
          # field.
          pos = new_pos + tag_len
          if buffer[new_pos:pos] != tag_bytes or new_pos >= end:
            # Prediction failed.  Return.
            if new_pos > end:
              raise _DecodeError('Truncated message.')
            return new_pos
      return DecodeRepeatedField
    else:
      def DecodeField(buffer, pos, end, message, field_dict):
        (field_dict[key], pos) = decode_value(buffer, pos)
        if pos > end:
          del field_dict[key]  # Discard corrupt value.
          raise _DecodeError('Truncated message.')
        return pos
      return DecodeField

  return SpecificDecoder


def _ModifiedDecoder(wire_type, decode_value, modify_value):
  """Like SimpleDecoder but additionally invokes modify_value on every value
  before storing it.  Usually modify_value is ZigZagDecode.
  """

  # Reusing _SimpleDecoder is slightly slower than copying a bunch of code, but
  # not enough to make a significant difference.

  def InnerDecode(buffer, pos):
    (result, new_pos) = decode_value(buffer, pos)
    return (modify_value(result), new_pos)
  return _SimpleDecoder(wire_type, InnerDecode)


def _StructPackDecoder(wire_type, format):
  """Return a constructor for a decoder for a fixed-width field.

  Args:
      wire_type:  The field's wire type.
      format:  The format string to pass to struct.unpack().
  """

  value_size = struct.calcsize(format)
  local_unpack = struct.unpack

  # Reusing _SimpleDecoder is slightly slower than copying a bunch of code, but
  # not enough to make a significant difference.

  # Note that we expect someone up-stack to catch struct.error and convert
  # it to _DecodeError -- this way we don't have to set up exception-
  # handling blocks every time we parse one value.

  def InnerDecode(buffer, pos):
    new_pos = pos + value_size
    result = local_unpack(format, buffer[pos:new_pos])[0]
    return (result, new_pos)
  return _SimpleDecoder(wire_type, InnerDecode)


def _FloatDecoder():
  """Returns a decoder for a float field.

  This code works around a bug in struct.unpack for non-finite 32-bit
  floating-point values.
  """

  local_unpack = struct.unpack

  def InnerDecode(buffer, pos):
    # We expect a 32-bit value in little-endian byte order.  Bit 1 is the sign
    # bit, bits 2-9 represent the exponent, and bits 10-32 are the significand.
    new_pos = pos + 4
    float_bytes = buffer[pos:new_pos]

    # If this value has all its exponent bits set, then it's non-finite.
    # In Python 2.4, struct.unpack will convert it to a finite 64-bit value.
    # To avoid that, we parse it specially.
    if (float_bytes[3:4] in b'\x7F\xFF' and float_bytes[2:3] >= b'\x80'):
      # If at least one significand bit is set...
      if float_bytes[0:3] != b'\x00\x00\x80':
        return (_NAN, new_pos)
      # If sign bit is set...
      if float_bytes[3:4] == b'\xFF':
        return (_NEG_INF, new_pos)
      return (_POS_INF, new_pos)

    # Note that we expect someone up-stack to catch struct.error and convert
    # it to _DecodeError -- this way we don't have to set up exception-
    # handling blocks every time we parse one value.
    result = local_unpack('<f', float_bytes)[0]
    return (result, new_pos)
  return _SimpleDecoder(wire_format.WIRETYPE_FIXED32, InnerDecode)


def _DoubleDecoder():
  """Returns a decoder for a double field.

  This code works around a bug in struct.unpack for not-a-number.
  """

  local_unpack = struct.unpack

  def InnerDecode(buffer, pos):
    # We expect a 64-bit value in little-endian byte order.  Bit 1 is the sign
    # bit, bits 2-12 represent the exponent, and bits 13-64 are the significand.
    new_pos = pos + 8
    double_bytes = buffer[pos:new_pos]

    # If this value has all its exponent bits set and at least one significand
    # bit set, it's not a number.  In Python 2.4, struct.unpack will treat it
    # as inf or -inf.  To avoid that, we treat it specially.
    if ((double_bytes[7:8] in b'\x7F\xFF')
        and (double_bytes[6:7] >= b'\xF0')
        and (double_bytes[0:7] != b'\x00\x00\x00\x00\x00\x00\xF0')):
      return (_NAN, new_pos)

    # Note that we expect someone up-stack to catch struct.error and convert
    # it to _DecodeError -- this way we don't have to set up exception-
    # handling blocks every time we parse one value.
    result = local_unpack('<d', double_bytes)[0]
    return (result, new_pos)
  return _SimpleDecoder(wire_format.WIRETYPE_FIXED64, InnerDecode)


def EnumDecoder(field_number, is_repeated, is_packed, key, new_default):
  enum_type = key.enum_type
  if is_packed:
    local_DecodeVarint = _DecodeVarint
    def DecodePackedField(buffer, pos, end, message, field_dict):
      value = field_dict.get(key)
      if value is None:
        value = field_dict.setdefault(key, new_default(message))
      (endpoint, pos) = local_DecodeVarint(buffer, pos)
      endpoint += pos
      if endpoint > end:
        raise _DecodeError('Truncated message.')
      while pos < endpoint:
        value_start_pos = pos
        (element, pos) = _DecodeSignedVarint32(buffer, pos)
        if element in enum_type.values_by_number:
          value.append(element)
        else:
          if not message._unknown_fields:
            message._unknown_fields = []
          tag_bytes = encoder.TagBytes(field_number,
                                       wire_format.WIRETYPE_VARINT)
          message._unknown_fields.append(
              (tag_bytes, buffer[value_start_pos:pos]))
      if pos > endpoint:
        if element in enum_type.values_by_number:
          del value[-1]   # Discard corrupt value.
        else:
          del message._unknown_fields[-1]
        raise _DecodeError('Packed element was truncated.')
      return pos
    return DecodePackedField
  elif is_repeated:
    tag_bytes = encoder.TagBytes(field_number, wire_format.WIRETYPE_VARINT)
    tag_len = len(tag_bytes)
    def DecodeRepeatedField(buffer, pos, end, message, field_dict):
      value = field_dict.get(key)
      if value is None:
        value = field_dict.setdefault(key, new_default(message))
      while 1:
        (element, new_pos) = _DecodeSignedVarint32(buffer, pos)
        if element in enum_type.values_by_number:
          value.append(element)
        else:
          if not message._unknown_fields:
            message._unknown_fields = []
          message._unknown_fields.append(
              (tag_bytes, buffer[pos:new_pos]))
        # Predict that the next tag is another copy of the same repeated
        # field.
        pos = new_pos + tag_len
        if buffer[new_pos:pos] != tag_bytes or new_pos >= end:
          # Prediction failed.  Return.
          if new_pos > end:
            raise _DecodeError('Truncated message.')
          return new_pos
    return DecodeRepeatedField
  else:
    def DecodeField(buffer, pos, end, message, field_dict):
      value_start_pos = pos
      (enum_value, pos) = _DecodeSignedVarint32(buffer, pos)
      if pos > end:
        raise _DecodeError('Truncated message.')
      if enum_value in enum_type.values_by_number:
        field_dict[key] = enum_value
      else:
        if not message._unknown_fields:
          message._unknown_fields = []
        tag_bytes = encoder.TagBytes(field_number,
                                     wire_format.WIRETYPE_VARINT)
        message._unknown_fields.append(
          (tag_bytes, buffer[value_start_pos:pos]))
      return pos
    return DecodeField


# --------------------------------------------------------------------


Int32Decoder = _SimpleDecoder(
    wire_format.WIRETYPE_VARINT, _DecodeSignedVarint32)

Int64Decoder = _SimpleDecoder(
    wire_format.WIRETYPE_VARINT, _DecodeSignedVarint)

UInt32Decoder = _SimpleDecoder(wire_format.WIRETYPE_VARINT, _DecodeVarint32)
UInt64Decoder = _SimpleDecoder(wire_format.WIRETYPE_VARINT, _DecodeVarint)

SInt32Decoder = _ModifiedDecoder(
    wire_format.WIRETYPE_VARINT, _DecodeVarint32, wire_format.ZigZagDecode)
SInt64Decoder = _ModifiedDecoder(
    wire_format.WIRETYPE_VARINT, _DecodeVarint, wire_format.ZigZagDecode)

# Note that Python conveniently guarantees that when using the '<' prefix on
# formats, they will also have the same size across all platforms (as opposed
# to without the prefix, where their sizes depend on the C compiler's basic
# type sizes).
Fixed32Decoder  = _StructPackDecoder(wire_format.WIRETYPE_FIXED32, '<I')
Fixed64Decoder  = _StructPackDecoder(wire_format.WIRETYPE_FIXED64, '<Q')
SFixed32Decoder = _StructPackDecoder(wire_format.WIRETYPE_FIXED32, '<i')
SFixed64Decoder = _StructPackDecoder(wire_format.WIRETYPE_FIXED64, '<q')
FloatDecoder = _FloatDecoder()
DoubleDecoder = _DoubleDecoder()

BoolDecoder = _ModifiedDecoder(
    wire_format.WIRETYPE_VARINT, _DecodeVarint, bool)


def StringDecoder(field_number, is_repeated, is_packed, key, new_default):
  """Returns a decoder for a string field."""

  local_DecodeVarint = _DecodeVarint
  local_unicode = six.text_type

  def _ConvertToUnicode(byte_str):
    try:
      return local_unicode(byte_str, 'utf-8')
    except UnicodeDecodeError as e:
      # add more information to the error message and re-raise it.
      e.reason = '%s in field: %s' % (e, key.full_name)
      raise

  assert not is_packed
  if is_repeated:
    tag_bytes = encoder.TagBytes(field_number,
                                 wire_format.WIRETYPE_LENGTH_DELIMITED)
    tag_len = len(tag_bytes)
    def DecodeRepeatedField(buffer, pos, end, message, field_dict):
      value = field_dict.get(key)
      if value is None:
        value = field_dict.setdefault(key, new_default(message))
      while 1:
        (size, pos) = local_DecodeVarint(buffer, pos)
        new_pos = pos + size
        if new_pos > end:
          raise _DecodeError('Truncated string.')
        value.append(_ConvertToUnicode(buffer[pos:new_pos]))
        # Predict that the next tag is another copy of the same repeated field.
        pos = new_pos + tag_len
        if buffer[new_pos:pos] != tag_bytes or new_pos == end:
          # Prediction failed.  Return.
          return new_pos
    return DecodeRepeatedField
  else:
    def DecodeField(buffer, pos, end, message, field_dict):
      (size, pos) = local_DecodeVarint(buffer, pos)
      new_pos = pos + size
      if new_pos > end:
        raise _DecodeError('Truncated string.')
      field_dict[key] = _ConvertToUnicode(buffer[pos:new_pos])
      return new_pos
    return DecodeField


def BytesDecoder(field_number, is_repeated, is_packed, key, new_default):
  """Returns a decoder for a bytes field."""

  local_DecodeVarint = _DecodeVarint

  assert not is_packed
  if is_repeated:
    tag_bytes = encoder.TagBytes(field_number,
                                 wire_format.WIRETYPE_LENGTH_DELIMITED)
    tag_len = len(tag_bytes)
    def DecodeRepeatedField(buffer, pos, end, message, field_dict):
      value = field_dict.get(key)
      if value is None:
        value = field_dict.setdefault(key, new_default(message))
      while 1:
        (size, pos) = local_DecodeVarint(buffer, pos)
        new_pos = pos + size
        if new_pos > end:
          raise _DecodeError('Truncated string.')
        value.append(buffer[pos:new_pos])
        # Predict that the next tag is another copy of the same repeated field.
        pos = new_pos + tag_len
        if buffer[new_pos:pos] != tag_bytes or new_pos == end:
          # Prediction failed.  Return.
          return new_pos
    return DecodeRepeatedField
  else:
    def DecodeField(buffer, pos, end, message, field_dict):
      (size, pos) = local_DecodeVarint(buffer, pos)
      new_pos = pos + size
      if new_pos > end:
        raise _DecodeError('Truncated string.')
      field_dict[key] = buffer[pos:new_pos]
      return new_pos
    return DecodeField


def GroupDecoder(field_number, is_repeated, is_packed, key, new_default):
  """Returns a decoder for a group field."""

  end_tag_bytes = encoder.TagBytes(field_number,
                                   wire_format.WIRETYPE_END_GROUP)
  end_tag_len = len(end_tag_bytes)

  assert not is_packed
  if is_repeated:
    tag_bytes = encoder.TagBytes(field_number,
                                 wire_format.WIRETYPE_START_GROUP)
    tag_len = len(tag_bytes)
    def DecodeRepeatedField(buffer, pos, end, message, field_dict):
      value = field_dict.get(key)
      if value is None:
        value = field_dict.setdefault(key, new_default(message))
      while 1:
        value = field_dict.get(key)
        if value is None:
          value = field_dict.setdefault(key, new_default(message))
        # Read sub-message.
        pos = value.add()._InternalParse(buffer, pos, end)
        # Read end tag.
        new_pos = pos+end_tag_len
        if buffer[pos:new_pos] != end_tag_bytes or new_pos > end:
          raise _DecodeError('Missing group end tag.')
        # Predict that the next tag is another copy of the same repeated field.
        pos = new_pos + tag_len
        if buffer[new_pos:pos] != tag_bytes or new_pos == end:
          # Prediction failed.  Return.
          return new_pos
    return DecodeRepeatedField
  else:
    def DecodeField(buffer, pos, end, message, field_dict):
      value = field_dict.get(key)
      if value is None:
        value = field_dict.setdefault(key, new_default(message))
      # Read sub-message.
      pos = value._InternalParse(buffer, pos, end)
      # Read end tag.
      new_pos = pos+end_tag_len
      if buffer[pos:new_pos] != end_tag_bytes or new_pos > end:
        raise _DecodeError('Missing group end tag.')
      return new_pos
    return DecodeField


def MessageDecoder(field_number, is_repeated, is_packed, key, new_default):
  """Returns a decoder for a message field."""

  local_DecodeVarint = _DecodeVarint

  assert not is_packed
  if is_repeated:
    tag_bytes = encoder.TagBytes(field_number,
                                 wire_format.WIRETYPE_LENGTH_DELIMITED)
    tag_len = len(tag_bytes)
    def DecodeRepeatedField(buffer, pos, end, message, field_dict):
      value = field_dict.get(key)
      if value is None:
        value = field_dict.setdefault(key, new_default(message))
      while 1:
        # Read length.
        (size, pos) = local_DecodeVarint(buffer, pos)
        new_pos = pos + size
        if new_pos > end:
          raise _DecodeError('Truncated message.')
        # Read sub-message.
        if value.add()._InternalParse(buffer, pos, new_pos) != new_pos:
          # The only reason _InternalParse would return early is if it
          # encountered an end-group tag.
          raise _DecodeError('Unexpected end-group tag.')
        # Predict that the next tag is another copy of the same repeated field.
        pos = new_pos + tag_len
        if buffer[new_pos:pos] != tag_bytes or new_pos == end:
          # Prediction failed.  Return.
          return new_pos
    return DecodeRepeatedField
  else:
    def DecodeField(buffer, pos, end, message, field_dict):
      value = field_dict.get(key)
      if value is None:
        value = field_dict.setdefault(key, new_default(message))
      # Read length.
      (size, pos) = local_DecodeVarint(buffer, pos)
      new_pos = pos + size
      if new_pos > end:
        raise _DecodeError('Truncated message.')
      # Read sub-message.
      if value._InternalParse(buffer, pos, new_pos) != new_pos:
        # The only reason _InternalParse would return early is if it encountered
        # an end-group tag.
        raise _DecodeError('Unexpected end-group tag.')
      return new_pos
    return DecodeField


# --------------------------------------------------------------------

MESSAGE_SET_ITEM_TAG = encoder.TagBytes(1, wire_format.WIRETYPE_START_GROUP)

def MessageSetItemDecoder(descriptor):
  """Returns a decoder for a MessageSet item.

  The parameter is the message Descriptor.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  """

  type_id_tag_bytes = encoder.TagBytes(2, wire_format.WIRETYPE_VARINT)
  message_tag_bytes = encoder.TagBytes(3, wire_format.WIRETYPE_LENGTH_DELIMITED)
  item_end_tag_bytes = encoder.TagBytes(1, wire_format.WIRETYPE_END_GROUP)

  local_ReadTag = ReadTag
  local_DecodeVarint = _DecodeVarint
  local_SkipField = SkipField

  def DecodeItem(buffer, pos, end, message, field_dict):
    message_set_item_start = pos
    type_id = -1
    message_start = -1
    message_end = -1

    # Technically, type_id and message can appear in any order, so we need
    # a little loop here.
    while 1:
      (tag_bytes, pos) = local_ReadTag(buffer, pos)
      if tag_bytes == type_id_tag_bytes:
        (type_id, pos) = local_DecodeVarint(buffer, pos)
      elif tag_bytes == message_tag_bytes:
        (size, message_start) = local_DecodeVarint(buffer, pos)
        pos = message_end = message_start + size
      elif tag_bytes == item_end_tag_bytes:
        break
      else:
        pos = SkipField(buffer, pos, end, tag_bytes)
        if pos == -1:
          raise _DecodeError('Missing group end tag.')

    if pos > end:
      raise _DecodeError('Truncated message.')

    if type_id == -1:
      raise _DecodeError('MessageSet item missing type_id.')
    if message_start == -1:
      raise _DecodeError('MessageSet item missing message.')

    extension = message.Extensions._FindExtensionByNumber(type_id)
    if extension is not None:
      value = field_dict.get(extension)
      if value is None:
        value = field_dict.setdefault(
            extension, extension.message_type._concrete_class())
      if value._InternalParse(buffer, message_start,message_end) != message_end:
        # The only reason _InternalParse would return early is if it encountered
        # an end-group tag.
        raise _DecodeError('Unexpected end-group tag.')
    else:
      if not message._unknown_fields:
        message._unknown_fields = []
      message._unknown_fields.append((MESSAGE_SET_ITEM_TAG,
                                      buffer[message_set_item_start:pos]))

    return pos

  return DecodeItem

# --------------------------------------------------------------------

def MapDecoder(field_descriptor, new_default, is_message_map):
  """Returns a decoder for a map field."""

  key = field_descriptor
  tag_bytes = encoder.TagBytes(field_descriptor.number,
                               wire_format.WIRETYPE_LENGTH_DELIMITED)
  tag_len = len(tag_bytes)
  local_DecodeVarint = _DecodeVarint
  # Can't read _concrete_class yet; might not be initialized.
  message_type = field_descriptor.message_type

  def DecodeMap(buffer, pos, end, message, field_dict):
    submsg = message_type._concrete_class()
    value = field_dict.get(key)
    if value is None:
      value = field_dict.setdefault(key, new_default(message))
    while 1:
      # Read length.
      (size, pos) = local_DecodeVarint(buffer, pos)
      new_pos = pos + size
      if new_pos > end:
        raise _DecodeError('Truncated message.')
      # Read sub-message.
      submsg.Clear()
      if submsg._InternalParse(buffer, pos, new_pos) != new_pos:
        # The only reason _InternalParse would return early is if it
        # encountered an end-group tag.
        raise _DecodeError('Unexpected end-group tag.')

      if is_message_map:
        value[submsg.key].MergeFrom(submsg.value)
      else:
        value[submsg.key] = submsg.value

      # Predict that the next tag is another copy of the same repeated field.
      pos = new_pos + tag_len
      if buffer[new_pos:pos] != tag_bytes or new_pos == end:
        # Prediction failed.  Return.
        return new_pos

  return DecodeMap

# --------------------------------------------------------------------
# Optimization is not as heavy here because calls to SkipField() are rare,
# except for handling end-group tags.

def _SkipVarint(buffer, pos, end):
  """Skip a varint value.  Returns the new position."""
  # Previously ord(buffer[pos]) raised IndexError when pos is out of range.
  # With this code, ord(b'') raises TypeError.  Both are handled in
  # python_message.py to generate a 'Truncated message' error.
  while ord(buffer[pos:pos+1]) & 0x80:
    pos += 1
  pos += 1
  if pos > end:
    raise _DecodeError('Truncated message.')
  return pos

def _SkipFixed64(buffer, pos, end):
  """Skip a fixed64 value.  Returns the new position."""

  pos += 8
  if pos > end:
    raise _DecodeError('Truncated message.')
  return pos

def _SkipLengthDelimited(buffer, pos, end):
  """Skip a length-delimited value.  Returns the new position."""

  (size, pos) = _DecodeVarint(buffer, pos)
  pos += size
  if pos > end:
    raise _DecodeError('Truncated message.')
  return pos

def _SkipGroup(buffer, pos, end):
  """Skip sub-group.  Returns the new position."""

  while 1:
    (tag_bytes, pos) = ReadTag(buffer, pos)
    new_pos = SkipField(buffer, pos, end, tag_bytes)
    if new_pos == -1:
      return pos
    pos = new_pos

def _EndGroup(buffer, pos, end):
  """Skipping an END_GROUP tag returns -1 to tell the parent loop to break."""

  return -1

def _SkipFixed32(buffer, pos, end):
  """Skip a fixed32 value.  Returns the new position."""

  pos += 4
  if pos > end:
    raise _DecodeError('Truncated message.')
  return pos

def _RaiseInvalidWireType(buffer, pos, end):
  """Skip function for unknown wire types.  Raises an exception."""

  raise _DecodeError('Tag had invalid wire type.')

def _FieldSkipper():
  """Constructs the SkipField function."""

  WIRETYPE_TO_SKIPPER = [
      _SkipVarint,
      _SkipFixed64,
      _SkipLengthDelimited,
      _SkipGroup,
      _EndGroup,
      _SkipFixed32,
      _RaiseInvalidWireType,
      _RaiseInvalidWireType,
      ]

  wiretype_mask = wire_format.TAG_TYPE_MASK

  def SkipField(buffer, pos, end, tag_bytes):
    """Skips a field with the specified tag.

    |pos| should point to the byte immediately after the tag.

    Returns:
        The new position (after the tag value), or -1 if the tag is an end-group
        tag (in which case the calling loop should break).
    """

    # The wire type is always in the first byte since varints are little-endian.
    wire_type = ord(tag_bytes[0:1]) & wiretype_mask
    return WIRETYPE_TO_SKIPPER[wire_type](buffer, pos, end)

  return SkipField

SkipField = _FieldSkipper()
PK�\a���� �  protobuf/internal/wire_format.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Constants and static functions to support protocol buffer wire format."""

__author__ = 'robinson@google.com (Will Robinson)'

import struct
from google.protobuf import descriptor
from google.protobuf import message


TAG_TYPE_BITS = 3  # Number of bits used to hold type info in a proto tag.
TAG_TYPE_MASK = (1 << TAG_TYPE_BITS) - 1  # 0x7

# These numbers identify the wire type of a protocol buffer value.
# We use the least-significant TAG_TYPE_BITS bits of the varint-encoded
# tag-and-type to store one of these WIRETYPE_* constants.
# These values must match WireType enum in google/protobuf/wire_format.h.
WIRETYPE_VARINT = 0
WIRETYPE_FIXED64 = 1
WIRETYPE_LENGTH_DELIMITED = 2
WIRETYPE_START_GROUP = 3
WIRETYPE_END_GROUP = 4
WIRETYPE_FIXED32 = 5
_WIRETYPE_MAX = 5


# Bounds for various integer types.
INT32_MAX = int((1 << 31) - 1)
INT32_MIN = int(-(1 << 31))
UINT32_MAX = (1 << 32) - 1

INT64_MAX = (1 << 63) - 1
INT64_MIN = -(1 << 63)
UINT64_MAX = (1 << 64) - 1

# "struct" format strings that will encode/decode the specified formats.
FORMAT_UINT32_LITTLE_ENDIAN = '<I'
FORMAT_UINT64_LITTLE_ENDIAN = '<Q'
FORMAT_FLOAT_LITTLE_ENDIAN = '<f'
FORMAT_DOUBLE_LITTLE_ENDIAN = '<d'


# We'll have to provide alternate implementations of AppendLittleEndian*() on
# any architectures where these checks fail.
if struct.calcsize(FORMAT_UINT32_LITTLE_ENDIAN) != 4:
  raise AssertionError('Format "I" is not a 32-bit number.')
if struct.calcsize(FORMAT_UINT64_LITTLE_ENDIAN) != 8:
  raise AssertionError('Format "Q" is not a 64-bit number.')


def PackTag(field_number, wire_type):
  """Returns an unsigned 32-bit integer that encodes the field number and
  wire type information in standard protocol message wire format.

  Args:
    field_number: Expected to be an integer in the range [1, 1 << 29)
    wire_type: One of the WIRETYPE_* constants.
  """
  if not 0 <= wire_type <= _WIRETYPE_MAX:
    raise message.EncodeError('Unknown wire type: %d' % wire_type)
  return (field_number << TAG_TYPE_BITS) | wire_type


def UnpackTag(tag):
  """The inverse of PackTag().  Given an unsigned 32-bit number,
  returns a (field_number, wire_type) tuple.
  """
  return (tag >> TAG_TYPE_BITS), (tag & TAG_TYPE_MASK)


def ZigZagEncode(value):
  """ZigZag Transform:  Encodes signed integers so that they can be
  effectively used with varint encoding.  See wire_format.h for
  more details.
  """
  if value >= 0:
    return value << 1
  return (value << 1) ^ (~0)


def ZigZagDecode(value):
  """Inverse of ZigZagEncode()."""
  if not value & 0x1:
    return value >> 1
  return (value >> 1) ^ (~0)



# The *ByteSize() functions below return the number of bytes required to
# serialize "field number + type" information and then serialize the value.


def Int32ByteSize(field_number, int32):
  return Int64ByteSize(field_number, int32)


def Int32ByteSizeNoTag(int32):
  return _VarUInt64ByteSizeNoTag(0xffffffffffffffff & int32)


def Int64ByteSize(field_number, int64):
  # Have to convert to uint before calling UInt64ByteSize().
  return UInt64ByteSize(field_number, 0xffffffffffffffff & int64)


def UInt32ByteSize(field_number, uint32):
  return UInt64ByteSize(field_number, uint32)


def UInt64ByteSize(field_number, uint64):
  return TagByteSize(field_number) + _VarUInt64ByteSizeNoTag(uint64)


def SInt32ByteSize(field_number, int32):
  return UInt32ByteSize(field_number, ZigZagEncode(int32))


def SInt64ByteSize(field_number, int64):
  return UInt64ByteSize(field_number, ZigZagEncode(int64))


def Fixed32ByteSize(field_number, fixed32):
  return TagByteSize(field_number) + 4


def Fixed64ByteSize(field_number, fixed64):
  return TagByteSize(field_number) + 8


def SFixed32ByteSize(field_number, sfixed32):
  return TagByteSize(field_number) + 4


def SFixed64ByteSize(field_number, sfixed64):
  return TagByteSize(field_number) + 8


def FloatByteSize(field_number, flt):
  return TagByteSize(field_number) + 4


def DoubleByteSize(field_number, double):
  return TagByteSize(field_number) + 8


def BoolByteSize(field_number, b):
  return TagByteSize(field_number) + 1


def EnumByteSize(field_number, enum):
  return UInt32ByteSize(field_number, enum)


def StringByteSize(field_number, string):
  return BytesByteSize(field_number, string.encode('utf-8'))


def BytesByteSize(field_number, b):
  return (TagByteSize(field_number)
          + _VarUInt64ByteSizeNoTag(len(b))
          + len(b))


def GroupByteSize(field_number, message):
  return (2 * TagByteSize(field_number)  # START and END group.
          + message.ByteSize())


def MessageByteSize(field_number, message):
  return (TagByteSize(field_number)
          + _VarUInt64ByteSizeNoTag(message.ByteSize())
          + message.ByteSize())


def MessageSetItemByteSize(field_number, msg):
  # First compute the sizes of the tags.
  # There are 2 tags for the beginning and ending of the repeated group, that
  # is field number 1, one with field number 2 (type_id) and one with field
  # number 3 (message).
  total_size = (2 * TagByteSize(1) + TagByteSize(2) + TagByteSize(3))

  # Add the number of bytes for type_id.
  total_size += _VarUInt64ByteSizeNoTag(field_number)

  message_size = msg.ByteSize()

  # The number of bytes for encoding the length of the message.
  total_size += _VarUInt64ByteSizeNoTag(message_size)

  # The size of the message.
  total_size += message_size
  return total_size


def TagByteSize(field_number):
  """Returns the bytes required to serialize a tag with this field number."""
  # Just pass in type 0, since the type won't affect the tag+type size.
  return _VarUInt64ByteSizeNoTag(PackTag(field_number, 0))


# Private helper function for the *ByteSize() functions above.

def _VarUInt64ByteSizeNoTag(uint64):
  """Returns the number of bytes required to serialize a single varint
  using boundary value comparisons. (unrolled loop optimization -WPierce)
  uint64 must be unsigned.
  """
  if uint64 <= 0x7f: return 1
  if uint64 <= 0x3fff: return 2
  if uint64 <= 0x1fffff: return 3
  if uint64 <= 0xfffffff: return 4
  if uint64 <= 0x7ffffffff: return 5
  if uint64 <= 0x3ffffffffff: return 6
  if uint64 <= 0x1ffffffffffff: return 7
  if uint64 <= 0xffffffffffffff: return 8
  if uint64 <= 0x7fffffffffffffff: return 9
  if uint64 > UINT64_MAX:
    raise message.EncodeError('Value out of range: %d' % uint64)
  return 10


NON_PACKABLE_TYPES = (
  descriptor.FieldDescriptor.TYPE_STRING,
  descriptor.FieldDescriptor.TYPE_GROUP,
  descriptor.FieldDescriptor.TYPE_MESSAGE,
  descriptor.FieldDescriptor.TYPE_BYTES
)


def IsTypePackable(field_type):
  """Return true iff packable = true is valid for fields of this type.

  Args:
    field_type: a FieldDescriptor::Type value.

  Returns:
    True iff fields of this type are packable.
  """
  return field_type not in NON_PACKABLE_TYPES
PK�\I��١١%protobuf/internal/json_format_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Test for google.protobuf.json_format."""

__author__ = 'jieluo@google.com (Jie Luo)'

import json
import math
import sys

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import any_pb2
from google.protobuf import duration_pb2
from google.protobuf import field_mask_pb2
from google.protobuf import struct_pb2
from google.protobuf import timestamp_pb2
from google.protobuf import wrappers_pb2
from google.protobuf import unittest_mset_pb2
from google.protobuf import unittest_pb2
from google.protobuf.internal import well_known_types
from google.protobuf import json_format
from google.protobuf.util import json_format_proto3_pb2


class JsonFormatBase(unittest.TestCase):

  def FillAllFields(self, message):
    message.int32_value = 20
    message.int64_value = -20
    message.uint32_value = 3120987654
    message.uint64_value = 12345678900
    message.float_value = float('-inf')
    message.double_value = 3.1415
    message.bool_value = True
    message.string_value = 'foo'
    message.bytes_value = b'bar'
    message.message_value.value = 10
    message.enum_value = json_format_proto3_pb2.BAR
    # Repeated
    message.repeated_int32_value.append(0x7FFFFFFF)
    message.repeated_int32_value.append(-2147483648)
    message.repeated_int64_value.append(9007199254740992)
    message.repeated_int64_value.append(-9007199254740992)
    message.repeated_uint32_value.append(0xFFFFFFF)
    message.repeated_uint32_value.append(0x7FFFFFF)
    message.repeated_uint64_value.append(9007199254740992)
    message.repeated_uint64_value.append(9007199254740991)
    message.repeated_float_value.append(0)

    message.repeated_double_value.append(1E-15)
    message.repeated_double_value.append(float('inf'))
    message.repeated_bool_value.append(True)
    message.repeated_bool_value.append(False)
    message.repeated_string_value.append('Few symbols!#$,;')
    message.repeated_string_value.append('bar')
    message.repeated_bytes_value.append(b'foo')
    message.repeated_bytes_value.append(b'bar')
    message.repeated_message_value.add().value = 10
    message.repeated_message_value.add().value = 11
    message.repeated_enum_value.append(json_format_proto3_pb2.FOO)
    message.repeated_enum_value.append(json_format_proto3_pb2.BAR)
    self.message = message

  def CheckParseBack(self, message, parsed_message):
    json_format.Parse(json_format.MessageToJson(message),
                      parsed_message)
    self.assertEqual(message, parsed_message)

  def CheckError(self, text, error_message):
    message = json_format_proto3_pb2.TestMessage()
    self.assertRaisesRegexp(
        json_format.ParseError,
        error_message,
        json_format.Parse, text, message)


class JsonFormatTest(JsonFormatBase):

  def testEmptyMessageToJson(self):
    message = json_format_proto3_pb2.TestMessage()
    self.assertEqual(json_format.MessageToJson(message),
                     '{}')
    parsed_message = json_format_proto3_pb2.TestMessage()
    self.CheckParseBack(message, parsed_message)

  def testPartialMessageToJson(self):
    message = json_format_proto3_pb2.TestMessage(
        string_value='test',
        repeated_int32_value=[89, 4])
    self.assertEqual(json.loads(json_format.MessageToJson(message)),
                     json.loads('{"stringValue": "test", '
                                '"repeatedInt32Value": [89, 4]}'))
    parsed_message = json_format_proto3_pb2.TestMessage()
    self.CheckParseBack(message, parsed_message)

  def testAllFieldsToJson(self):
    message = json_format_proto3_pb2.TestMessage()
    text = ('{"int32Value": 20, '
            '"int64Value": "-20", '
            '"uint32Value": 3120987654,'
            '"uint64Value": "12345678900",'
            '"floatValue": "-Infinity",'
            '"doubleValue": 3.1415,'
            '"boolValue": true,'
            '"stringValue": "foo",'
            '"bytesValue": "YmFy",'
            '"messageValue": {"value": 10},'
            '"enumValue": "BAR",'
            '"repeatedInt32Value": [2147483647, -2147483648],'
            '"repeatedInt64Value": ["9007199254740992", "-9007199254740992"],'
            '"repeatedUint32Value": [268435455, 134217727],'
            '"repeatedUint64Value": ["9007199254740992", "9007199254740991"],'
            '"repeatedFloatValue": [0],'
            '"repeatedDoubleValue": [1e-15, "Infinity"],'
            '"repeatedBoolValue": [true, false],'
            '"repeatedStringValue": ["Few symbols!#$,;", "bar"],'
            '"repeatedBytesValue": ["Zm9v", "YmFy"],'
            '"repeatedMessageValue": [{"value": 10}, {"value": 11}],'
            '"repeatedEnumValue": ["FOO", "BAR"]'
            '}')
    self.FillAllFields(message)
    self.assertEqual(
        json.loads(json_format.MessageToJson(message)),
        json.loads(text))
    parsed_message = json_format_proto3_pb2.TestMessage()
    json_format.Parse(text, parsed_message)
    self.assertEqual(message, parsed_message)

  def testUnknownEnumToJsonAndBack(self):
    text = '{\n  "enumValue": 999\n}'
    message = json_format_proto3_pb2.TestMessage()
    message.enum_value = 999
    self.assertEqual(json_format.MessageToJson(message),
                     text)
    parsed_message = json_format_proto3_pb2.TestMessage()
    json_format.Parse(text, parsed_message)
    self.assertEqual(message, parsed_message)

  def testExtensionToJsonAndBack(self):
    message = unittest_mset_pb2.TestMessageSetContainer()
    ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension
    ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension
    message.message_set.Extensions[ext1].i = 23
    message.message_set.Extensions[ext2].str = 'foo'
    message_text = json_format.MessageToJson(
        message
    )
    parsed_message = unittest_mset_pb2.TestMessageSetContainer()
    json_format.Parse(message_text, parsed_message)
    self.assertEqual(message, parsed_message)

  def testExtensionErrors(self):
    self.CheckError('{"[extensionField]": {}}',
                    'Message type proto3.TestMessage does not have extensions')

  def testExtensionToDictAndBack(self):
    message = unittest_mset_pb2.TestMessageSetContainer()
    ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension
    ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension
    message.message_set.Extensions[ext1].i = 23
    message.message_set.Extensions[ext2].str = 'foo'
    message_dict = json_format.MessageToDict(
        message
    )
    parsed_message = unittest_mset_pb2.TestMessageSetContainer()
    json_format.ParseDict(message_dict, parsed_message)
    self.assertEqual(message, parsed_message)

  def testExtensionSerializationDictMatchesProto3Spec(self):
    """See go/proto3-json-spec for spec.
    """
    message = unittest_mset_pb2.TestMessageSetContainer()
    ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension
    ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension
    message.message_set.Extensions[ext1].i = 23
    message.message_set.Extensions[ext2].str = 'foo'
    message_dict = json_format.MessageToDict(
        message
    )
    golden_dict = {
        'messageSet': {
            '[protobuf_unittest.'
            'TestMessageSetExtension1.messageSetExtension]': {
                'i': 23,
            },
            '[protobuf_unittest.'
            'TestMessageSetExtension2.messageSetExtension]': {
                'str': u'foo',
            },
        },
    }
    self.assertEqual(golden_dict, message_dict)


  def testExtensionSerializationJsonMatchesProto3Spec(self):
    """See go/proto3-json-spec for spec.
    """
    message = unittest_mset_pb2.TestMessageSetContainer()
    ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension
    ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension
    message.message_set.Extensions[ext1].i = 23
    message.message_set.Extensions[ext2].str = 'foo'
    message_text = json_format.MessageToJson(
        message
    )
    ext1_text = ('protobuf_unittest.TestMessageSetExtension1.'
                 'messageSetExtension')
    ext2_text = ('protobuf_unittest.TestMessageSetExtension2.'
                 'messageSetExtension')
    golden_text = ('{"messageSet": {'
                   '    "[%s]": {'
                   '        "i": 23'
                   '    },'
                   '    "[%s]": {'
                   '        "str": "foo"'
                   '    }'
                   '}}') % (ext1_text, ext2_text)
    self.assertEqual(json.loads(golden_text), json.loads(message_text))


  def testJsonEscapeString(self):
    message = json_format_proto3_pb2.TestMessage()
    if sys.version_info[0] < 3:
      message.string_value = '&\n<\"\r>\b\t\f\\\001/\xe2\x80\xa8\xe2\x80\xa9'
    else:
      message.string_value = '&\n<\"\r>\b\t\f\\\001/'
      message.string_value += (b'\xe2\x80\xa8\xe2\x80\xa9').decode('utf-8')
    self.assertEqual(
        json_format.MessageToJson(message),
        '{\n  "stringValue": '
        '"&\\n<\\\"\\r>\\b\\t\\f\\\\\\u0001/\\u2028\\u2029"\n}')
    parsed_message = json_format_proto3_pb2.TestMessage()
    self.CheckParseBack(message, parsed_message)
    text = u'{"int32Value": "\u0031"}'
    json_format.Parse(text, message)
    self.assertEqual(message.int32_value, 1)

  def testAlwaysSeriliaze(self):
    message = json_format_proto3_pb2.TestMessage(
        string_value='foo')
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads('{'
                   '"repeatedStringValue": [],'
                   '"stringValue": "foo",'
                   '"repeatedBoolValue": [],'
                   '"repeatedUint32Value": [],'
                   '"repeatedInt32Value": [],'
                   '"enumValue": "FOO",'
                   '"int32Value": 0,'
                   '"floatValue": 0,'
                   '"int64Value": "0",'
                   '"uint32Value": 0,'
                   '"repeatedBytesValue": [],'
                   '"repeatedUint64Value": [],'
                   '"repeatedDoubleValue": [],'
                   '"bytesValue": "",'
                   '"boolValue": false,'
                   '"repeatedEnumValue": [],'
                   '"uint64Value": "0",'
                   '"doubleValue": 0,'
                   '"repeatedFloatValue": [],'
                   '"repeatedInt64Value": [],'
                   '"repeatedMessageValue": []}'))
    parsed_message = json_format_proto3_pb2.TestMessage()
    self.CheckParseBack(message, parsed_message)

  def testIntegersRepresentedAsFloat(self):
    message = json_format_proto3_pb2.TestMessage()
    json_format.Parse('{"int32Value": -2.147483648e9}', message)
    self.assertEqual(message.int32_value, -2147483648)
    json_format.Parse('{"int32Value": 1e5}', message)
    self.assertEqual(message.int32_value, 100000)
    json_format.Parse('{"int32Value": 1.0}', message)
    self.assertEqual(message.int32_value, 1)

  def testMapFields(self):
    message = json_format_proto3_pb2.TestNestedMap()
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads('{'
                   '"boolMap": {},'
                   '"int32Map": {},'
                   '"int64Map": {},'
                   '"uint32Map": {},'
                   '"uint64Map": {},'
                   '"stringMap": {},'
                   '"mapMap": {}'
                   '}'))
    message.bool_map[True] = 1
    message.bool_map[False] = 2
    message.int32_map[1] = 2
    message.int32_map[2] = 3
    message.int64_map[1] = 2
    message.int64_map[2] = 3
    message.uint32_map[1] = 2
    message.uint32_map[2] = 3
    message.uint64_map[1] = 2
    message.uint64_map[2] = 3
    message.string_map['1'] = 2
    message.string_map['null'] = 3
    message.map_map['1'].bool_map[True] = 3
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, False)),
        json.loads('{'
                   '"boolMap": {"false": 2, "true": 1},'
                   '"int32Map": {"1": 2, "2": 3},'
                   '"int64Map": {"1": 2, "2": 3},'
                   '"uint32Map": {"1": 2, "2": 3},'
                   '"uint64Map": {"1": 2, "2": 3},'
                   '"stringMap": {"1": 2, "null": 3},'
                   '"mapMap": {"1": {"boolMap": {"true": 3}}}'
                   '}'))
    parsed_message = json_format_proto3_pb2.TestNestedMap()
    self.CheckParseBack(message, parsed_message)

  def testOneofFields(self):
    message = json_format_proto3_pb2.TestOneof()
    # Always print does not affect oneof fields.
    self.assertEqual(
        json_format.MessageToJson(message, True),
        '{}')
    message.oneof_int32_value = 0
    self.assertEqual(
        json_format.MessageToJson(message, True),
        '{\n'
        '  "oneofInt32Value": 0\n'
        '}')
    parsed_message = json_format_proto3_pb2.TestOneof()
    self.CheckParseBack(message, parsed_message)

  def testSurrogates(self):
    # Test correct surrogate handling.
    message = json_format_proto3_pb2.TestMessage()
    json_format.Parse('{"stringValue": "\\uD83D\\uDE01"}', message)
    self.assertEqual(message.string_value,
                     b'\xF0\x9F\x98\x81'.decode('utf-8', 'strict'))

    # Error case: unpaired high surrogate.
    self.CheckError(
        '{"stringValue": "\\uD83D"}',
        r'Invalid \\uXXXX escape|Unpaired.*surrogate')

    # Unpaired low surrogate.
    self.CheckError(
        '{"stringValue": "\\uDE01"}',
        r'Invalid \\uXXXX escape|Unpaired.*surrogate')

  def testTimestampMessage(self):
    message = json_format_proto3_pb2.TestTimestamp()
    message.value.seconds = 0
    message.value.nanos = 0
    message.repeated_value.add().seconds = 20
    message.repeated_value[0].nanos = 1
    message.repeated_value.add().seconds = 0
    message.repeated_value[1].nanos = 10000
    message.repeated_value.add().seconds = 100000000
    message.repeated_value[2].nanos = 0
    # Maximum time
    message.repeated_value.add().seconds = 253402300799
    message.repeated_value[3].nanos = 999999999
    # Minimum time
    message.repeated_value.add().seconds = -62135596800
    message.repeated_value[4].nanos = 0
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads('{'
                   '"value": "1970-01-01T00:00:00Z",'
                   '"repeatedValue": ['
                   '  "1970-01-01T00:00:20.000000001Z",'
                   '  "1970-01-01T00:00:00.000010Z",'
                   '  "1973-03-03T09:46:40Z",'
                   '  "9999-12-31T23:59:59.999999999Z",'
                   '  "0001-01-01T00:00:00Z"'
                   ']'
                   '}'))
    parsed_message = json_format_proto3_pb2.TestTimestamp()
    self.CheckParseBack(message, parsed_message)
    text = (r'{"value": "1970-01-01T00:00:00.01+08:00",'
            r'"repeatedValue":['
            r'  "1970-01-01T00:00:00.01+08:30",'
            r'  "1970-01-01T00:00:00.01-01:23"]}')
    json_format.Parse(text, parsed_message)
    self.assertEqual(parsed_message.value.seconds, -8 * 3600)
    self.assertEqual(parsed_message.value.nanos, 10000000)
    self.assertEqual(parsed_message.repeated_value[0].seconds, -8.5 * 3600)
    self.assertEqual(parsed_message.repeated_value[1].seconds, 3600 + 23 * 60)

  def testDurationMessage(self):
    message = json_format_proto3_pb2.TestDuration()
    message.value.seconds = 1
    message.repeated_value.add().seconds = 0
    message.repeated_value[0].nanos = 10
    message.repeated_value.add().seconds = -1
    message.repeated_value[1].nanos = -1000
    message.repeated_value.add().seconds = 10
    message.repeated_value[2].nanos = 11000000
    message.repeated_value.add().seconds = -315576000000
    message.repeated_value.add().seconds = 315576000000
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads('{'
                   '"value": "1s",'
                   '"repeatedValue": ['
                   '  "0.000000010s",'
                   '  "-1.000001s",'
                   '  "10.011s",'
                   '  "-315576000000s",'
                   '  "315576000000s"'
                   ']'
                   '}'))
    parsed_message = json_format_proto3_pb2.TestDuration()
    self.CheckParseBack(message, parsed_message)

  def testFieldMaskMessage(self):
    message = json_format_proto3_pb2.TestFieldMask()
    message.value.paths.append('foo.bar')
    message.value.paths.append('bar')
    self.assertEqual(
        json_format.MessageToJson(message, True),
        '{\n'
        '  "value": "foo.bar,bar"\n'
        '}')
    parsed_message = json_format_proto3_pb2.TestFieldMask()
    self.CheckParseBack(message, parsed_message)

  def testWrapperMessage(self):
    message = json_format_proto3_pb2.TestWrapper()
    message.bool_value.value = False
    message.int32_value.value = 0
    message.string_value.value = ''
    message.bytes_value.value = b''
    message.repeated_bool_value.add().value = True
    message.repeated_bool_value.add().value = False
    message.repeated_int32_value.add()
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads('{\n'
                   '  "int32Value": 0,'
                   '  "boolValue": false,'
                   '  "stringValue": "",'
                   '  "bytesValue": "",'
                   '  "repeatedBoolValue": [true, false],'
                   '  "repeatedInt32Value": [0],'
                   '  "repeatedUint32Value": [],'
                   '  "repeatedFloatValue": [],'
                   '  "repeatedDoubleValue": [],'
                   '  "repeatedBytesValue": [],'
                   '  "repeatedInt64Value": [],'
                   '  "repeatedUint64Value": [],'
                   '  "repeatedStringValue": []'
                   '}'))
    parsed_message = json_format_proto3_pb2.TestWrapper()
    self.CheckParseBack(message, parsed_message)

  def testStructMessage(self):
    message = json_format_proto3_pb2.TestStruct()
    message.value['name'] = 'Jim'
    message.value['age'] = 10
    message.value['attend'] = True
    message.value['email'] = None
    message.value.get_or_create_struct('address')['city'] = 'SFO'
    message.value['address']['house_number'] = 1024
    struct_list = message.value.get_or_create_list('list')
    struct_list.extend([6, 'seven', True, False, None])
    struct_list.add_struct()['subkey2'] = 9
    message.repeated_value.add()['age'] = 11
    message.repeated_value.add()
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, False)),
        json.loads(
            '{'
            '  "value": {'
            '    "address": {'
            '      "city": "SFO", '
            '      "house_number": 1024'
            '    }, '
            '    "age": 10, '
            '    "name": "Jim", '
            '    "attend": true, '
            '    "email": null, '
            '    "list": [6, "seven", true, false, null, {"subkey2": 9}]'
            '  },'
            '  "repeatedValue": [{"age": 11}, {}]'
            '}'))
    parsed_message = json_format_proto3_pb2.TestStruct()
    self.CheckParseBack(message, parsed_message)

  def testValueMessage(self):
    message = json_format_proto3_pb2.TestValue()
    message.value.string_value = 'hello'
    message.repeated_value.add().number_value = 11.1
    message.repeated_value.add().bool_value = False
    message.repeated_value.add().null_value = 0
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, False)),
        json.loads(
            '{'
            '  "value": "hello",'
            '  "repeatedValue": [11.1, false, null]'
            '}'))
    parsed_message = json_format_proto3_pb2.TestValue()
    self.CheckParseBack(message, parsed_message)
    # Can't parse back if the Value message is not set.
    message.repeated_value.add()
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, False)),
        json.loads(
            '{'
            '  "value": "hello",'
            '  "repeatedValue": [11.1, false, null, null]'
            '}'))
    message.Clear()
    json_format.Parse('{"value": null}', message)
    self.assertEqual(message.value.WhichOneof('kind'), 'null_value')

  def testListValueMessage(self):
    message = json_format_proto3_pb2.TestListValue()
    message.value.values.add().number_value = 11.1
    message.value.values.add().null_value = 0
    message.value.values.add().bool_value = True
    message.value.values.add().string_value = 'hello'
    message.value.values.add().struct_value['name'] = 'Jim'
    message.repeated_value.add().values.add().number_value = 1
    message.repeated_value.add()
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, False)),
        json.loads(
            '{"value": [11.1, null, true, "hello", {"name": "Jim"}]\n,'
            '"repeatedValue": [[1], []]}'))
    parsed_message = json_format_proto3_pb2.TestListValue()
    self.CheckParseBack(message, parsed_message)

  def testAnyMessage(self):
    message = json_format_proto3_pb2.TestAny()
    value1 = json_format_proto3_pb2.MessageType()
    value2 = json_format_proto3_pb2.MessageType()
    value1.value = 1234
    value2.value = 5678
    message.value.Pack(value1)
    message.repeated_value.add().Pack(value1)
    message.repeated_value.add().Pack(value2)
    message.repeated_value.add()
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads(
            '{\n'
            '  "repeatedValue": [ {\n'
            '    "@type": "type.googleapis.com/proto3.MessageType",\n'
            '    "value": 1234\n'
            '  }, {\n'
            '    "@type": "type.googleapis.com/proto3.MessageType",\n'
            '    "value": 5678\n'
            '  },\n'
            '  {}],\n'
            '  "value": {\n'
            '    "@type": "type.googleapis.com/proto3.MessageType",\n'
            '    "value": 1234\n'
            '  }\n'
            '}\n'))
    parsed_message = json_format_proto3_pb2.TestAny()
    self.CheckParseBack(message, parsed_message)
    # Must print @type first
    test_message = json_format_proto3_pb2.TestMessage(
        bool_value=True,
        int32_value=20,
        int64_value=-20,
        uint32_value=20,
        uint64_value=20,
        double_value=3.14,
        string_value='foo')
    message.Clear()
    message.value.Pack(test_message)
    self.assertEqual(
        json_format.MessageToJson(message, False)[0:68],
        '{\n'
        '  "value": {\n'
        '    "@type": "type.googleapis.com/proto3.TestMessage"')

  def testWellKnownInAnyMessage(self):
    message = any_pb2.Any()
    int32_value = wrappers_pb2.Int32Value()
    int32_value.value = 1234
    message.Pack(int32_value)
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads(
            '{\n'
            '  "@type": \"type.googleapis.com/google.protobuf.Int32Value\",\n'
            '  "value": 1234\n'
            '}\n'))
    parsed_message = any_pb2.Any()
    self.CheckParseBack(message, parsed_message)

    timestamp = timestamp_pb2.Timestamp()
    message.Pack(timestamp)
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads(
            '{\n'
            '  "@type": "type.googleapis.com/google.protobuf.Timestamp",\n'
            '  "value": "1970-01-01T00:00:00Z"\n'
            '}\n'))
    self.CheckParseBack(message, parsed_message)

    duration = duration_pb2.Duration()
    duration.seconds = 1
    message.Pack(duration)
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads(
            '{\n'
            '  "@type": "type.googleapis.com/google.protobuf.Duration",\n'
            '  "value": "1s"\n'
            '}\n'))
    self.CheckParseBack(message, parsed_message)

    field_mask = field_mask_pb2.FieldMask()
    field_mask.paths.append('foo.bar')
    field_mask.paths.append('bar')
    message.Pack(field_mask)
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads(
            '{\n'
            '  "@type": "type.googleapis.com/google.protobuf.FieldMask",\n'
            '  "value": "foo.bar,bar"\n'
            '}\n'))
    self.CheckParseBack(message, parsed_message)

    struct_message = struct_pb2.Struct()
    struct_message['name'] = 'Jim'
    message.Pack(struct_message)
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads(
            '{\n'
            '  "@type": "type.googleapis.com/google.protobuf.Struct",\n'
            '  "value": {"name": "Jim"}\n'
            '}\n'))
    self.CheckParseBack(message, parsed_message)

    nested_any = any_pb2.Any()
    int32_value.value = 5678
    nested_any.Pack(int32_value)
    message.Pack(nested_any)
    self.assertEqual(
        json.loads(json_format.MessageToJson(message, True)),
        json.loads(
            '{\n'
            '  "@type": "type.googleapis.com/google.protobuf.Any",\n'
            '  "value": {\n'
            '    "@type": "type.googleapis.com/google.protobuf.Int32Value",\n'
            '    "value": 5678\n'
            '  }\n'
            '}\n'))
    self.CheckParseBack(message, parsed_message)

  def testParseNull(self):
    message = json_format_proto3_pb2.TestMessage()
    parsed_message = json_format_proto3_pb2.TestMessage()
    self.FillAllFields(parsed_message)
    json_format.Parse('{"int32Value": null, '
                      '"int64Value": null, '
                      '"uint32Value": null,'
                      '"uint64Value": null,'
                      '"floatValue": null,'
                      '"doubleValue": null,'
                      '"boolValue": null,'
                      '"stringValue": null,'
                      '"bytesValue": null,'
                      '"messageValue": null,'
                      '"enumValue": null,'
                      '"repeatedInt32Value": null,'
                      '"repeatedInt64Value": null,'
                      '"repeatedUint32Value": null,'
                      '"repeatedUint64Value": null,'
                      '"repeatedFloatValue": null,'
                      '"repeatedDoubleValue": null,'
                      '"repeatedBoolValue": null,'
                      '"repeatedStringValue": null,'
                      '"repeatedBytesValue": null,'
                      '"repeatedMessageValue": null,'
                      '"repeatedEnumValue": null'
                      '}',
                      parsed_message)
    self.assertEqual(message, parsed_message)
    # Null and {} should have different behavior for sub message.
    self.assertFalse(parsed_message.HasField('message_value'))
    json_format.Parse('{"messageValue": {}}', parsed_message)
    self.assertTrue(parsed_message.HasField('message_value'))
    # Null is not allowed to be used as an element in repeated field.
    self.assertRaisesRegexp(
        json_format.ParseError,
        'Failed to parse repeatedInt32Value field: '
        'null is not allowed to be used as an element in a repeated field.',
        json_format.Parse,
        '{"repeatedInt32Value":[1, null]}',
        parsed_message)
    self.CheckError('{"repeatedMessageValue":[null]}',
                    'Failed to parse repeatedMessageValue field: null is not'
                    ' allowed to be used as an element in a repeated field.')

  def testNanFloat(self):
    message = json_format_proto3_pb2.TestMessage()
    message.float_value = float('nan')
    text = '{\n  "floatValue": "NaN"\n}'
    self.assertEqual(json_format.MessageToJson(message), text)
    parsed_message = json_format_proto3_pb2.TestMessage()
    json_format.Parse(text, parsed_message)
    self.assertTrue(math.isnan(parsed_message.float_value))

  def testParseEmptyText(self):
    self.CheckError('',
                    r'Failed to load JSON: (Expecting value)|(No JSON).')

  def testParseEnumValue(self):
    message = json_format_proto3_pb2.TestMessage()
    text = '{"enumValue": 0}'
    json_format.Parse(text, message)
    text = '{"enumValue": 1}'
    json_format.Parse(text, message)
    self.CheckError(
        '{"enumValue": "baz"}',
        'Failed to parse enumValue field: Invalid enum value baz '
        'for enum type proto3.EnumType.')
    # Proto3 accepts numeric unknown enums.
    text = '{"enumValue": 12345}'
    json_format.Parse(text, message)
    # Proto2 does not accept unknown enums.
    message = unittest_pb2.TestAllTypes()
    self.assertRaisesRegexp(
        json_format.ParseError,
        'Failed to parse optionalNestedEnum field: Invalid enum value 12345 '
        'for enum type protobuf_unittest.TestAllTypes.NestedEnum.',
        json_format.Parse, '{"optionalNestedEnum": 12345}', message)

  def testParseBadIdentifer(self):
    self.CheckError('{int32Value: 1}',
                    (r'Failed to load JSON: Expecting property name'
                     r'( enclosed in double quotes)?: line 1'))
    self.CheckError('{"unknownName": 1}',
                    'Message type "proto3.TestMessage" has no field named '
                    '"unknownName".')

  def testIgnoreUnknownField(self):
    text = '{"unknownName": 1}'
    parsed_message = json_format_proto3_pb2.TestMessage()
    json_format.Parse(text, parsed_message, ignore_unknown_fields=True)
    text = ('{\n'
            '  "repeatedValue": [ {\n'
            '    "@type": "type.googleapis.com/proto3.MessageType",\n'
            '    "unknownName": 1\n'
            '  }]\n'
            '}\n')
    parsed_message = json_format_proto3_pb2.TestAny()
    json_format.Parse(text, parsed_message, ignore_unknown_fields=True)

  def testDuplicateField(self):
    # Duplicate key check is not supported for python2.6
    if sys.version_info < (2, 7):
      return
    self.CheckError('{"int32Value": 1,\n"int32Value":2}',
                    'Failed to load JSON: duplicate key int32Value.')

  def testInvalidBoolValue(self):
    self.CheckError('{"boolValue": 1}',
                    'Failed to parse boolValue field: '
                    'Expected true or false without quotes.')
    self.CheckError('{"boolValue": "true"}',
                    'Failed to parse boolValue field: '
                    'Expected true or false without quotes.')

  def testInvalidIntegerValue(self):
    message = json_format_proto3_pb2.TestMessage()
    text = '{"int32Value": 0x12345}'
    self.assertRaises(json_format.ParseError,
                      json_format.Parse, text, message)
    self.CheckError('{"int32Value": 1.5}',
                    'Failed to parse int32Value field: '
                    'Couldn\'t parse integer: 1.5.')
    self.CheckError('{"int32Value": 012345}',
                    (r'Failed to load JSON: Expecting \'?,\'? delimiter: '
                     r'line 1.'))
    self.CheckError('{"int32Value": " 1 "}',
                    'Failed to parse int32Value field: '
                    'Couldn\'t parse integer: " 1 ".')
    self.CheckError('{"int32Value": "1 "}',
                    'Failed to parse int32Value field: '
                    'Couldn\'t parse integer: "1 ".')
    self.CheckError('{"int32Value": 12345678901234567890}',
                    'Failed to parse int32Value field: Value out of range: '
                    '12345678901234567890.')
    self.CheckError('{"uint32Value": -1}',
                    'Failed to parse uint32Value field: '
                    'Value out of range: -1.')

  def testInvalidFloatValue(self):
    self.CheckError('{"floatValue": "nan"}',
                    'Failed to parse floatValue field: Couldn\'t '
                    'parse float "nan", use "NaN" instead.')

  def testInvalidBytesValue(self):
    self.CheckError('{"bytesValue": "AQI"}',
                    'Failed to parse bytesValue field: Incorrect padding.')
    self.CheckError('{"bytesValue": "AQI*"}',
                    'Failed to parse bytesValue field: Incorrect padding.')

  def testInvalidRepeated(self):
    self.CheckError('{"repeatedInt32Value": 12345}',
                    (r'Failed to parse repeatedInt32Value field: repeated field'
                     r' repeatedInt32Value must be in \[\] which is 12345.'))

  def testInvalidMap(self):
    message = json_format_proto3_pb2.TestMap()
    text = '{"int32Map": {"null": 2, "2": 3}}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        'Failed to parse int32Map field: invalid literal',
        json_format.Parse, text, message)
    text = '{"int32Map": {1: 2, "2": 3}}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        (r'Failed to load JSON: Expecting property name'
         r'( enclosed in double quotes)?: line 1'),
        json_format.Parse, text, message)
    text = '{"boolMap": {"null": 1}}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        'Failed to parse boolMap field: Expected "true" or "false", not null.',
        json_format.Parse, text, message)
    if sys.version_info < (2, 7):
      return
    text = r'{"stringMap": {"a": 3, "\u0061": 2}}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        'Failed to load JSON: duplicate key a',
        json_format.Parse, text, message)
    text = r'{"stringMap": 0}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        'Failed to parse stringMap field: Map field string_map must be '
        'in a dict which is 0.',
        json_format.Parse, text, message)

  def testInvalidTimestamp(self):
    message = json_format_proto3_pb2.TestTimestamp()
    text = '{"value": "10000-01-01T00:00:00.00Z"}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        'time data \'10000-01-01T00:00:00\' does not match'
        ' format \'%Y-%m-%dT%H:%M:%S\'.',
        json_format.Parse, text, message)
    text = '{"value": "1970-01-01T00:00:00.0123456789012Z"}'
    self.assertRaisesRegexp(
        well_known_types.ParseError,
        'nanos 0123456789012 more than 9 fractional digits.',
        json_format.Parse, text, message)
    text = '{"value": "1972-01-01T01:00:00.01+08"}'
    self.assertRaisesRegexp(
        well_known_types.ParseError,
        (r'Invalid timezone offset value: \+08.'),
        json_format.Parse, text, message)
    # Time smaller than minimum time.
    text = '{"value": "0000-01-01T00:00:00Z"}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        'Failed to parse value field: year (0 )?is out of range.',
        json_format.Parse, text, message)
    # Time bigger than maxinum time.
    message.value.seconds = 253402300800
    self.assertRaisesRegexp(
        OverflowError,
        'date value out of range',
        json_format.MessageToJson, message)

  def testInvalidOneof(self):
    message = json_format_proto3_pb2.TestOneof()
    text = '{"oneofInt32Value": 1, "oneofStringValue": "2"}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        'Message type "proto3.TestOneof"'
        ' should not have multiple "oneof_value" oneof fields.',
        json_format.Parse, text, message)

  def testInvalidListValue(self):
    message = json_format_proto3_pb2.TestListValue()
    text = '{"value": 1234}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        r'Failed to parse value field: ListValue must be in \[\] which is 1234',
        json_format.Parse, text, message)

  def testInvalidStruct(self):
    message = json_format_proto3_pb2.TestStruct()
    text = '{"value": 1234}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        'Failed to parse value field: Struct must be in a dict which is 1234',
        json_format.Parse, text, message)

  def testInvalidAny(self):
    message = any_pb2.Any()
    text = '{"@type": "type.googleapis.com/google.protobuf.Int32Value"}'
    self.assertRaisesRegexp(
        KeyError,
        'value',
        json_format.Parse, text, message)
    text = '{"value": 1234}'
    self.assertRaisesRegexp(
        json_format.ParseError,
        '@type is missing when parsing any message.',
        json_format.Parse, text, message)
    text = '{"@type": "type.googleapis.com/MessageNotExist", "value": 1234}'
    self.assertRaisesRegexp(
        TypeError,
        'Can not find message descriptor by type_url: '
        'type.googleapis.com/MessageNotExist.',
        json_format.Parse, text, message)
    # Only last part is to be used: b/25630112
    text = (r'{"@type": "incorrect.googleapis.com/google.protobuf.Int32Value",'
            r'"value": 1234}')
    json_format.Parse(text, message)

  def testPreservingProtoFieldNames(self):
    message = json_format_proto3_pb2.TestMessage()
    message.int32_value = 12345
    self.assertEqual('{\n  "int32Value": 12345\n}',
                     json_format.MessageToJson(message))
    self.assertEqual('{\n  "int32_value": 12345\n}',
                     json_format.MessageToJson(message, False, True))
    # When including_default_value_fields is True.
    message = json_format_proto3_pb2.TestTimestamp()
    self.assertEqual('{\n  "repeatedValue": []\n}',
                     json_format.MessageToJson(message, True, False))
    self.assertEqual('{\n  "repeated_value": []\n}',
                     json_format.MessageToJson(message, True, True))

    # Parsers accept both original proto field names and lowerCamelCase names.
    message = json_format_proto3_pb2.TestMessage()
    json_format.Parse('{"int32Value": 54321}', message)
    self.assertEqual(54321, message.int32_value)
    json_format.Parse('{"int32_value": 12345}', message)
    self.assertEqual(12345, message.int32_value)

  def testIndent(self):
    message = json_format_proto3_pb2.TestMessage()
    message.int32_value = 12345
    self.assertEqual('{\n"int32Value": 12345\n}',
                     json_format.MessageToJson(message, indent=0))

  def testParseDict(self):
    expected = 12345
    js_dict = {'int32Value': expected}
    message = json_format_proto3_pb2.TestMessage()
    json_format.ParseDict(js_dict, message)
    self.assertEqual(expected, message.int32_value)

  def testMessageToDict(self):
    message = json_format_proto3_pb2.TestMessage()
    message.int32_value = 12345
    expected = {'int32Value': 12345}
    self.assertEqual(expected,
                     json_format.MessageToDict(message))

  def testJsonName(self):
    message = json_format_proto3_pb2.TestCustomJsonName()
    message.value = 12345
    self.assertEqual('{\n  "@value": 12345\n}',
                     json_format.MessageToJson(message))
    parsed_message = json_format_proto3_pb2.TestCustomJsonName()
    self.CheckParseBack(message, parsed_message)

  def testSortKeys(self):
    # Testing sort_keys is not perfectly working, as by random luck we could
    # get the output sorted. We just use a selection of names.
    message = json_format_proto3_pb2.TestMessage(bool_value=True,
                                                 int32_value=1,
                                                 int64_value=3,
                                                 uint32_value=4,
                                                 string_value='bla')
    self.assertEqual(
        json_format.MessageToJson(message, sort_keys=True),
        # We use json.dumps() instead of a hardcoded string due to differences
        # between Python 2 and Python 3.
        json.dumps({'boolValue': True, 'int32Value': 1, 'int64Value': '3',
                    'uint32Value': 4, 'stringValue': 'bla'},
                   indent=2, sort_keys=True))


if __name__ == '__main__':
  unittest.main()
PK�\��=R.R.#protobuf/internal/type_checkers.pycnu�[����
���hc@s�dZdZddlZddlZejr6eZnddlmZddlm	Z	ddlm
Z
ddlmZddlm
Z
e
jZd	�Zd
�Zdefd��YZd
efd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZie�ej6e�ej6e�ej6e�ej6edej �ej!6edej �ej"6ee#e$ej%�ej&6ede'�ej(6Z)iej*ej+6ej,ej-6ej.ej/6ej0ej16ej2ej36ej4ej56ej6ej76ej8ej96ej:ej;6ej<ej=6ej>ej?6ej@ejA6ejBejC6ejDejE6ejFejG6ejHejI6ejJejK6ejLejM6ZNie
jOej+6e
jPej-6e
jQej/6e
jRej16e
jSej36e
jTej56e
jUej76e
jVej96e
jWej;6e
jXej=6e
jYej?6e
jZejA6e
j[ejC6e
j\ejE6e
j]ejG6e
j^ejI6e
j_ejK6e
j`ejM6Zaie
jbej+6e
jcej-6e
jdej/6e
jeej16e
jfej36e
jgej56e
jhej76e
jiej96e
jjej;6e
jkej=6e
jlej?6e
jmejA6e
jnejC6e
joejE6e
jpejG6e
jqejI6e
jrejK6e
jsejM6Ztie	juej+6e	jvej-6e	jwej/6e	jxej16e	jyej36e	jzej56e	j{ej76e	j|ej96e	j}ej;6e	j~ej=6e	jej?6e	j�ejA6e	j�ejC6e	j�ejE6e	j�ejG6e	j�ejI6e	j�ejK6e	j�ejM6Z�iej�ej+6ej�ej-6ej�ej/6ej�ej16ej�ej36ej�ej56ej�ej76ej�ej96ej�ej;6ej�ej=6ej�ej?6ej�ejA6ej�ejC6ej�ejE6ej�ejG6ej�ejI6ej�ejK6ej�ejM6Z�dS(sProvides type checking routines.

This module defines type checking utilities in the forms of dictionaries:

VALUE_CHECKERS: A dictionary of field types and a value validation object.
TYPE_TO_BYTE_SIZE_FN: A dictionary with field types and a size computing
  function.
TYPE_TO_SERIALIZE_METHOD: A dictionary with field types and serialization
  function.
FIELD_TYPE_TO_WIRE_TYPE: A dictionary with field typed and their
  coresponding wire types.
TYPE_TO_DESERIALIZE_METHOD: A dictionary with field types and deserialization
  function.
s#robinson@google.com (Will Robinson)i����N(tapi_implementation(tdecoder(tencoder(twire_format(t
descriptorcCs|jjdkS(Ntproto3(tcontaining_typetsyntax(tfield_descriptor((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pytSupportsOpenEnums>scCso|jtjkr+|jtjkr+t�S|jtjkrdt|�rTttj	St
|j�Snt|jS(s
Returns a type checker for a message field of the specified types.

  Args:
    field: FieldDescriptor object for this field.

  Returns:
    An instance of TypeChecker which can be used to verify the types
    of values assigned to a field of the specified type.
  (tcpp_typet_FieldDescriptortCPPTYPE_STRINGttypetTYPE_STRINGtUnicodeValueCheckertCPPTYPE_ENUMR	t_VALUE_CHECKERSt
CPPTYPE_INT32tEnumValueCheckert	enum_type(tfield((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pytGetTypeCheckerAs
tTypeCheckercBs eZdZd�Zd�ZRS(sType checker used to catch type errors as early as possible
  when the client is setting scalar fields in protocol messages.
  cGs
||_dS(N(t_acceptable_types(tselftacceptable_types((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt__init__bscCsAt||j�s=d|t|�|jf}t|��n|S(suType check the provided value and return it.

    The returned value might have been normalized to another type.
    s,%.1024r has type %s, but expected one of: %s(t
isinstanceRR
t	TypeError(Rtproposed_valuetmessage((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt
CheckValuees
(t__name__t
__module__t__doc__RR (((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR\s	tTypeCheckerWithDefaultcBseZd�Zd�ZRS(cGstj||�||_dS(N(RRt_default_value(Rt
default_valueR((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyRsscCs|jS(N(R%(R((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pytDefaultValuews(R!R"RR'(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR$qs	tIntValueCheckercBs eZdZd�Zd�ZRS(sFChecker used for integer fields.  Performs type-check and range check.cCs�t|tj�s=d|t|�tjf}t|��n|jt|�ko`|j	knsxt
d|��n|j|�}|S(Ns,%.1024r has type %s, but expected one of: %ssValue out of range: %d(RtnumberstIntegralR
tsixt
integer_typesRt_MINtintt_MAXt
ValueErrort_TYPE(RRR((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR �s(cCsdS(Ni((R((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR'�s(R!R"R#R R'(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR(}s	
RcBs)eZdZd�Zd�Zd�ZRS(sCChecker used for enum fields.  Performs type-check and range check.cCs
||_dS(N(t
_enum_type(RR((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR�scCslt|tj�s=d|t|�tjf}t|��nt|�|jj	krht
d|��n|S(Ns,%.1024r has type %s, but expected one of: %ssUnknown enum value: %d(RR)R*R
R+R,RR.R2tvalues_by_numberR0(RRR((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR �scCs|jjdjS(Ni(R2tvaluestnumber(R((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR'�s(R!R"R#RR R'(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR�s			RcBs eZdZd�Zd�ZRS(sgChecker used for string fields.

  Always returns a unicode value, even if the input is of type str.
  cCs�t|ttjf�sId|t|�ttjff}t|��nt|t�r�y|jd�}Wq�tk
r�td|��q�Xn|S(Ns,%.1024r has type %s, but expected one of: %ssutf-8s�%.1024r has type bytes, but isn't valid UTF-8 encoding. Non-UTF-8 strings must be converted to unicode objects before being added.(	RtbytesR+t	text_typeR
RtdecodetUnicodeDecodeErrorR0(RRR((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR �s
cCsdS(Nu((R((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR'�s(R!R"R#R R'(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR�s	tInt32ValueCheckercBseZdZdZeZRS(i�i���(R!R"R-R/R.R1(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR:�stUint32ValueCheckercBseZdZdZeZRS(iii ll��(R!R"R-R/R.R1(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR;�stInt64ValueCheckercBseZdZdZeZRS(ii?ll����ll����(R!R"R-R/tlongR1(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR<�stUint64ValueCheckercBseZdZdZeZRS(iii@ll����(R!R"R-R/R=R1(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR>�sgt(�R#t
__author__R)R+tPY3R.R=tgoogle.protobuf.internalRRRRtgoogle.protobufRtFieldDescriptorRR	RtobjectRR$R(RRR:R;R<R>Rt
CPPTYPE_INT64tCPPTYPE_UINT32tCPPTYPE_UINT64tRealtCPPTYPE_DOUBLEt
CPPTYPE_FLOATtFalsetboolR*tCPPTYPE_BOOLR6RRtDoubleByteSizetTYPE_DOUBLEt
FloatByteSizet
TYPE_FLOATt
Int64ByteSizet
TYPE_INT64tUInt64ByteSizetTYPE_UINT64t
Int32ByteSizet
TYPE_INT32tFixed64ByteSizetTYPE_FIXED64tFixed32ByteSizetTYPE_FIXED32tBoolByteSizet	TYPE_BOOLtStringByteSizeRt
GroupByteSizet
TYPE_GROUPtMessageByteSizetTYPE_MESSAGEt
BytesByteSizet
TYPE_BYTEStUInt32ByteSizetTYPE_UINT32tEnumByteSizet	TYPE_ENUMtSFixed32ByteSizet
TYPE_SFIXED32tSFixed64ByteSizet
TYPE_SFIXED64tSInt32ByteSizetTYPE_SINT32tSInt64ByteSizetTYPE_SINT64tTYPE_TO_BYTE_SIZE_FNt
DoubleEncodertFloatEncodertInt64Encodert
UInt64EncodertInt32EncodertFixed64EncodertFixed32EncodertBoolEncodert
StringEncodertGroupEncodertMessageEncodertBytesEncodert
UInt32EncodertEnumEncodertSFixed32EncodertSFixed64Encodert
SInt32Encodert
SInt64EncodertTYPE_TO_ENCODERtDoubleSizert
FloatSizert
Int64SizertUInt64Sizert
Int32SizertFixed64SizertFixed32Sizert	BoolSizertStringSizert
GroupSizertMessageSizert
BytesSizertUInt32Sizert	EnumSizert
SFixed32Sizert
SFixed64SizertSInt32SizertSInt64Sizert
TYPE_TO_SIZERt
DoubleDecodertFloatDecodertInt64Decodert
UInt64DecodertInt32DecodertFixed64DecodertFixed32DecodertBoolDecodert
StringDecodertGroupDecodertMessageDecodertBytesDecodert
UInt32DecodertEnumDecodertSFixed32DecodertSFixed64Decodert
SInt32Decodert
SInt64DecodertTYPE_TO_DECODERtWIRETYPE_FIXED64tWIRETYPE_FIXED32tWIRETYPE_VARINTtWIRETYPE_LENGTH_DELIMITEDtWIRETYPE_START_GROUPtFIELD_TYPE_TO_WIRE_TYPE(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt<module>,s					
























































































PK�\$
:�����%protobuf/internal/reflection_test.pyonu�[����
���hc@stdZddlZddlZddlZddlZddlZyddlZWnek
rqddlZnXddl	m
Z
ddl	mZddl	mZddl	m
Z
ddl	mZddl	mZdd	l	mZdd
l	mZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZejZdefd��YZdefd��YZdefd��YZdefd��YZ defd��YZ!defd��YZ"defd ��YZ#d!efd"��YZ$d#efd$��YZ%d%efd&��YZ&e'd'krpej(�ndS((siUnittest for reflection.py, which also indirectly tests the output of the
pure-Python protocol compiler.
i����N(tunittest_import_pb2(tunittest_mset_pb2(tunittest_pb2(tdescriptor_pb2(t
descriptor(tmessage(t
reflection(ttext_format(tapi_implementation(tmore_extensions_pb2(tmore_messages_pb2(tmessage_set_extensions_pb2(twire_format(t	test_util(ttesting_refleaks(tdecodert_MiniDecodercBskeZdZd�Zd�ZeZeZeZeZd�Z	e	Z
d�Zd�Zd�Z
d�ZRS(s�Decodes a stream of values from a string.

  Once upon a time we actually had a class called decoder.Decoder.  Then we
  got rid of it during a redesign that made decoding much, much faster overall.
  But a couple tests in this file used it to check that the serialized form of
  a message was correct.  So, this class implements just the methods that were
  used by said tests, so that we don't have to rewrite the tests.
  cCs||_d|_dS(Ni(t_bytest_pos(tselftbytes((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt__init__Os	cCs%tj|j|j�\}|_|S(N(Rt
_DecodeVarintRR(Rtresult((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt
ReadVarintSs!cCstj|j��S(N(RtZigZagDecodeR(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt
ReadSInt64\scCstj|j��S(N(Rt	UnpackTagR(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytReadFieldNumberAndWireTypeascCs=tjd|j|j|jd!�d}|jd7_|S(Ns<fii(tstructtunpackRR(RR((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt	ReadFloatds*cCs=tjd|j|j|jd!�d}|jd7_|S(Ns<dii(RRRR(RR((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt
ReadDoubleis*cCs|jt|j�kS(N(RtlenR(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytEndOfStreamns(t__name__t
__module__t__doc__RRt	ReadInt32t	ReadInt64t
ReadUInt32t
ReadUInt64Rt
ReadSInt32RRR R"(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyREs						tReflectionTestcBsSeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6d5�Z7d6�Z8d7�Z9d8�Z:d9�Z;d:�Z<d;�Z=d<�Z>d=�Z?d>�Z@d?�ZAd@�ZBdA�ZCdB�ZDdC�ZEdD�ZFdE�ZGdF�ZHdG�ZIdH�ZJdI�ZKdJ�ZLdK�ZMdL�ZNdM�ZOdN�ZPd[dO�ZRdP�ZSeTjUeVjW�dQkp	eVjX�dRkdS�dT��ZYdU�ZZdV�Z[dW�Z\dX�Z]dY�Z^dZ�Z_RS(\cCsU|jt|�t|��x2tt|��D]}|j||||�q/WdS(N(tassertEqualR!trange(Rtvaluestothersti((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytassertListsEqualtsc	Cswtjdddddddd�}|jd|j�|jd|j�|jd|j�|j|jd��dS(Ntoptional_int32itoptional_doubleg+�)K@toptional_stringtoptional_float(	RtTestAllTypestNoneR,R2R3R4tassertFalsetHasField(Rtproto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestScalarConstructorys		cCs�tjdddddgdddgd	tttgd
dgdd�}|jddddgt|j��|jddgt|j��|jtttgt|j	��|jdgt|j
��|jgt|j��dS(
Ntrepeated_int32iiiitrepeated_doubleg�G�z��?g+�)K@t
repeated_booltrepeated_stringR4trepeated_float(RR6tTruetFalseR7R,tlistR<R=R>R?R@(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalarConstructor�s			%"cCs�tjdtjjdtjj�tjjdtjj�gdtjdd�tjdd�tjdd�gdtjj�tjjd	d
�tjjd	d�g�}|jtjjdtjj�tjjdtjj�gt|j	��|jtjdd�tjdd�tjdd�gt|j
��|jtjj�tjjd	d
�tjjd	d�gt|j��dS(Ntrepeated_nested_messagetbbtrepeated_foreign_messagetci���i�it
repeatedgrouptaii(RR6t
NestedMessagetFOOtBARtForeignMessaget
RepeatedGroupR,RCRERGRI(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt testRepeatedCompositeConstructor�s6	cCs�tjdddddddgdtttgdtjjd	tjj�tjjd	tjj�gd
tjdd�tjdd
�tjdd�gdd�}|j	d|j
�|j	d|j�|j	ddgt|j
��|j	tttgt|j��|j	tjjd	tjj�tjjd	tjj�gt|j��|j	tjdd�tjdd
�tjdd�gt|j��|j|jd��dS(NR2iR4R=g�G�z��?g+�)K@R>RERFRGRHi���i�itoptional_nested_message(RR6RARBRKRLRMRNR7R,R2R4RCR=R>RERGR8R9(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMixedConstructor�s:		"cCs�|jttjdd�|jttjdd�|jttjdd�|jttjdd�|jttjddg�|jttjdd�|jttjddg�|jttjdd�|jttjddg�dS(	NR2tfooR4i�RQR<R?RE(tassertRaisest	TypeErrorRR6(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestConstructorTypeError�s$cCs�tjdd�}|jd|j��tjdtjj��}|jd|j��tjddg�}|jd|j��tjdtjj�g�}|jd|j��dS(NR2iiRQiR<RE(RR6R,tByteSizeRK(RR((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testConstructorInvalidatesCachedByteSize�s		cCs�tj�}|j|jd��|jd|j�|j|jd��d|_|j|jd��|jd�|j|jd��dS(NR2ii(RR6t
assertTrueR9R,R2t
ClearField(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSimpleHasBits�s	
csG�fd�}|dd�|dd�|dd�|dd	�dS(
Ncs�tj�}t||�}t||�}�jd|��j|j|���j|j|��d}t|||��j|t||��|}�j|j|���j|j|��|j|�t||�}�j|j|���j|j|���jdt||���j||k	�t|||��j|j|���j|j|���jdt||��dS(Nii(RR6tgetattrR,RYR9tsetattrRZ(tcomposite_field_nametscalar_field_nameR:tcomposite_fieldtoriginal_scalar_valuetnew_valtold_composite_field(R(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytTestCompositeHasBits.s,
t
optionalgroupRJRQRFtoptional_foreign_messageRHtoptional_import_messagetd((RRd((RsL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt!testHasBitsWithSinglyNestedScalars
"*


cCs%tj�}|j}~d|_dS(Ni(RR6RQRF(RR:tnested((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestReferencesToNestedMessage]s	cCsrtj�}|j}|jd�|j||jk	�d|_|j|jd��|jd|jj�dS(NRQii(RR6RQRZRYRFR9R,(RR:Rj((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt0testDisconnectingNestedMessageBeforeSettingFieldes	
	cCsKtj�}|j}|jd�~~tj�tj�}|j}dS(NRQ(RR6RQRZtgctcollect(RR:Rj((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt5testGetDefaultMessageAfterDisconnectingDefaultMessagens	

cCs�tj�}|j}d|_|j|jd��|jd�|jd|j�|jd|jj�|j||jk	�d|_|j|jd��|jd|jj�dS(NiRQii(RR6RQRFRYR9RZR,(RR:Rj((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt/testDisconnectingNestedMessageAfterSettingField{s		
	cCsKtj�}|j|jd��|jd�|j|jd��dS(NRQ(RR6RYR9RZ(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt0testDisconnectingNestedMessageBeforeGettingField�s
cCsotj�}tj�}d|j_|j|�|j|jd��|jd�|j|jd��dS(NiRQ(RR6RQRFt	MergeFromRYR9RZ(Rtproto1tproto2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testDisconnectingNestedMessageAfterMerge�s

cCsLtj�dkrdStj�}d|j_|jd�~tj�dS(Ntpythonitoptional_lazy_message(	RtTypeRR6RwRFRZRmRn(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt"testDisconnectingLazyNestedMessage�s
cCs�tj�}|jjjd�|jdg|jj�|j|jd��|jd�|j|jd��|jj	j
�|j|jd��dS(NiRQ(RtTestNestedMessageHasBitsRQtnestedmessage_repeated_int32tappendR,RYR9RZt%nestedmessage_repeated_foreignmessagetadd(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt&testHasBitsWhenModifyingRepeatedFields�s
cCsqtj�}|j|jd��|jd|jjjjjj�|j|jd��d|jjjjj_|jd|jjjjjj�|j|jd��|j|jjd��|j|jjjd��|j|jjjjd��|j|jjjjjd��|j|jjjjjjd��|j|jjjjjjd��dS(NRFiiRJR2(RtTestMutualRecursionARYR9R,RFRJR2(Rtrecursive_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt!testHasBitsForManyLevelsOfNesting�s"""&cCs�tj�}d|_d|_d|_|j}|j|jjddf|jjddf|jjddfg|j	��d|j_
|j|jjddf|jjddf|jjddf|jjd|fg|j	��dS(	NiiRSR2toptional_fixed32R4i{RQ(RR6R�R2R4RQR,t
DESCRIPTORtfields_by_namet
ListFieldsRF(RR:tnested_message((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSingularListFields�s$				

	c
Cs tj�}|jjd�|jjd�|jjd�|jjddg�|jjg�|jjd�|jjd�td�D��d	|_|j	|j
|jjd
d	f|jjdddgf|jjddgf|jjd
dddddgfg|j
��dS(NiiiRStbartbazcss|]}t|�VqdS(N(tstr(t.0tx((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pys	<genexpr>�siiR2R<trepeated_fixed32R?t0t1(RR6R�R|R<R?textendR-R2R>R,R�R�R�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedListFields�s" 	
cCsztj�}d|jtj<d|jtj<d|jtj<|jtjdftjdftjdfg|j��dS(NiiRS(RtTestAllExtensionst
Extensionstoptional_fixed32_extensiontoptional_int32_extensiontoptional_string_extensionR,R�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSingularListExtensions�scCstj�}|jtjjd�|jtjjd�|jtjjd�|jtjjd�|jtjjd�|jtjjd�d|jtj<|jtjdftjddgftjdgftjdddgfg|j	��dS(NiiiRSR�R�i(
RR�R�trepeated_fixed32_extensionR|trepeated_int32_extensiontrepeated_string_extensionR�R,R�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedListExtensions�scCs�tj�}tj|�tj|j|jjddftjdf|jjddftjdf|jjddfg|j	��dS(	Ntmy_intiit	my_stringRSR�tmy_floatg�?(
RtTestFieldOrderingsR
tSetAllFieldsAndExtensionstmy_extension_intR,R�R�tmy_extension_stringR�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestListFieldsAndExtensionss
cCs�tj�}|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j	�|jd|j
�|jd|j�|jd|j�|jd|j
�|jd|j�|jt|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd	|j�|jd
|j�|jd|j�|jd|j�|jd
|j�|jd|j�|jd|j�|jt|j �|jd|j!�|jd|j"�|jtjj#|j$�|jtj%|j&�|jt'j(|j)�tj*�}|jd|j+�dS(Nigti)i*i+i,i���i.i/i0i1i���g�I@gd�@thellotworlduሴ(,RR6R,R2toptional_int64toptional_uint32toptional_uint64toptional_sint32toptional_sint64R�toptional_fixed64toptional_sfixed32toptional_sfixed64R5R3RBt
optional_boolR4toptional_bytest
default_int32t
default_int64tdefault_uint32tdefault_uint64tdefault_sint32tdefault_sint64tdefault_fixed32tdefault_fixed64tdefault_sfixed32tdefault_sfixed64t
default_floattdefault_doubleRAtdefault_booltdefault_stringt
default_bytesRMtdefault_nested_enumtFOREIGN_BARtdefault_foreign_enumRt
IMPORT_BARtdefault_import_enumtTestExtremeDefaultValuestutf8_string(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDefaultValuessJ
cCs&tj�}|jt|jd�dS(Ntnonexistent_field(RR6RTt
ValueErrorR9(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt testHasFieldWithUnknownFieldName@scCs&tj�}|jt|jd�dS(NR�(RR6RTR�RZ(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt"testClearFieldWithUnknownFieldNameDscsftj��x!td�D]}�jj�qWtj�}�j|�|jt�fd��dS(Ni
cs�jdS(Ni(trepeated_message((R:(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt<lambda>QR�(RtTestRequiredForeignR-R�R~tCopyFromRTt
IndexError(RR0Rt((R:sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestClearRemovesChildrenHs
cCs�tj�}|jtt|dd�|jtt|ddg�|jtt|dd�|jtt|jdd�|jtt|jdd�|jtt|dd�dS(	NR<i
RQiRFi"tsome_attributeR�(RR6RTtAttributeErrorR]RER@(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDisallowedAssignmentsSs


cCs�tj�}|jtt|dd�|jtt|dd�|jtt|dd�|jtt|dd�|jtt|dd�|jtt|dd�|jtt|d	d�tj�d
kr�|jtt|dd�n	d|_dS(NR2g�������?RSR4i
R�R�R5R3Rv(RR6RTRUR]RRxR�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSingleScalarTypeSafetyhscs���fd�}|ddt�|dd
t�|ddt�y
t}Wntk
ret}nXtjd�dkr�|dd|�n|ddt�|d	d|�|d	d|�|dd|�|dd|�dS(s}Verifies setting of scalar integers.

    Args:
      integer_fn: A function to wrap the integers that will be assigned.
    cs}tj�}�|�}t|||��jt||�|�tj�}|j|j���jt||�|�dS(N(RR6R]tassertIsInstanceR\tParseFromStringtSerializeToString(t
field_nametvaluet
expected_typeR:Rt(t
integer_fnR(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytTestGetAndDeserialize}sR2iiR�tLiiR�i<R�Ni@i@lli@li@l(tinttlongt	NameErrorRtcalcsize(RR�R�t
integer_64((R�RsL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytassertIntegerTypesws	


cCs|jd��dS(NcSs|S(N((R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR��R�(R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestIntegerTypes�scCs|jtj�dS(N(R�R
tNonStandardInteger(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNonStandardIntegerTypes�scCs]tj�}|jt��d|_WdQX|jtd��tjdd�|_WdQXdS(Nt2tmy_errori(	RR6RTRUR�tassertRaisesRegexptRuntimeErrorR
R�(Rtpb((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestIllegalValuesForIntegers�s
cs���fd�}|ddd�|ddd�|ddd�|d
dd�tj�}�jttf���d�|_WdQXtj�}�d�|_�jd|j�dS(s�Verifies bounds checking for scalar integer fields.

    Args:
      integer_fn: A function to wrap the integers that will be assigned.
    cs�tj�}�|�}�|�}t|||��j|t||��t|||��j|t||���jttft|||d��jttft|||d�dS(Ni(RR6R]R,R\RTR�RU(R�texpected_mintexpected_maxR�(R�R(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytTestMinAndMaxIntegers�sR2iiR�il��R�i?R�l����Nll����ll��ll����ll����ll����(RR6RTR�RUR�toptional_nested_enumR,(RR�R�R�((R�RsL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytassetIntegerBoundsChecking�s
cCs|jd��dS(NcSs|S(N((R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR��R�(R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSingleScalarBoundsChecking�scCs|jtj�dS(N(R�R
R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt)testNonStandardSingleScalarBoundsChecking�scCs'tj�}|jt|jjd�|jt|jjd�|jt|jd�|jt|jd�|jjd�d|jd<|jt|jj	dd�|jt|jj	dd�|jt|jj	dg�|jt|jj	dd�|jjd	�|jt|jj	dd�dS(
Ng�������?RSi
iii�tabctindexR�(
RR6RTRUR<R|R?trepeated_bytesR�t__setitem__(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalarTypeSafety�s

cCswtj�}|jd|j�d|_|jd|j�d|_|jd|j�d|_|jd|j�dS(Niil���l����(RR6R,R2R�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt!testSingleScalarGettersAndSetters�s			cCsstj�}|jd�d|_|j|jd��|jd�|jd|j�|j|jd��dS(NR2ii(RR6RZR2RYR9R,(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSingleScalarClearField�s
	
cCs�tj�}|jd|j�|jdtjj�|jd|j�|jdtjj�|jd|j�|jdtjj�dS(Niii(RR6R,RLRMtBAZ(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt	testEnums�scCs~|jdtjjtj��|jdtjjtj��|jdtjjtj��|jttjjd�tj	�}|jd|j
j|j��|jdtj	j
j|j��|jd|j
j|j��|jdtj	j
j|j��|jd|j
j|j
��|jdtj	j
j|j
��|jt|j
jd�|jttj	j
jd�dS(NtFOREIGN_FOOR�tFOREIGN_BAZi0,RLRMR�(R,RtForeignEnumtNameR�R�RRTR�R6t
NestedEnumRLRMR�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt
testEnum_Names2												cCs~|jtjtjjd��|jtjtjjd��|jtjtjjd��|jttjjd�tj	�}|j|j
|jjd��|j|j
tj	jjd��|j|j|jjd��|j|jtj	jjd��|j|j
|jjd��|j|j
tj	jjd��|jt|jjd�|jttj	jjd�dS(	NR�R�RtFORLRMR�tFoo(R,RR�RtValueR�RRTR�R6RLRRMR�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEnum_Value"s2			cCs	|jdddgttjj���|jdddgttjj���|jdddgttjj���tj�}|jddd	d
gt|jj���|jddd
dgt|jj���|jddddgt|jj���dS(NR�R�RiiiRLRMR�tNEGiiii����(R�i(R�i(Ri(RLi(RMi(R�i(R	i����(	R,RCRRtkeysR.titemsR6R(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEnum_KeysAndValues>s++cCs�tj�}|j|j�|jdt|j��|jjd�|jjd�|jjd�|j|j�|jdt|j��|jdddg|j�|jd|jd�|jd|jd�|jt|jj	d�|jt|jj	d�|jt
|jj	d	�|jt
|jj	d�d
|jd<|jdd
dg|j�|jjdd�|jddd
dg|j�|jjd
�|jdd
dg|jdd!�|jddd
dd
g|j�d�t
d�D�|jdd+|jddddd
g|j�dddg|jdd+|jddddd
g|j�g}x|jD]}|j|�q{W|jddddd
g|�|jd=|jdddd
g|j�|jd3|jddg|j�|jjddg�|jddddg|j�|jd�|j|j�|jdt|j��|jjd�|jd|jd�d|jd<|jd|jd�ddddg|j(|jd=|jdddg|j�|jd=|jddg|j�|jt|jjd�|jt|jjd�|jdd5|jdg|j�|jdd5|jdg|j�dS(Niii
iii����i�i.���RSiiiiicss|]}|VqdS(N((R�R0((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pys	<genexpr>rsii#i(i-i
R<i����i����i,idi'(RR6RYR<R,R!R|RTR�t__getitem__RUR7tinsertR-R�RZt__delitem__(RR:RR0((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalarsMsl
## ""







cCs�tj�}|j|j�|jdt|j��|jjd�|jjd�|jjd�|jjd�|jdt|j��|jjd�|jdt|j��|jd|jd�|jd|jd�|jd|jd�|jjd�|jdt|j��|jd|jd�|jd|jd�|jjd�|jdt|j��|jd|jd�|jt	|jjd�dS(	Niii
iiiii{(
RR6RYR<R,R!R|tremoveRTR�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalarsRemove�s*cCs$tj�}|j|j�|jdt|j��|jj�}|jj�}|j|j�|jdt|j��|j||g|j�|j|tjj	�|j
t|jjd�|j
t|jjd�|j
t
|jjd�|j
t
|jjd�|jj�}|jj�}|jj�}|j|||g|jdd!�|j|||||g|j�|j||g|jd �|j|||g|jd�|j||jd�|j|g|jd �g}x|jD]}|j|�qW|j|||||g|�|jd=|j||||g|j�|jd3|j||g|j�tjj	dd�}	tjj	dd�}
|jj|	|
g�|jdt|j��|j|	|jd�|j|
|jd	�|j
t
|jj|	�|j
t
|jjdg�tj�}|j
t
|jj|g�|jd
�|j|j�|jdt|j��|jjdd�|jdt|j��|jd|jdj�|j
t
|jjd�|j
t��d|jd<WdQXdS(Niii�i.���RSiiRFiREi(RR6RYRER,R!R~R1R�RKRTR�R
RUR7R|R�RZRFt	Exception(RR:tm0tm1tm2tm3tm4RR0tn1tn2twrong_message_type((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedComposites�s~

				

cCs�tj�}|jdt|j��|jj�}t|j�|_|jj�}t|j�|_|j||k�|jj�}t|j�|_|j|||g|j�|jdt|j��|jj	|�|jdt|j��|j||jd�|j||jd�|j
t|jj	|�|j
t|jj	d�|jdt|j��|jj	|�|jdt|j��|j||jd�dS(Niiii(
RR6R,R!RER~RFRYR1RRTR�R7(RR:RRR((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedCompositeRemoves*csmtj�dkrdStj}|dddddddd	d
|jd|jd|jd
ddddddddtdddt	j
��}tjdddddddddgdgd|gdgdt	j��	�dt
jtjtj�f�fd��Y}|�}|jd|j�|j|jd��d|_|jd|j�|j|jd��dS(NRvtnamet	foo_fieldt	full_namesMyProto.foo_fieldR�itnumberittypetcpp_typetlabelt
default_valuetcontaining_typetmessage_typet	enum_typetis_extensiontextension_scopetoptionstMyPrototfilenametignoredtnested_typest
enum_typestfieldst
extensionstMyProtoClasscseZ�ZRS((R#R$R�((tmydescriptor(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR3Hsi(RRxRtFieldDescriptort
TYPE_INT64t
CPPTYPE_INT64tLABEL_OPTIONALR7RBRtFieldOptionst
DescriptortMessageOptionstsixtwith_metaclassRtGeneratedProtocolMessageTypeRtMessageR,RRYR9(RR5tfoo_field_descriptorR3tmyproto_instance((R4sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestHandWrittenReflection4s.			.		cs�tj�dkrdS�fd��d�_tj�}d|_tj}�|d|j��|d|j��|d|j	��|d|j
��jd	7_|jj�}d
|_|j|_
�j|_tjj|_tj|��|jd�jk�|jd�jk�|jd�jk�|jd�jk�|jd
�jk�dtjtjtj�f�fd��Y}|�}d
|_d|_t|_d|_|jj ddg�|j!�}tj"�|�}|j||k	�|j#||�|j#|j|j�|j#|j|j�|j#|j|j�|j#|j|j�|j#|j|j�dS(NRvcsO�jd7_|jj�}||_||_�j|_tjj|_	dS(Ni(
tfield_indextfieldR~RR"R!RtFieldDescriptorProtoR8R$(R:R�t
field_typet	new_field(tAddDescriptorField(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRHWs		itCarRtyeart	automatictpriceitownerst
CarMessagecseZ�ZRS((R#R$R�((tdesc(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRNwstpriusi�g���@tbobtsusan($RRxRCRtDescriptorProtoRREtTYPE_STRINGR6t	TYPE_BOOLtTYPE_DOUBLERDR~R"R!tLABEL_REPEATEDR$RtMakeDescriptorRYR�R<R=RR>RR?RJRARKRLRMR�R�tParseMessageR,(Rt
desc_prototfdpRGRNRPtserialized_priust	new_prius((RHROsL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDescriptorProtoSupportQsN				.					cCs�tj�}tj}|j|j|��|jd|j|�|j|j|��d|j|<|jd|j|�|j|j|��|j|�|jd|j|�|j|j|��dS(Nii(RR�R�RYtHasExtensionR,R�tClearExtension(Rtextendee_protot	extension((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt'testTopLevelExtensionsForOptionalScalar�s	

cCs�tj�}tj}|jdt|j|��|j|jd�|jdg|j|�|j|}|j|�|jdt|j|��|j||j|k	�|j	t
tj|j|d�dS(NiRSRJ(
RR�R�R,R!R�R|R`RYRTRUtoperatortsetitem(RRaRbtstring_list((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt'testTopLevelExtensionsForRepeatedScalar�s	

cCs=tj�}tj}|j|j|��|jd|j|j�|j|j|��d|j|_|jd|j|j�|j|j|��|j|}|j|�|j||j|k	�d|_|jd|j�|j|j	d��|j|j|��|j
ttj
|j|d�dS(Niii*RHRJ(RR�t"optional_foreign_message_extensionRYR_R,R�RHR`R9RTRURdRe(RRaRbtforeign_message((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testTopLevelExtensionsForOptionalMessage�s"	

	cCstj�}tj}|jdt|j|��|j|j�}d|_|jd|j|dj�d|_|jd|j|dj�|j|}|j|�|jdt|j|��|j	||j|k	�|j
ttj
|j|d�dS(Niii*RJ(RR�trepeatedgroup_extensionR,R!R�R~RJR`RYRTRURdRe(RRaRbtgroupt
group_list((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testTopLevelExtensionsForRepeatedMessage�s			

cCs�tj�}tjj}|j|j|��|j|}|jd|j�|j|j|��d|_|jd|j|j�|j|j|��|j	|�|j||j|k	�|j|j|��dS(Nii(
RR�tTestRequiredtsingleRYR_R�R,RJR`(RRaRbtrequired((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNestedExtensions�s
	
cCsvtjj}|j|jtjjd��|j|jd�jtjj�|j	dt
|jtjj���dS(Nis*protobuf_unittest.optional_int32_extensioni(
RR�tpoolRYtFindExtensionByNumberR�tassertIstFindExtensionByNameR&R,R!tFindAllExtensionsR6(RRs((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRegisteredExtensions�s	
cCs�tj�}|j|jd��|jd|jjtj�|j|jd��d|jjtj<|jd|jjtj�|j|jd��tj�}|j|jd��|jg|jjtj�|j|jd��|jjtjj	d�|jdg|jjtj�|j|jd��tj�}|j|jd��|jd|jjtj
j�|j|jd��d|jjtj
_|jd|jjtj
j�|j|jd��tj�}|j|jd��|jdt|jjtj
��|j|jd��|jjtj
j�}|j||jjtj
d�|j|jd��dS(Nt
submessageii(R	tTopLevelMessageRYR9R,RyR�toptional_int_extensiontrepeated_int_extensionR|toptional_message_extensiontforeign_message_intR!trepeated_message_extensionR~(Rttopleveltforeign((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testHasBitsForAncestorsOfExtendedMessage�sL		cCs_tj�}|j}tj}|j|}|j|�d|_|j||j|k	�dS(Ni(R	RzRyR}R�R`R~RY(RR�RaRbtextension_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt*testDisconnectionAfterClearingEmptyMessage*s		

	cCstj�}|jt|jd�|jt|jd�|jt|jjd�|jt|jjdd�x�t	j
t	jt	jt	j
fD]g}|jt|j|�|jt|j|�|jt|jj|�|jt|jj|d�q�W|jt|jtj�dS(Ni�i(RR�RTtKeyErrorR_R`R�R
R�R	R{R}R|RR�(RRatunknown_handle((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestExtensionFailureModes4s&	cCsKtj�}tj|�|j�}tjj|�}|j||�dS(N(RR6R
tSetAllFieldsR�t
FromStringR,(RRststring1Rt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestStaticParseFromSs

cCsatj�}d|_tj�}d|_|j|�|jd|j�|jd|j�dS(NiR�(RR6R2R4RrR,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromSingularField]s		
cCs�tj�}|jjd�|jjd�tj�}|jjd�|j|�|jd|jd�|jd|jd�|jd|jd�dS(Niii(RR6R<R|RrR,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromRepeatedFieldjs
cCsKtj�}d|j_tj�}|j|�|jd|jj�dS(Ni(RR6ReRJRrR,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromOptionalGroupxs

cCs,tj�}|jj�}d|_|jj�}d|_tj�}|jj�}d|_|j|�|jd|jdj�|jd|jdj�|jd|jdj�tj�}|jj|j�|jd|jdj�|jd|jdj�|jd|jdj�dS(Ni{iAi�iii(RR6RER~RFRrR,(RRstmRttproto3((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt"testMergeFromRepeatedNestedMessage�s"			
cCsntj�}tj|�tj�}|j|�|j||�|j�}|j�}|j||�dS(N(RR6R
R�RrR,R�(RRsRtR�tstring2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromAllFields�s

cCsStj�}d|jtj<tj�}|j|�|jd|jtj�dS(Ni(RR�R�R�RrR,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromExtensionsSingular�s
cCs�tj�}|jtjjd�|jtjjd�tj�}|jtjjd�|j|�|jdt|jtj��|jd|jtjd�|jd|jtjd�|jd|jtjd�dS(Niiii(RR�R�R�R|RrR,R!(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromExtensionsRepeated�s
cCs�tj�}|jtj}|j�}d|_|j�}d|_tj�}|jtj}|j�}d|_|j|�|jtj}|jdt|��|jd|dj�|jd|dj�|jd|dj�dS(Ni�iMioiiii(	RR�R�t!repeated_nested_message_extensionR~RFRrR,R!(RRstext1R�Rttext2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt$testMergeFromExtensionsNestedMessage�s&
		
	

cCs\tj�}tj�}|j|j|jd��|j|�|j|jd��dS(NRQ(RR6RQR8R9Rr(Rtmessage1tmessage2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromBug�s
cCsjtj�}d|_d|_tj�}d|_|j|�|jd|j�|jd|j�dS(Nisimportant-textR�(RR6R2R4R�R,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCopyFromSingularField�s			
cCs�tj�}|jjd�|jjd�tj�}|jjd�|j|�|jd|jd�|jd|jd�dS(Niii(RR6R<R|R�R,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCopyFromRepeatedField�s
cCsntj�}tj|�tj�}|j|�|j||�|j�}|j�}|j||�dS(N(RR6R
R�R�R,R�(RRsRtR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCopyFromAllFields�s

cCs|tj�}|jjd�d|_d|_|j|�|jd|jd�|jd|j�|jd|j�dS(Niisimportant-texti(RR6R<R|R2R4R�R,(RRs((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCopyFromSelfs		
cCsHtj�dkrdStj�}tj�}|jt|j|�dS(NRv(RRxRR6R�RTRUR�(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCopyFromBadTypes
cCs�tj�}d|_tj|�}|jd|j�|jjd�|jjd�tj|j�}|jddg|�|jj	�}d|_
tj|j�}|j|j|�d|_
|j|j|�dS(Niii(RR6R2tcopytdeepcopyR,R<R|RER~RFtassertNotEqual(RRsRtt	containerR�tmessages((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDeepCopy s			cCs�tj�}tj�dkr.tj|�n
tj|�|j�|j|j	�d�tj�}|j||�tj
�}tj|�|j�|j|j	�d�tj
�}|j||�dS(NRvi(RR6RRxR
R�tSetAllNonLazyFieldstClearR,RWR�tSetAllExtensions(RR:tempty_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt	testClear4s



cCsetj�}|j}|j�|j||jk	�d|_|j|jd��|jd|jj�tj�}|j}d|_|j}d|_	|j�|j||jk	�|j||jk	�|jd|j�|jd|j	�d|_d|_	|j
|jd��|jd|jj�|j
|jd��|jd|jj	�dS(	NiRQiiiiiRf(RR6RQR�RYRFR9R,RfRHR8(RR:RjR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDisconnectingBeforeClearKs.	
					
		cCs�tj�}d|j_|j}|j|jjd�|j|jjd�d|j_|j|jjd�|j|jd�d|_dS(Niiii(Rt
TestOneof2tfoo_messagetqux_intR,tfoo_lazy_message(RR�tsub_message((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDisconnectingInOneoffs	cCs�tj�}d|_d|j_|jd|jj�|j|jd��|j}d|_|jd|j�|jd|j�|j|jd��dS(Ni
itoneof_uint32R�toneof_nested_message(	RR6R�R�RFR,R8R9toneof_string(RR:Rj((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt	testOneOfts			cCs+|j|j��|j�|j�dS(N(RYt
IsInitializedR�tSerializePartialToString(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytassertInitialized�s
cCsig}|j|j��|j|j|��|j|t|��|jtj|j�|j�dS(N(	R8R�R,R!RTRtEncodeErrorR�R�(RR:t
error_sizeterrors((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytassertNotInitialized�scCsZtj�}|j|�tj�}|j|�tj�}|j|d�d|_|_|_|j|�tj	�}|j|�d|j
_|j|d�d|j
_d|j
_|j|�|jj�}|j|d�d|_|_|_|j|�tj�}tjj
}|j|j�}|j|j�}|j|d�d|_d|_d|_|j|d�d|_d|_d|_|j|�tj�}tjj}d|j|_|j|d�d|j|_d|j|_|j|�g}tj�}|j|j|��|j|dddg�dS(	NiiiiiRJtbRH(RR6R�R�RoR�RJR�RHR�toptional_messageR�R~tmultiR�RpR8R�R,(RR:R�RbR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestIsInitialized�sV





						

tcppisBErrors are only available from the most recent C++ implementation.cCsd}d}tj�}||_||_|jj�}d|_tj||d|j��d}||_|jj�}d|_|j	t
���}tj||d|j��|jt|d�dt
|jd|j��|jdt|j��|jd	t|j��WdQXdS(
Ns!test_file_descriptor_errors.prototmsg1t
serialized_pbs)another_test_file_descriptor_errors.prototmsg2t	exceptions
%s not raisedR#s test_file_descriptor_errors.msg1(RtFileDescriptorProtoRtpackageR'R~RtFileDescriptorR�RTRURYthasattrR\texpectedtassertInR�R�(Rt	file_nametpackage_nametfile_descriptor_protoRtanother_file_nameRtcm((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestFileDescriptorErrors�s0			
		
cCs�tj�}|jtt|dd�|jt|j�tj	�tj	d�|_|j|jt
d��t
d�|_|j|jtj	d��|jtt|dd�djd�}||_d|_d|_dS(	NR�uunicode objecttTestingR4sa�auТестsutf-8R�(
RR6RTRUR]R,R"R4R<t	text_typeR�R�tencode(RR:t
utf8_bytes((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestStringUTF8Encoding�s				c
Cs�tj�}tj}|j}d}|jd�}||j|_|j�}|j|j	�t
|��tj�}|j
|�}|jt
|�|�tj�}	|jdt
|j��|j|jdjd�|j|jdjj|��|	j
|jdj�}|jt
|jdj�|�|jt|	j�tj�|j|	j|�|jdjj|t
|�d�}
t}y|	j
|
�Wntk
r�t}nX|	j}|j|p�t|�tk�dS(NuТестsutf-8iiiʿ�s�(RtTestMessageSettTestMessageSetExtension2tmessage_set_extensionR�R�R�R�R,RWR!Rt
RawMessageSettMergeFromStringtitemttype_idRYRtendswithR"R<R�treplaceRBtUnicodeDecodeErrorRAR(
RR:textension_messageRbt	test_utf8ttest_utf8_bytest
serializedtrawt
bytes_readR�tbadbytestunicode_decode_failedtstring_field((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestStringUTF8Serializations8		  	

	cCs/tjdd�}|jdtj|��dS(NR�s��u#optional_bytes: "\000\177\200\377"
(RR6R,R<R�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestBytesInTextFormat=s	cCs=tj�}|jjtjj��|j|jd��tj�}|jjtjj��|j|jd��tj�}|jjd�}|j	d|�|j|jd��tj�}|jj
d�|j|jd��|j�}tj�}|j	t|�|j|��|j|jd��dS(NRQR�i(
RR6RQRrRKRYR9R�R�R,R�R�R!(RR:R�R�Rt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEmptyNestedMessageBs*			cCsItj�}|j|jd��|jj�|j|jd��dS(NRe(RR6R8R9RetSetInParentRY(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSetInParent]s
cCs9ddlm}|jj�}|jd|jj�dS(s�Test that we can import nested messages from their __init__.py.

    Such setup is not trivial since at the time of processing of __init__.py one
    can't refer to its submodules by name in code, so expressions like
    google.protobuf.internal.import_test_package.inner_pb2
    don't work. They do work in imports, so we have assign an alias at import
    and then use that alias in generated code.
    i����(timport_test_packagei9N(tgoogle.protobuf.internalR�tmyprototOuterR,tinnerR�(RR�tmsg((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestPackageInitializationImportcsN(`R#R$R1R;RDRPRRRVRXR[RiRkRlRoRpRqRuRyRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RRRRRRRRBR^RcRgRjRnRrRxR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R7R�R�tunittesttskipIfRRxtVersionR�R�R�R�R�R�R�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR+rs�		
		"	#				Q				
	
		
	
								)						"				!											Z		S			=							1	
		
	
									
	
	
												:! 		6			tTestAllTypesEqualityTestcBs,eZd�Zd�Zd�Zd�ZRS(cCs"tj�|_tj�|_dS(N(RR6tfirst_prototsecond_proto(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytsetUp{scCs|jtt|j�dS(N(RTRUthashR�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNotHashablescCs|j|j|j�dS(N(R,R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSelfEquality�scCs|j|j|j�dS(N(R,R�R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEmptyProtosEqual�s(R#R$R�RRR(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�ys			tFullProtosEqualityTestcBsqeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
RS(s@Equality tests using completely-full protos as a starting point.cCsBtj�|_tj�|_tj|j�tj|j�dS(N(RR6R�R�R
R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR��scCs|jtt|j�dS(N(RTRUR�R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�scCs*|j|jd�|jd|j�dS(N(R�R�R7R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNoneNotEqual�scCs6tj�}|j|j|�|j||j�dS(N(RRoR�R�R�(Rtthird_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNotEqualToOtherMessage�scCs|j|j|j�dS(N(R,R�R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestAllFieldsFilledEquality�scCsR|jjd7_|j|j|j�|jjd�|j|j|j�dS(NiR2(R�R2R�R�RZ(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNonRepeatedScalar�scCs�|jjjd7_|j|j|j�|jjjd8_|j|j|j�|jjjd�|j|j|j�|jjj|jj_|j|j|j�|jjd�|j|j|j�dS(NiRFRQ(R�RQRFR�R�R,RZ(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNonRepeatedComposite�scCsS|jjjd�|j|j|j�|jjd�|j|j|j�dS(NiR<(R�R<R|R�R�RZ(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalar�scCs�|jjdjd7_|j|j|j�|jjdjd8_|j|j|j�|jjj�|j|j|j�|jjj�|j|j|j�dS(Nii(R�RERFR�R�R,R~(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedComposite�scCs6|jjd�d|j_|j|j|j�dS(NR2i(R�RZR�R2R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNonRepeatedScalarHasBits�scCsu|jjd�|jjjd�|j|j|j�d|jj_|jjjd�|j|j|j�dS(NRQRFi(R�RZR�RQR�RFR,(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNonRepeatedCompositeHasBits�s(R#R$R%R�RRRRRR	R
RRR
(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�s										tExtensionEqualityTestcBseZd�ZRS(cCsDtj�}tj�}|j||�tj|�|j||�tj|�|j||�|jtjcd7<|j||�|jtjcd8<|j||�|jtj�d|jtj<|j||�d|jtj<|j||�tj�}tj�}|jd|jtj�|j||�dS(Nii(	RR�R,R
R�R�R�R�R`(RR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestExtensionEquality�s*

(R#R$R(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�stMutualRecursionEqualityTestcBseZd�ZRS(cCsptj�}tj�}|j||�d|jjj_|j||�d|jjj_|j||�dS(Ni(RR�R,RFRJR2R�(RR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEqualityWithMutualRecursions(R#R$R(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRstByteSizeTestcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs@tj�|_tj�|_tj�|_tj�|_	dS(N(
RR6R:R	tExtendedMessagetextended_prototTestPackedTypestpacked_prototTestPackedExtensionstpacked_extended_proto(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�scCs
|jj�S(N(R:RW(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytSizescCs|jd|jj��dS(Ni(R,R:RW(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEmptyMessagescCsNtj�}|jd|j��tjdd�}|jd|j��dS(NiR�ii(RR6R,RW(RR:tproto_kwargs((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSizedOnKwargsscs��fd�}|dd�|dd�xGttddd�tdd��D]!\}}|d|>d|�qNW|dd�|d	d�|dd�dS(Ncs7�jj�|�j_�j|d�j��dS(Ni(R:R�R�R,R(R0texpected_varint_size(R(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytTest#s
iiii?i'i����i
i����ll����(tzipR-(RRR0t	num_bytes((RsL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestVarints"s

1

cCs�d|j_|jd|j��d|j_|jdt|jj�|j��dd|j_|jdt|jj�|j��dS(NR�iR�R�i�i(R:R4R,RR!(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestStrings1s&cCs�d|j_|jd|j��tj�|_d|j_|jd|j��tj�|_d|j_|jd|j��tj�|_d|j_|jd|j��tj�|_d|j_	|jd|j��tj�|_dS(Ni�ii	gX9��v��?i@i(
R:R�R,RRR6R�R5R3R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestOtherNumerics>scCs)d|jj_|jd|j��dS(	Niiiii@iii(R:RQRFR,R(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCompositesXscCs-d|jj_|jdd|j��dS(Niiiii ii(R:ReRJR,R(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt
testGroups`scCsD|jjjd�|jjjd�|jdd|j��dS(Ni
i�iiii(R:R<R|R,R(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRgscCs7|jjjddg�|jdd|j��dS(Ni
i�iiii(R:R<R�R,R(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalarsExtendmscCsm|jjjd�|jjjd�|jdd|j��|jjjd�|jd|j��dS(Ni
i�iiiii(R:R<R|R,RR(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRrs
cCsG|jjj�}|jjj�}d|_|jd|j��dS(	Niiiiiiii(R:RER~RFR,R(Rtforeign_message_0tforeign_message_1((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRzs	cCss|jjj�}|jjj�}d|_|jd|j��tj|jj�}|jjd=|jd|j��|jjj�}d|_|jd|j��|jjd=|jd|j��|jjd=|jd|j��|jdt|��|dd5t	j
�dkr=|jdt|��n|d=t	j
�dkro|jdt|��ndS(Ni	iiiiRvi����iiiiiiiiiiiiii	i
iii(R:RER~RFR,RR�R�R!RRx(RR'R(REtforeign_message_2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedCompositesDelete�s,	
	


cCsG|jjj�}|jjj�}d|_|jd|j��dS(	Niiiiiii	i(R:RIR~RJR,R(Rtgroup_0tgroup_1((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedGroups�s	cCs�tj�}|jd|j��tj}d|j|<|jd|j��tjjjd}|j	t
��d|j|<WdQXdS(NiiiR2(RR�R,RWR�R�R6R�R�RTR�(RR:RbRD((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestExtensions�s	
cCs�d|j_|jd|jj��d|j_|jd|jj��|jjd�|jd|jj��tj}d|jj|<|jd|jj��d|jj|<|jd|jj��|jj	|�|jd|jj��dS(Niii�iR2i(
R:R2R,RWRZR	R{RR�R`(RRb((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt)testCacheInvalidationForNonrepeatedScalar�s	cCs_|jjjd�|jd|jj��|jjjd�|jd|jj��d|jjd<|jd|jj��|jjd�|jd|jj��tj}|jj	|}|jd�|jd|jj��|jd�|jd	|jj��d|d<|jd
|jj��|jj
|�|jd|jj��dS(Niiii�iR<iiii(R:R<R|R,RWRZR	R|RR�R`(RRbtrepeated((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt&testCacheInvalidationForRepeatedScalar�s$	


cCs�d|jj_|jd|jj��d|jj_|jd|jj��|jjjd�|jd|jj��|jjd�|jd|jj��tj�d	kr�|jj}|jjd�d|_|jd|jj��ntj	}|j
j|}|jd|j
j��d|_|jd
|j
j��d|_|jd|j
j��|j
j
|�|jd|j
j��dS(Niii�iRHiRfiRvi(R:RfRHR,RWRZRRxR	R}RR�R~R`(RtchildRb((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt*testCacheInvalidationForNonrepeatedMessage�s,				cCsu|jjj�}|jd|jj��|jjj�|jd|jj��d|_|jd|jj��|jjd�|jd|jj��tj}|j	j
|}|j�}|jd|j	j��|j�|jd|j	j��d|_|jd|j	j��|jd	�|jd|j	j��|j	j|�|jd|j	j��dS(
NiiiiRGiiiR~(
R:RGR~R,RWRHRZR	RRR�R~R`(Rtchild0Rbt
child_list((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt'testCacheInvalidationForRepeatedMessage	s(		
	
cCs�|jd|jj��|jjjd�|jjjd�d}|j||jj��|jjjd�|jjjd�d}|j|||jj��|jjd
�|j||jj��dS(Nii
i�iiig������@g
@itpacked_int32iiii(R,RRWR7R|t
packed_doubleRZ(Rtint_sizetdouble_size((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestPackedRepeatedScalars	scCsb|jd|jj��|jjtj}|jddddg�|jd|jj��dS(Niiiiii(R,RRWR�Rtpacked_fixed32_extensionR�(RRb((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestPackedExtensions0	s
	
(R#R$R�RRRR!R"R#R$R%RR&RRR*R-R.R/R1R3R6R;R=(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRs,						
								'								tSerializationTestcBseZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsstj�}tj�}|j�}|j|j�t|��|jt|�|j|��|j||�dS(N(RR6R�R,RWR!R�(RR�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeEmtpyMessageF	s	cCs�tj�}tj�}tj|�|j�}|j|j�t|��|jt|�|j|��|j||�dS(N(	RR6R
R�R�R,RWR!R�(RR�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeAllFieldsP	s
	cCsdtj�}tj�}tj|�|j�}|jt|�|j|��|j||�dS(N(RR�R
R�R�R,R!R�(RR�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeAllExtensions[	s
	cCsctj�}tj�}d|j_|j�}|jt|�|j|��|j||�dS(Ni�(RR6ReRJR�R,R!R�(RR�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeWithOptionalGroupe	s	cCsntj�}d|_d	|_d|_d|_d|_d
|_tjj|j	��}|j
||�dS(Ni����ii(i����ii����ill����ll����ll����(RR6R2R�R�R�R�R�R�R�R,(RR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeNegativeValueso	s							cCs$tj�dkrdStj�}tj|�|j�}x�tt|�d�D]�}y�tj�}tj	�}|j
|d|�}|j||�y)|j
|d|�}|j||�Wn!tj
k
r�|jd�nXWqRtj
k
r|jtj
|j
|d|�qRXqRWdS(NRviis@Parsing unknown fields failed when parsing known fields did not.(RRxRR6R
R�R�R-R!tTestEmptyMessaget_InternalParseR,RtDecodeErrortfailRT(RR�R�ttruncation_pointR�tunknown_fieldstpostpos2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestParseTruncated~	s&
cCs�tj�}d|_d|jtj<d|_d|jtj<d|_|j�}|j	|j
�t|��t|�}|j
}|j	dtjf|��|j	d|j��|j	dtjf|��|j	d|j��|j	dtjf|��|j	d|j��|j	dtjf|��|j	d|j��|j	dtjf|��|j	d|j��dS(Niiiii(R
tOutOfOrderFieldsR�R�R�R�R�R2R�R,RWR!RRRtWIRETYPE_VARINTR&R'R(R)R*(RR:R�RhtReadTag((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCanonicalSerializationOrder�	s(				cCs6tj�}tj|�|j�}tj|�dS(N(RR�R
R�R�t#ExpectAllFieldsAndExtensionsInOrder(RR:R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testCanonicalSerializationOrderSameAsCpp�	s
cCs�tj�}|jjd�d|_d|j_|j�}tj�}|jjd�d|_d|j_|j|�}|j	t
|�|�|j	ddgt|j��|j	d|j�|j	d|jj�dS(Ntfoobarii*R�idi�(RR6R?R|R2RQRFR�R�R,R!RC(RR�R�R�tbytes_parsed((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt'testMergeFromStringWhenFieldsAlreadySet�	s		c
Cs�tj�}tj}tj}|j}|j}tj}d|j|_d|j|_d|j|_	|j
�}tj�}|j
t|jj�j�|j
t|�|j|��|j
dt|j��tj�}	|j
t|jdj�|	j|jdj��|j
d|	j�tj�}
|j
t|jdj�|
j|jdj��|j
d|
j�tj�}|j
t|jdj�|j|jdj��|j
d|j	�tj�}|j
t|�|j|��|j
d|j|j�|j
d|j|j�|j
d|j|j	�|j
|j�t|��|j
|j�t|��dS(Ni{RSR�iiii(RR�tTestMessageSetExtension1R�R�tmessage_set_extension3R�R0R�ttextR�RR�R,RBR�t
GetOptionstmessage_set_wire_formatR!R�R�RtTestMessageSetExtension3RW(
RR:textension_message1textension_message2t
extension1t
extension2t
extension3R�R�R�R�tmessage3Rt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMessageSetWireFormat�	sR								cCs9tj�}|jj�}d|_tj}tj�}d|_|j�|_	|jj�}d|_tj}tj�}d|_|j�|_	|jj�}d|_tj
�}d|_|j�|_	|j�}tj�}|j
t|�|j|��tj}|j}|j
d|j|j�dS(Ni���i90i���i:0i���RS(RR�R�R~R�RRVR0R�RR�R�R�R,R!R�R�R�(RR�R�R\R�R�R:R^((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testMessageSetWireFormatUnknownExtension	
s4											cCs�tj�}tj|�|j�}tj�}|jt|�|j|��tj�}d|_	|j�}tj�}|jt|�|j|��dS(Nl����(
RR6R
R�R�RDR,R!R�R�(RR:R�Rt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestUnknownFields2
s
			cCsUy|�Wn*|k
r7}|j|t|��dSX|jdt|���dS(sEThis method checks if the excpetion type and message are as expected.Ns
%s not raised(R,R�tfailureException(Rt	exc_classtcallable_objR�tex((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt_CheckRaisesM
scCs�tj�}|jtj|jd�|j�}tj�}|j|jd��|j	|�|j|jd��d|_
|jtj|jd�|j�}d|_|jtj|jd�|j�}d|_|j�}|j�}tj�}|j
t|�|j|��|j
d|j
�|j
d|j�|j
d|j�|j
t|�|j|��|j
d|j
�|j
d|j�|j
d|j�dS(NsHMessage protobuf_unittest.TestRequired is missing required fields: a,b,cRJisFMessage protobuf_unittest.TestRequired is missing required fields: b,cisDMessage protobuf_unittest.TestRequired is missing required fields: ci(RRoRiRR�R�R�R8R9R�RJR�RHR,R!R�(RR:tpartialRtR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeUninitializedX
sL
					cCs�tj�}|j�d|j_|jtj|jd�d|j_d|j_	|j�d|j
j�_d|j
j�_|jtj|jd�d|j
d_d|j
d_	d|j
d_d|j
d_	|j�dS(NisoMessage protobuf_unittest.TestRequiredForeign is missing required fields: optional_message.b,optional_message.ciis�Message protobuf_unittest.TestRequiredForeign is missing required fields: repeated_message[0].b,repeated_message[0].c,repeated_message[1].a,repeated_message[1].ci(RR�R�R�RJRiRR�R�RHR�R~(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt$testSerializeUninitializedSubMessage�
s*

cCs�tj�}tj�}tj|�|j�}|j|j�t|��|j|�}|j|j�|�|j||�dS(N(	RRR
tSetAllPackedFieldsR�R,RWR!R�(RR�R�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeAllPackedFields�
s
cCsjtj�}tj�}tj|�|j�}|j|�}|j|j�|�|j||�dS(N(RRR
tSetAllPackedExtensionsR�R�R,RW(RR�R�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt testSerializeAllPackedExtensions�
s
cCs�tj�}|jjddg�|jjd�|j�}tj�}|jjd�|jjddg�|jjd�|jt	|�|j
|��|jdddg|j�|jdddg|j�|jdg|j�dS(Niig@ig�?g@i(RRR7R�R8R|R�t
packed_sint32R,R!R�(RR�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt1testMergePackedFromStringWhenSomeFieldsAlreadySet�
s	cCs�tj�}|jjddddg�|jjddg�|jjd�|j�}|j|j	�t
|��t|�}|j}|jdt
jf|��|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd	t
jf|��|jd
|j��|jd|j��|jdt
jf|��|jd|j��|jd|j��|jd|j��|j|j��dS(Niii�ig�?g@�@g@iZidiieiiiii(RRR7R�R8tpacked_floatR|R�R,RWR!RRRtWIRETYPE_LENGTH_DELIMITEDR&RR RYR"(RR:R�RhRO((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestPackedFieldsWireFormat�
s,	cCs}tj�}tj|�tj�}|j�}|jt|�|j|��tj�}tj	|�|j||�dS(N(
RtTestUnpackedTypesR
tSetAllUnpackedFieldsRR�R,R!R�Rm(RtunpackedtpackedR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestParsePackedFromUnpacked�
s
	
cCs}tj�}tj|�tj�}|j�}|jt|�|j|��tj�}tj	|�|j||�dS(N(
RRR
RmRvR�R,R!R�Rw(RRyRxR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestParseUnpackedFromPacked�
s
	
cCs�tj�}|jtjjjd�|jtjjd�|jtjjd�|jtjjd�|jtjjd�|jtjj	d�|jtjj
d�|jtjjd�|jtjjd�dS(	Niiiiii.i0i3(
RR6R,RKtBB_FIELD_NUMBERtOPTIONAL_INT32_FIELD_NUMBERtOPTIONALGROUP_FIELD_NUMBERt$OPTIONAL_NESTED_MESSAGE_FIELD_NUMBERt!OPTIONAL_NESTED_ENUM_FIELD_NUMBERtREPEATED_INT32_FIELD_NUMBERtREPEATEDGROUP_FIELD_NUMBERt$REPEATED_NESTED_MESSAGE_FIELD_NUMBERt!REPEATED_NESTED_ENUM_FIELD_NUMBER(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestFieldNumbersscCs�|jtjjjd�|jtjjd�|jtjjjd�|jtjjd�|jtjjd�|jtj	d�|jtj
jd�|jtjd�|jtjjd�|jtj
d�|jtjjd�|jtjd�|jtjjd�|jtjd�|jtjjd�|jtjd�|jtjjd	�|jtjd	�|jtjjd
�|jtjd
�dS(Ni�i�iiiiii.i0i3(R,RRoRpR!tSINGLE_FIELD_NUMBERR�tMULTI_FIELD_NUMBERR�t%OPTIONAL_INT32_EXTENSION_FIELD_NUMBERtoptionalgroup_extensiont$OPTIONALGROUP_EXTENSION_FIELD_NUMBERt!optional_nested_message_extensiont.OPTIONAL_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERtoptional_nested_enum_extensiont+OPTIONAL_NESTED_ENUM_EXTENSION_FIELD_NUMBERR�t%REPEATED_INT32_EXTENSION_FIELD_NUMBERRkt$REPEATEDGROUP_EXTENSION_FIELD_NUMBERR�t.REPEATED_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERtrepeated_nested_enum_extensiont+REPEATED_NESTED_ENUM_EXTENSION_FIELD_NUMBER(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestExtensionFieldNumberss0

cCs�tjdddddtdddtjjd	d�d
tjdd�dtjjd
tjddddg�	}|j|j��|j|j	d��|j|j	d��|j|j	d��|j|j	d��|j|j	d��|j|j	d
��|j|j	d��|j|j	d
��|j
d|j�|j
d|j�|j
t|j
�|j
d|j�|j
d|jj�|j
d|jj�|j
tjj|j�|j
tj|j�|j
dddg|j�dS(NR2iR4RSR�R�R�RQRFRfRHR�toptional_foreign_enumR<ii(RR6RARKRNRLR�RYR�R9R,R2R4R�R�RQRFRfRHR�R�R<(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestInitKwargs+s:		
cCs d�}|jt|d�dS(NcSstjdd�}dS(Ntunknown(RRD(tunused_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(InitalizeEmptyMessageWithExtraKeywordArgKss9Protocol message TestEmptyMessage has no "unknown" field.(RiR�(RR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestInitArgsUnknownFieldNameJs
	cCs�tjdddddd�}|j|j��|j|jd��|j|jd��|j|jd��|j|jd��|jd|j�|jd|j�|jd|j�dS(NRJiR�RHtdummy2(	RRoRYR�R9R,RJR�RH(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestInitRequiredKwargsRsc	Cs?tjdtjdddddd��}|j|j��|j|jd��|j|jj��|j|jjd��|j|jjd��|j|jjd��|j|jjd��|jtjdddddd�|j�|jd|jj�|jd|jj	�|jd|jj
�dS(NR�RJiR�RHR�(RR�RoRYR�R9R�R,RJR�RH(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestInitRequiredForeignKwargs]s	!!
cCswtjddddg�}|j|j��|jd|jd�|jd|jd�|jd|jd�dS(NR<iiii(RR6RYR�R,R<(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestInitRepeatedKwargsms
(R#R$R?R@RARBRCRLRPRRRURbRcRdRiRkRlRnRpRrRuRzR{R�R�R�R�R�R�R�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR>D	s8	
		
	
						6	)			3	!	
												tOptionsTestcBseZd�Zd�ZRS(cCsTtj�}|jt|jj�j�tj�}|jt	|jj�j�dS(N(
RR�R,RAR�RYRZRR6RB(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMessageOptionsws		cCs�tj�}d|_d|_x3|j�D]%\}}|jt|j�j�q+Wtj	�}|j
jd�|jjd�xL|j�D]>\}}|jt
|j�j�|jtjj|j�q�WdS(Nig@(RR6R2R3R�R,RBRYRyRR7R|R8RARR5RWR$(RR:tfield_descriptort_((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestPackedOptionss		(R#R$R�R�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�us	tClassAPITestcBs�eZejej�dko-ej�dkd�d��Zd�Ze	j
d�d��Ze	j
d�d��Ze	j
d�d��Z
RS(	R�is6C++ implementation requires a call to MakeDescriptor()cCs$tjddddddgdgdgdg�}tjd	d
ddddgd|gdgdg�}tjddddddgdgdgdg�}tjd
dddddgd||gdgdg�}tj|�}|jd	|j�|jd|j�|jd|jj�dS(Ntleafspackage.parent.child.leafR�R&R1R/R0R2R2spackage.parent.childtsiblingspackage.parent.siblingtparentspackage.parent(RR:R7Rt	MakeClassR�t__dict__R2(Rt	leaf_desct
child_desctsibling_desctparent_desct
message_class((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt!testMakeClassWithNestedDescriptor�s(			cCs4d|d}tj�}tj||�|j�S(s Get a serialized representation of a test FileDescriptorProto.

    Args:
      name: All calls to this must use a unique message name, to avoid
          collisions in the cpp descriptor pool.
    Returns:
      A string containing the serialized form of a test FileDescriptorProto.
    smessage_type {  name: "si"  field {    name: "flat"    number: 1    label: LABEL_REPEATED    type: TYPE_UINT32  }  field {    name: "bar"    number: 2    label: LABEL_OPTIONAL    type: TYPE_MESSAGE    type_name: "Bar"  }  nested_type {    name: "Bar"    field {      name: "baz"      number: 3      label: LABEL_OPTIONAL      type: TYPE_MESSAGE      type_name: "Baz"    }    nested_type {      name: "Baz"      enum_type {        name: "deep_enum"        value {          name: "VALUE_A"          number: 0        }      }      field {        name: "deep"        number: 4        label: LABEL_OPTIONAL        type: TYPE_UINT32      }    }  }}(RR�RtMergeR�(RRtfile_descriptor_strtfile_descriptor((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt_GetSerializedFileDescriptor�s)s MakeDescriptor is not repeatablecs�tj�dkrdStj�}|j|jd��tj|jd��dt	j
tjt
j�f�fd��Y}|�}d}tj||�|j|jddd	g�dS(
s7Test that the generated class can parse a flat message.RvNtAitMessageClasscseZ�ZRS((R#R$R�((tmsg_descriptor(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR��ssflat: 0 flat: 1 flat: 2 ii(RRxRR�R�R�RRXR'R<R=RR>RR?RR�R,tflat(RR�R�R�tmsg_str((R�sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt0testParsingFlatClassWithExplicitClassDeclaration�s
.	cCs�tj�}|j|jd��tj|jd�}tj|�}|�}d}t	j
||�|j|jdddg�dS(s7Test that the generated class can parse a flat message.tBisflat: 0 flat: 1 flat: 2 iiN(
RR�R�R�RRXR'RR�RR�R,R�(RR�R�t	msg_classR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestParsingFlatClass�s	cCs�tj�}|j|jd��tj|jd�}tj|�}|�}d}t	j
||�|j|jj
jd�dS(s9Test that the generated class can parse a nested message.tCisbar {  baz {    deep: 4  }}iN(RR�R�R�RRXR'RR�RR�R,R�R�tdeep(RR�R�R�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestParsingNestedClasss	(R#R$R�R�RRxR�R�R�RtSkipReferenceLeakCheckerR�R�R�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR��s!	8t__main__()R%R�RmRdR<Rt	unittest2R�tImportErrortgoogle.protobufRRRRRRRRR�RR	R
RRR
RRtBaseTestCasetobjectRR+R�RRRRR>R�R�R#tmain(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt<module>#s`
	-�������V!�9��3�PK�\5����0protobuf/internal/message_set_extensions_pb2.pyonu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��ZdZejddddddddddddddded dd!dd"dd#dd$ed%dd&dd'e�Zejdd(dd)d*dd'ed#dd+gd,gd-gd.gd&ejej�ed/��d0eddd1dZgd4gd5d6d7d8�Zejdd9dd:d*dd'ed#dd+ejdd;dd<dddd=dd>ddddded dd!dd"dd#dd$ed%dd&dd'e�gd,ejdd?dd@ddddAddddddded dd!dd"dd#dd$ed%dd&dd'e�gd-gd.gd&dd0eddd1gd4gd5dBd7dC�ZejddDddEd*dd'ed#dd+ejddFddGddddHddIddIddded edJ�jdK�d!dd"dd#dd$ed%dd&dd'e�gd,ejdd?ddLddddMddddddded dd!dd"dd#dd$ed%dd&dd'e�gd-gd.gd&dd0eddd1gd4gd5dNd7dO�ZejddPddQd*dd'ed#dd+ejddRddSddddTddIddIddded edJ�jdK�d!dd"dd#dd$ed%dd&dd'e�gd,gd-gd.gd&dd0eddd1gd4gd5dUd7dV�Zeejd(<eejd9<eejdD<eejdP<eej d<ej!e�e	j"d(ej#fe$dWedXdY��Z%ej&e%�e	j"d9ej#fe$dWedXdY��Z'ej&e'�e	j"dDej#fe$dWedXdY��Z(ej&e(�e	j"dPej#fe$dWedXdY��Z)ej&e)�ee_*e%j+e�eej d?_*e%j+ej d?�eej d?_*e%j+ej d?�ee_,ejej�ed/��e_-dS([i����NiicCs|S(N((tx((sW/usr/lib/python2.7/site-packages/google/protobuf/internal/message_set_extensions_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sW/usr/lib/python2.7/site-packages/google/protobuf/internal/message_set_extensions_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames5google/protobuf/internal/message_set_extensions.prototpackagesgoogle.protobuf.internaltsyntaxtproto2t
serialized_pbsn
5google/protobuf/internal/message_set_extensions.protogoogle.protobuf.internal"
TestMessageSet*����:"�
TestMessageSetExtension1	
i (2~
message_set_extension(.google.protobuf.internal.TestMessageSet���. (22.google.protobuf.internal.TestMessageSetExtension1"�
TestMessageSetExtension2
str (	2~
message_set_extension(.google.protobuf.internal.TestMessageSet��. (22.google.protobuf.internal.TestMessageSetExtension2"(
TestMessageSetExtension3
text# (	:
message_set_extension3(.google.protobuf.internal.TestMessageSet��. (22.google.protobuf.internal.TestMessageSetExtension3i߿�tmessage_set_extension3t	full_names/google.protobuf.internal.message_set_extension3tindextnumberttypeitcpp_typei
tlabelithas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfiletTestMessageSets'google.protobuf.internal.TestMessageSettfilenametfieldst
extensionstnested_typest
enum_typesst
is_extendabletextension_rangesii���toneofstserialized_startiStserialized_endiqtTestMessageSetExtension1s1google.protobuf.internal.TestMessageSetExtension1tis3google.protobuf.internal.TestMessageSetExtension1.iiitmessage_set_extensionsGgoogle.protobuf.internal.TestMessageSetExtension1.message_set_extensioni���ititTestMessageSetExtension2s1google.protobuf.internal.TestMessageSetExtension2tstrs5google.protobuf.internal.TestMessageSetExtension2.strii	Rsutf-8sGgoogle.protobuf.internal.TestMessageSetExtension2.message_set_extensioniʿ�ii�tTestMessageSetExtension3s1google.protobuf.internal.TestMessageSetExtension3ttexts6google.protobuf.internal.TestMessageSetExtension3.texti#i�i�t
DESCRIPTORt
__module__s3google.protobuf.internal.message_set_extensions_pb2(ii���(.tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR1t#MESSAGE_SET_EXTENSION3_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRt
Descriptort
_ParseOptionstMessageOptionst_TESTMESSAGESETt_TESTMESSAGESETEXTENSION1tdecodet_TESTMESSAGESETEXTENSION2t_TESTMESSAGESETEXTENSION3tmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR*R-R/RtRegisterExtensionthas_optionst_options(((sW/usr/lib/python2.7/site-packages/google/protobuf/internal/message_set_extensions_pb2.pyt<module>s(%																









	
	PK�\�=P�]]"protobuf/internal/any_test_pb2.pycnu�[����
���hc/@spddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�Zejdddddddedddejdddddddd d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejdd.dd/dd dd0d!d1d#d d$d d%ed&dd)dd*dddd+ed,dd-dde�gd2gd3gd4gd-ejej�ed5��d6eddd7gd8gd9d:d;d<�Zejdd=dd>dddedddejdd.dd?dddd d!d@d#dAd$d d%ed&dd)dd*dddd+ed,dd-dde�ejddBddCdd dd0d!d1d#d d$d d%ed&dd)dd*dddd+ed,dd-dde�ejddDddEdd0ddd!d@d#dAd$dd%ed&gd)dd*dddd+ed,dd-dde�gd2gd3egd4gd-dd6eddd7dVgd8gd9dGd;dH�ZejddIddJdddedddejddKddLddddMd!d1d#d d$d d%ed&dd)dd*dddd+ed,dd-dde�gd2ejddNddOddddPd!d@d#dAd$d d%ed&dd)dd*dddd+ed,dd-dde�gd3gd4gd-dd6eddd7gd8gd9dQd;dR�Zee_ejej d._!eej dD_!eej"d=<eej"dI<ej#e�e	j$d=ej%fe&de	j$dej%fe&dSedTdU��dSedTdU��Z'ej(e'�ej(e'j)�e	j$dIej%fe&dSedTdU��Z*ej(e*�eej+dN_!e'j,ej+dN�ee_-ejej�ed5��e_.dS(Wi����NiicCs|S(N((tx((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/any_test_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/any_test_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tany_pb2tnames'google/protobuf/internal/any_test.prototpackagesgoogle.protobuf.internaltsyntaxtproto2t
serialized_pbs�
'google/protobuf/internal/any_test.protogoogle.protobuf.internalgoogle/protobuf/any.proto"�
TestAny#
value (2.google.protobuf.Any
	int_value (B
	map_value (2/.google.protobuf.internal.TestAny.MapValueEntry/

MapValueEntry
key (	
value (:8*
����"�
TestAnyExtension1	
i (2e

extension1!.google.protobuf.internal.TestAny���. (2+.google.protobuf.internal.TestAnyExtension1tdependenciest
MapValueEntryt	full_names.google.protobuf.internal.TestAny.MapValueEntrytfilenametfiletcontaining_typetfieldstkeys2google.protobuf.internal.TestAny.MapValueEntry.keytindextnumberittypei	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetoptionstvalues4google.protobuf.internal.TestAny.MapValueEntry.valueiit
extensionstnested_typest
enum_typess8t
is_extendabletextension_rangestoneofstserialized_starti�tserialized_enditTestAnys google.protobuf.internal.TestAnys&google.protobuf.internal.TestAny.valueii
t	int_values*google.protobuf.internal.TestAny.int_valuet	map_values*google.protobuf.internal.TestAny.map_valuei iai!tTestAnyExtension1s*google.protobuf.internal.TestAnyExtension1tis,google.protobuf.internal.TestAnyExtension1.iit
extension1s5google.protobuf.internal.TestAnyExtension1.extension1i���i$i�t
DESCRIPTORt
__module__s%google.protobuf.internal.any_test_pb2(i
i (/tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbR
t google_dot_protobuf_dot_any__pb2tFileDescriptorR3t
DescriptortNonetFieldDescriptortFalsetdecodet
_ParseOptionstMessageOptionst_TESTANY_MAPVALUEENTRYtTruet_TESTANYt_TESTANYEXTENSION1Rt_ANYtfields_by_nameRtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR-tRegisterMessageRR0textensions_by_nametRegisterExtensionthas_optionst_options(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/any_test_pb2.pyt<module>s%																	




	PK�\��z?
?
.protobuf/internal/descriptor_database_test.pycnu�[����
���hc@s�dZdZyddlZWnek
r;ddlZnXddlmZddlmZddlm	Z	ddlm
Z
dejfd	��YZe
d
kr�ej�ndS(s.Tests for google.protobuf.descriptor_database.s"matthewtoia@google.com (Matt Toia)i����N(tunittest_pb2(tdescriptor_pb2(tfactory_test2_pb2(tdescriptor_databasetDescriptorDatabaseTestcBseZd�ZRS(cCs�tj�}tjjtjj�}|j|�|j	||j
d��|j	||jd��|j	||jd��|j	||jd��|j	||jd��|j	||jd��|j	||jd��|j	||jd��|j	||jd	��|j	||jd
��tjjtjj�}|j|�|j	||jd��|j	||jd��|j
t|jd
�dS(Ns,google/protobuf/internal/factory_test2.protos/google.protobuf.python.internal.Factory2MessagesEgoogle.protobuf.python.internal.Factory2Message.NestedFactory2Messages,google.protobuf.python.internal.Factory2EnumsBgoogle.protobuf.python.internal.Factory2Message.NestedFactory2EnumsDgoogle.protobuf.python.internal.MessageWithNestedEnumOnly.NestedEnums:google.protobuf.python.internal.Factory2Message.list_fields>google.protobuf.python.internal.Factory2Enum.FACTORY_2_VALUE_0s-google.protobuf.python.internal.another_fields>google.protobuf.python.internal.Factory2Message.one_more_fieldsprotobuf_unittest.TestServices)protobuf_unittest.TestAllTypes.none_fieldsprotobuf_unittest.NoneMessage(RtDescriptorDatabaseRtFileDescriptorProtot
FromStringRt
DESCRIPTORt
serialized_pbtAddtassertEqualtFindFileByNametFindFileContainingSymbolRtassertRaisestKeyError(tselftdbtfile_desc_prototfile_desc_proto2((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_database_test.pyttestAdd1sD	










	


	(t__name__t
__module__R(((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_database_test.pyR/st__main__(t__doc__t
__author__t	unittest2tunittesttImportErrortgoogle.protobufRRtgoogle.protobuf.internalRRtTestCaseRRtmain(((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_database_test.pyt<module> s
6PK�\_kEX77-protobuf/internal/test_bad_identifiers_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/test_bad_identifiers.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import service as _service
from google.protobuf import service_reflection
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/test_bad_identifiers.proto',
  package='protobuf_unittest',
  syntax='proto2',
  serialized_pb=_b('\n3google/protobuf/internal/test_bad_identifiers.proto\x12\x11protobuf_unittest\"\x1e\n\x12TestBadIdentifiers*\x08\x08\x64\x10\x80\x80\x80\x80\x02\"\x10\n\x0e\x41notherMessage2\x10\n\x0e\x41notherService:;\n\x07message\x12%.protobuf_unittest.TestBadIdentifiers\x18\x64 \x01(\t:\x03\x66oo:>\n\ndescriptor\x12%.protobuf_unittest.TestBadIdentifiers\x18\x65 \x01(\t:\x03\x62\x61r:>\n\nreflection\x12%.protobuf_unittest.TestBadIdentifiers\x18\x66 \x01(\t:\x03\x62\x61z:;\n\x07service\x12%.protobuf_unittest.TestBadIdentifiers\x18g \x01(\t:\x03quxB\x03\x90\x01\x01')
)


MESSAGE_FIELD_NUMBER = 100
message = _descriptor.FieldDescriptor(
  name='message', full_name='protobuf_unittest.message', index=0,
  number=100, type=9, cpp_type=9, label=1,
  has_default_value=True, default_value=_b("foo").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DESCRIPTOR_FIELD_NUMBER = 101
descriptor = _descriptor.FieldDescriptor(
  name='descriptor', full_name='protobuf_unittest.descriptor', index=1,
  number=101, type=9, cpp_type=9, label=1,
  has_default_value=True, default_value=_b("bar").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REFLECTION_FIELD_NUMBER = 102
reflection = _descriptor.FieldDescriptor(
  name='reflection', full_name='protobuf_unittest.reflection', index=2,
  number=102, type=9, cpp_type=9, label=1,
  has_default_value=True, default_value=_b("baz").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
SERVICE_FIELD_NUMBER = 103
service = _descriptor.FieldDescriptor(
  name='service', full_name='protobuf_unittest.service', index=3,
  number=103, type=9, cpp_type=9, label=1,
  has_default_value=True, default_value=_b("qux").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)


_TESTBADIDENTIFIERS = _descriptor.Descriptor(
  name='TestBadIdentifiers',
  full_name='protobuf_unittest.TestBadIdentifiers',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(100, 536870912), ],
  oneofs=[
  ],
  serialized_start=74,
  serialized_end=104,
)


_ANOTHERMESSAGE = _descriptor.Descriptor(
  name='AnotherMessage',
  full_name='protobuf_unittest.AnotherMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=106,
  serialized_end=122,
)

DESCRIPTOR.message_types_by_name['TestBadIdentifiers'] = _TESTBADIDENTIFIERS
DESCRIPTOR.message_types_by_name['AnotherMessage'] = _ANOTHERMESSAGE
DESCRIPTOR.extensions_by_name['message'] = message
DESCRIPTOR.extensions_by_name['descriptor'] = descriptor
DESCRIPTOR.extensions_by_name['reflection'] = reflection
DESCRIPTOR.extensions_by_name['service'] = service
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestBadIdentifiers = _reflection.GeneratedProtocolMessageType('TestBadIdentifiers', (_message.Message,), dict(
  DESCRIPTOR = _TESTBADIDENTIFIERS,
  __module__ = 'google.protobuf.internal.test_bad_identifiers_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestBadIdentifiers)
  ))
_sym_db.RegisterMessage(TestBadIdentifiers)

AnotherMessage = _reflection.GeneratedProtocolMessageType('AnotherMessage', (_message.Message,), dict(
  DESCRIPTOR = _ANOTHERMESSAGE,
  __module__ = 'google.protobuf.internal.test_bad_identifiers_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.AnotherMessage)
  ))
_sym_db.RegisterMessage(AnotherMessage)

TestBadIdentifiers.RegisterExtension(message)
TestBadIdentifiers.RegisterExtension(descriptor)
TestBadIdentifiers.RegisterExtension(reflection)
TestBadIdentifiers.RegisterExtension(service)

DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\220\001\001'))

_ANOTHERSERVICE = _descriptor.ServiceDescriptor(
  name='AnotherService',
  full_name='protobuf_unittest.AnotherService',
  file=DESCRIPTOR,
  index=0,
  options=None,
  serialized_start=124,
  serialized_end=140,
  methods=[
])
_sym_db.RegisterServiceDescriptor(_ANOTHERSERVICE)

DESCRIPTOR.services_by_name['AnotherService'] = _ANOTHERSERVICE

AnotherService = service_reflection.GeneratedServiceType('AnotherService', (_service.Service,), dict(
  DESCRIPTOR = _ANOTHERSERVICE,
  __module__ = 'google.protobuf.internal.test_bad_identifiers_pb2'
  ))

AnotherService_Stub = service_reflection.GeneratedServiceStubType('AnotherService_Stub', (AnotherService,), dict(
  DESCRIPTOR = _ANOTHERSERVICE,
  __module__ = 'google.protobuf.internal.test_bad_identifiers_pb2'
  ))


# @@protoc_insertion_point(module_scope)
PK�\s`���%�%,protobuf/internal/missing_enum_values_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/missing_enum_values.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/missing_enum_values.proto',
  package='google.protobuf.python.internal',
  syntax='proto2',
  serialized_pb=_b('\n2google/protobuf/internal/missing_enum_values.proto\x12\x1fgoogle.protobuf.python.internal\"\xc1\x02\n\x0eTestEnumValues\x12X\n\x14optional_nested_enum\x18\x01 \x01(\x0e\x32:.google.protobuf.python.internal.TestEnumValues.NestedEnum\x12X\n\x14repeated_nested_enum\x18\x02 \x03(\x0e\x32:.google.protobuf.python.internal.TestEnumValues.NestedEnum\x12Z\n\x12packed_nested_enum\x18\x03 \x03(\x0e\x32:.google.protobuf.python.internal.TestEnumValues.NestedEnumB\x02\x10\x01\"\x1f\n\nNestedEnum\x12\x08\n\x04ZERO\x10\x00\x12\x07\n\x03ONE\x10\x01\"\xd3\x02\n\x15TestMissingEnumValues\x12_\n\x14optional_nested_enum\x18\x01 \x01(\x0e\x32\x41.google.protobuf.python.internal.TestMissingEnumValues.NestedEnum\x12_\n\x14repeated_nested_enum\x18\x02 \x03(\x0e\x32\x41.google.protobuf.python.internal.TestMissingEnumValues.NestedEnum\x12\x61\n\x12packed_nested_enum\x18\x03 \x03(\x0e\x32\x41.google.protobuf.python.internal.TestMissingEnumValues.NestedEnumB\x02\x10\x01\"\x15\n\nNestedEnum\x12\x07\n\x03TWO\x10\x02\"\x1b\n\nJustString\x12\r\n\x05\x64ummy\x18\x01 \x02(\t')
)



_TESTENUMVALUES_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.TestEnumValues.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ZERO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ONE', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=378,
  serialized_end=409,
)
_sym_db.RegisterEnumDescriptor(_TESTENUMVALUES_NESTEDENUM)

_TESTMISSINGENUMVALUES_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.TestMissingEnumValues.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='TWO', index=0, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=730,
  serialized_end=751,
)
_sym_db.RegisterEnumDescriptor(_TESTMISSINGENUMVALUES_NESTEDENUM)


_TESTENUMVALUES = _descriptor.Descriptor(
  name='TestEnumValues',
  full_name='google.protobuf.python.internal.TestEnumValues',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_nested_enum', full_name='google.protobuf.python.internal.TestEnumValues.optional_nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_enum', full_name='google.protobuf.python.internal.TestEnumValues.repeated_nested_enum', index=1,
      number=2, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_nested_enum', full_name='google.protobuf.python.internal.TestEnumValues.packed_nested_enum', index=2,
      number=3, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _TESTENUMVALUES_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=88,
  serialized_end=409,
)


_TESTMISSINGENUMVALUES = _descriptor.Descriptor(
  name='TestMissingEnumValues',
  full_name='google.protobuf.python.internal.TestMissingEnumValues',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_nested_enum', full_name='google.protobuf.python.internal.TestMissingEnumValues.optional_nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=2,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_enum', full_name='google.protobuf.python.internal.TestMissingEnumValues.repeated_nested_enum', index=1,
      number=2, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_nested_enum', full_name='google.protobuf.python.internal.TestMissingEnumValues.packed_nested_enum', index=2,
      number=3, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _TESTMISSINGENUMVALUES_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=412,
  serialized_end=751,
)


_JUSTSTRING = _descriptor.Descriptor(
  name='JustString',
  full_name='google.protobuf.python.internal.JustString',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='dummy', full_name='google.protobuf.python.internal.JustString.dummy', index=0,
      number=1, type=9, cpp_type=9, label=2,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=753,
  serialized_end=780,
)

_TESTENUMVALUES.fields_by_name['optional_nested_enum'].enum_type = _TESTENUMVALUES_NESTEDENUM
_TESTENUMVALUES.fields_by_name['repeated_nested_enum'].enum_type = _TESTENUMVALUES_NESTEDENUM
_TESTENUMVALUES.fields_by_name['packed_nested_enum'].enum_type = _TESTENUMVALUES_NESTEDENUM
_TESTENUMVALUES_NESTEDENUM.containing_type = _TESTENUMVALUES
_TESTMISSINGENUMVALUES.fields_by_name['optional_nested_enum'].enum_type = _TESTMISSINGENUMVALUES_NESTEDENUM
_TESTMISSINGENUMVALUES.fields_by_name['repeated_nested_enum'].enum_type = _TESTMISSINGENUMVALUES_NESTEDENUM
_TESTMISSINGENUMVALUES.fields_by_name['packed_nested_enum'].enum_type = _TESTMISSINGENUMVALUES_NESTEDENUM
_TESTMISSINGENUMVALUES_NESTEDENUM.containing_type = _TESTMISSINGENUMVALUES
DESCRIPTOR.message_types_by_name['TestEnumValues'] = _TESTENUMVALUES
DESCRIPTOR.message_types_by_name['TestMissingEnumValues'] = _TESTMISSINGENUMVALUES
DESCRIPTOR.message_types_by_name['JustString'] = _JUSTSTRING
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestEnumValues = _reflection.GeneratedProtocolMessageType('TestEnumValues', (_message.Message,), dict(
  DESCRIPTOR = _TESTENUMVALUES,
  __module__ = 'google.protobuf.internal.missing_enum_values_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.TestEnumValues)
  ))
_sym_db.RegisterMessage(TestEnumValues)

TestMissingEnumValues = _reflection.GeneratedProtocolMessageType('TestMissingEnumValues', (_message.Message,), dict(
  DESCRIPTOR = _TESTMISSINGENUMVALUES,
  __module__ = 'google.protobuf.internal.missing_enum_values_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.TestMissingEnumValues)
  ))
_sym_db.RegisterMessage(TestMissingEnumValues)

JustString = _reflection.GeneratedProtocolMessageType('JustString', (_message.Message,), dict(
  DESCRIPTOR = _JUSTSTRING,
  __module__ = 'google.protobuf.internal.missing_enum_values_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.JustString)
  ))
_sym_db.RegisterMessage(JustString)


_TESTENUMVALUES.fields_by_name['packed_nested_enum'].has_options = True
_TESTENUMVALUES.fields_by_name['packed_nested_enum']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTMISSINGENUMVALUES.fields_by_name['packed_nested_enum'].has_options = True
_TESTMISSINGENUMVALUES.fields_by_name['packed_nested_enum']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
# @@protoc_insertion_point(module_scope)
PK�\�;���'protobuf/internal/api_implementation.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Determine which implementation of the protobuf API is used in this process.
"""

import os
import warnings
import sys

try:
  # pylint: disable=g-import-not-at-top
  from google.protobuf.internal import _api_implementation
  # The compile-time constants in the _api_implementation module can be used to
  # switch to a certain implementation of the Python API at build time.
  _api_version = _api_implementation.api_version
  _proto_extension_modules_exist_in_build = True
except ImportError:
  _api_version = -1  # Unspecified by compiler flags.
  _proto_extension_modules_exist_in_build = False

if _api_version == 1:
  raise ValueError('api_version=1 is no longer supported.')
if _api_version < 0:  # Still unspecified?
  try:
    # The presence of this module in a build allows the proto implementation to
    # be upgraded merely via build deps rather than a compiler flag or the
    # runtime environment variable.
    # pylint: disable=g-import-not-at-top
    from google.protobuf import _use_fast_cpp_protos
    # Work around a known issue in the classic bootstrap .par import hook.
    if not _use_fast_cpp_protos:
      raise ImportError('_use_fast_cpp_protos import succeeded but was None')
    del _use_fast_cpp_protos
    _api_version = 2
  except ImportError:
    try:
      # pylint: disable=g-import-not-at-top
      from google.protobuf.internal import use_pure_python
      del use_pure_python  # Avoids a pylint error and namespace pollution.
    except ImportError:
      if _proto_extension_modules_exist_in_build:
        if sys.version_info[0] >= 3:  # Python 3 defaults to C++ impl v2.
          _api_version = 2
          # TODO(b/17427486): Make Python 2 default to C++ impl v2.

_default_implementation_type = (
    'python' if _api_version <= 0 else 'cpp')

# This environment variable can be used to switch to a certain implementation
# of the Python API, overriding the compile-time constants in the
# _api_implementation module. Right now only 'python' and 'cpp' are valid
# values. Any other value will be ignored.
_implementation_type = os.getenv('PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION',
                                 _default_implementation_type)

if _implementation_type != 'python':
  _implementation_type = 'cpp'

if 'PyPy' in sys.version and _implementation_type == 'cpp':
  warnings.warn('PyPy does not work yet with cpp protocol buffers. '
                'Falling back to the python implementation.')
  _implementation_type = 'python'

# This environment variable can be used to switch between the two
# 'cpp' implementations, overriding the compile-time constants in the
# _api_implementation module. Right now only '2' is supported. Any other
# value will cause an error to be raised.
_implementation_version_str = os.getenv(
    'PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION', '2')

if _implementation_version_str != '2':
  raise ValueError(
      'unsupported PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION: "' +
      _implementation_version_str + '" (supported versions: 2)'
      )

_implementation_version = int(_implementation_version_str)


# Detect if serialization should be deterministic by default
try:
  # The presence of this module in a build allows the proto implementation to
  # be upgraded merely via build deps.
  #
  # NOTE: Merely importing this automatically enables deterministic proto
  # serialization for C++ code, but we still need to export it as a boolean so
  # that we can do the same for `_implementation_type == 'python'`.
  #
  # NOTE2: It is possible for C++ code to enable deterministic serialization by
  # default _without_ affecting Python code, if the C++ implementation is not in
  # use by this module.  That is intended behavior, so we don't actually expose
  # this boolean outside of this module.
  #
  # pylint: disable=g-import-not-at-top,unused-import
  from google.protobuf import enable_deterministic_proto_serialization
  _python_deterministic_proto_serialization = True
except ImportError:
  _python_deterministic_proto_serialization = False


# Usage of this function is discouraged. Clients shouldn't care which
# implementation of the API is in use. Note that there is no guarantee
# that differences between APIs will be maintained.
# Please don't use this function if possible.
def Type():
  return _implementation_type


# See comment on 'Type' above.
def Version():
  return _implementation_version


# For internal use only
def IsPythonDefaultSerializationDeterministic():
  return _python_deterministic_proto_serialization

# DO NOT USE: For migration and testing only. Will be removed when Proto3
# defaults to preserve unknowns.
if _implementation_type == 'cpp':
  try:
    # pylint: disable=g-import-not-at-top
    from google.protobuf.pyext import _message

    def GetPythonProto3PreserveUnknownsDefault():
      return _message.GetPythonProto3PreserveUnknownsDefault()

    def SetPythonProto3PreserveUnknownsDefault(preserve):
      _message.SetPythonProto3PreserveUnknownsDefault(preserve)
  except ImportError:
    # Unrecognized cpp implementation. Skipping the unknown fields APIs.
    pass
else:
  _python_proto3_preserve_unknowns_default = True

  def GetPythonProto3PreserveUnknownsDefault():
    return _python_proto3_preserve_unknowns_default

  def SetPythonProto3PreserveUnknownsDefault(preserve):
    global _python_proto3_preserve_unknowns_default
    _python_proto3_preserve_unknowns_default = preserve

PK�\����,,-protobuf/internal/missing_enum_values_pb2.pycnu�[����
���hc0@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedejdddddddddd�ejdddddddddd�gd dddd!d"d#d$�	Zeje�ejdddd%dddedejdd&dddd'dddd�gd dddd!d(d#d)�	Zeje�ejdd*dd+ddded dd,ejdd-dd.dddddd/d0d1d2dd3ed4dd5dd6dd dd7ed8dddde�ejdd9dd:dddd'dd/d0d1d2dd3ed4gd5dd6dd dd7ed8dddde�ejdd;dd<dd'dddd/d0d1d2dd3ed4gd5dd6dd dd7ed8ddejej�ed=��de�gd>gd?gd@egdddAedddBgdCgd!dDd#d$�ZejddEddFddded dd,ejdd-ddGdddddd/d0d1d2dd3ed4d'd5dd6dd dd7ed8dddde�ejdd9ddHdddd'dd/d0d1d2dd3ed4gd5dd6dd dd7ed8dddde�ejdd;ddIdd'dddd/d0d1d2dd3ed4gd5dd6dd dd7ed8ddejej�ed=��de�gd>gd?gd@egdddAedddBgdCgd!dJd#d)�ZejddKddLddded dd,ejddMddNddddddOd0dOd2d'd3ed4edP�jdQ�d5dd6dd dd7ed8dddde�gd>gd?gd@gdddAedddBgdCgd!dRd#dS�Zeej d-_!eej d9_!eej d;_!ee_"eej d-_!eej d9_!eej d;_!ee_"eej#d*<eej#dE<eej#dK<ej$e�e	j%d*ej&fe'dTedUdV��Z(ej)e(�e	j%dEej&fe'dTedUdV��Z*ej)e*�e	j%dKej&fe'dTedUdV��Z+ej)e+�e,ej d;_-ejej�ed=��ej d;_.e,ej d;_-ejej�ed=��ej d;_.dS(Wi����NiicCs|S(N((tx((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/missing_enum_values_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/missing_enum_values_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames2google/protobuf/internal/missing_enum_values.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbs
2google/protobuf/internal/missing_enum_values.protogoogle.protobuf.python.internal"�
TestEnumValuesX
optional_nested_enum (2:.google.protobuf.python.internal.TestEnumValues.NestedEnumX
repeated_nested_enum (2:.google.protobuf.python.internal.TestEnumValues.NestedEnumZ
packed_nested_enum (2:.google.protobuf.python.internal.TestEnumValues.NestedEnumB"

NestedEnum
ZERO
ONE"�
TestMissingEnumValues_
optional_nested_enum (2A.google.protobuf.python.internal.TestMissingEnumValues.NestedEnum_
repeated_nested_enum (2A.google.protobuf.python.internal.TestMissingEnumValues.NestedEnuma
packed_nested_enum (2A.google.protobuf.python.internal.TestMissingEnumValues.NestedEnumB"

NestedEnum
TWO"

JustString
dummy (	t
NestedEnumt	full_names9google.protobuf.python.internal.TestEnumValues.NestedEnumtfilenametfiletvaluestZEROtindextnumbertoptionsttypetONEitcontaining_typetserialized_startiztserialized_endi�s@google.protobuf.python.internal.TestMissingEnumValues.NestedEnumtTWOii�i�tTestEnumValuess.google.protobuf.python.internal.TestEnumValuestfieldstoptional_nested_enumsCgoogle.protobuf.python.internal.TestEnumValues.optional_nested_enumitcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetrepeated_nested_enumsCgoogle.protobuf.python.internal.TestEnumValues.repeated_nested_enumtpacked_nested_enumsAgoogle.protobuf.python.internal.TestEnumValues.packed_nested_enumst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsiXtTestMissingEnumValuess5google.protobuf.python.internal.TestMissingEnumValuessJgoogle.protobuf.python.internal.TestMissingEnumValues.optional_nested_enumsJgoogle.protobuf.python.internal.TestMissingEnumValues.repeated_nested_enumsHgoogle.protobuf.python.internal.TestMissingEnumValues.packed_nested_enumi�t
JustStrings*google.protobuf.python.internal.JustStringtdummys0google.protobuf.python.internal.JustString.dummyi	Rsutf-8i�it
DESCRIPTORt
__module__s0google.protobuf.internal.missing_enum_values_pb2(/tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR4tEnumDescriptortNonetEnumValueDescriptort_TESTENUMVALUES_NESTEDENUMtRegisterEnumDescriptort!_TESTMISSINGENUMVALUES_NESTEDENUMt
DescriptortFieldDescriptortFalset
_ParseOptionstFieldOptionst_TESTENUMVALUESt_TESTMISSINGENUMVALUEStdecodet_JUSTSTRINGtfields_by_nameR&Rtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR1R2tTruethas_optionst_options(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/missing_enum_values_pb2.pyt<module>sR%					
			
				*						*							






(PK�\���4e4eprotobuf/internal/decoder.pyonu�[����
���hc@s�dZdZddlZddlZejr6eZnddlmZddlm	Z	ddl
mZdZeZ
edZejZd	�Zd
�Zed(e�Zede�Zed*e�Zed
e�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zee	je�Zee	je�Z ee	je�Z!ee	je�Z"ee	jee	j#�Z$ee	jee	j#�Z%ee	j&d�Z'ee	j(d�Z)ee	j&d�Z*ee	j(d�Z+e�Z,e�Z-ee	jee.�Z/d�Z0d�Z1d�Z2d�Z3ej4de	j5�Z6d�Z7d�Z8d�Z9d �Z:d!�Z;d"�Z<d#�Z=d$�Z>d%�Z?d&�Z@e@�ZAdS(+s�	Code for decoding protocol buffer primitives.

This code is very similar to encoder.py -- read the docs for that module first.

A "decoder" is a function with the signature:
  Decode(buffer, pos, end, message, field_dict)
The arguments are:
  buffer:     The string containing the encoded message.
  pos:        The current position in the string.
  end:        The position in the string where the current message ends.  May be
              less than len(buffer) if we're reading a sub-message.
  message:    The message object into which we're parsing.
  field_dict: message._fields (avoids a hashtable lookup).
The decoder reads the field and stores it into field_dict, returning the new
buffer position.  A decoder for a repeated field may proactively decode all of
the elements of that field, if they appear consecutively.

Note that decoders may throw any of the following:
  IndexError:  Indicates a truncated message.
  struct.error:  Unpacking of a fixed-width field failed.
  message.DecodeError:  Other errors.

Decoders are expected to raise an exception if they are called with pos > end.
This allows callers to be lax about bounds checking:  it's fineto read past
"end" as long as you are sure that someone else will notice and throw an
exception later on.

Something up the call stack is expected to catch IndexError and struct.error
and convert them to message.DecodeError.

Decoders are constructed using decoder constructors with the signature:
  MakeDecoder(field_number, is_repeated, is_packed, key, new_default)
The arguments are:
  field_number:  The field number of the field we want to decode.
  is_repeated:   Is the field a repeated field? (bool)
  is_packed:     Is the field a packed field? (bool)
  key:           The key to use when looking up the field within field_dict.
                 (This is actually the FieldDescriptor but nothing in this
                 file should depend on that.)
  new_default:   A function which takes a message object as a parameter and
                 returns a new instance of the default value for this field.
                 (This is called for repeated fields and sub-messages, when an
                 instance does not already exist.)

As with encoders, we define a decoder constructor for every type of field.
Then, for every field of every message class we construct an actual decoder.
That decoder goes into a dict indexed by tag, so when we decode a message
we repeatedly read a tag, look up the corresponding decoder, and invoke it.
s kenton@google.com (Kenton Varda)i����N(tencoder(twire_format(tmessageg�ics��fd�}|S(s�Return an encoder for a basic varint value (does not include tag).

  Decoded values will be bitwise-anded with the given mask before being
  returned, e.g. to limit them to 32 bits.  The returned decoder does not
  take the usual "end" parameter -- the caller is expected to do bounds checking
  after the fact (often the caller can defer such checking until later).  The
  decoder returns a (value, new_pos) pair.
  cs�d}d}x�tj||�}||d@|>O}|d7}|d@sg|�M}�|�}||fS|d7}|dkrtd��qqWdS(Niiii�ii@s$Too many bytes when decoding varint.(tsixt
indexbytest_DecodeError(tbuffertpostresulttshifttb(tmasktresult_type(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytDecodeVarintus




((RRR
((RRsD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_VarintDecoderks
cs5d|d>�d|>d����fd�}|S(s0Like _VarintDecoder() but decodes signed values.ics�d}d}x�tj||�}||d@|>O}|d7}|d@su|�M}|�A�}�|�}||fS|d7}|dkrtd��qqWdS(Niiii�ii@s$Too many bytes when decoding varint.(RRR(RRRR	R
(RRtsignbit(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR
�s




((tbitsRR
((RRRsD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SignedVarintDecoder�sii@i cCsQ|}x$tj||�d@r,|d7}q	W|d7}tj|||!�|fS(s�Read a tag from the buffer, and return a (tag_bytes, new_pos) tuple.

  We return the raw bytes of the tag rather than decoding them.  The raw
  bytes can then be used to look up the proper decoder.  This effectively allows
  us to trade some work that would be done in pure-python (decoding a varint)
  for work that is done in C (searching for a byte string in a hash table).
  In a low-level language it would be much cheaper to decode the varint and
  use that, but not in Python.
  i�i(RRtbinary_type(RRtstart((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytReadTag�s

cs��fd�}|S(s�Return a constructor for a decoder for fields of a particular type.

  Args:
      wire_type:  The field's wire type.
      decode_value:  A function which decodes an individual value, e.g.
        _DecodeVarint()
  cs�|r(t�����fd�}|S|rktj|���t��������fd�}|S��fd�}|SdS(Ncs�|j��}|dkr6|j��|��}n�||�\}}||7}||krptd��nx2||kr��||�\}}|j|�qsW||kr�|d=td��n|S(NsTruncated message.i����sPacked element was truncated.(tgettNonet
setdefaultRtappend(RRtendRt
field_dicttvaluetendpointtelement(tdecode_valuetkeytlocal_DecodeVarinttnew_default(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytDecodePackedField�s
cs�|j��}|dkr6|j��|��}nxn�||�\}}|j|�|�}|||!�ks�||kr9||kr�td��n|Sq9WdS(NsTruncated message.(RRRRR(RRRRRRRtnew_pos(RRR!t	tag_bytesttag_len(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytDecodeRepeatedField�s

cs?�||�\|�<}||kr;|�=td��n|S(NsTruncated message.(R(RRRRR(RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytDecodeField�s
(t
_DecodeVarintRtTagBytestlen(tfield_numbertis_repeatedt	is_packedRR!R"R&R'(Rt	wire_type(RR R!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytSpecificDecoder�s((R.RR/((RR.sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SimpleDecoder�s	/cs��fd�}t||�S(s�Like SimpleDecoder but additionally invokes modify_value on every value
  before storing it.  Usually modify_value is ZigZagDecode.
  cs%�||�\}}�|�|fS(N((RRRR#(Rtmodify_value(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytInnerDecodes(R0(R.RR1R2((RR1sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_ModifiedDecoder�scs:tj���tj����fd�}t||�S(s�Return a constructor for a decoder for a fixed-width field.

  Args:
      wire_type:  The field's wire type.
      format:  The format string to pass to struct.unpack().
  cs.|�}��|||!�d}||fS(Ni((RRR#R(tformattlocal_unpackt
value_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR2s
(tstructtcalcsizetunpackR0(R.R4R2((R4R5R6sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_StructPackDecoders		cs(tj��fd�}ttj|�S(s�Returns a decoder for a float field.

  This code works around a bug in struct.unpack for non-finite 32-bit
  floating-point values.
  cs�|d}|||!}|dd!dkr�|dd!dkr�|dd!dkrZt|fS|dd!dkrwt|fSt|fS�d	|�d}||fS(
Niis�is�is�s�s<f(t_NANt_NEG_INFt_POS_INF(RRR#tfloat_bytesR(R5(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR2)s

&


(R7R9R0RtWIRETYPE_FIXED32(R2((R5sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
_FloatDecoder s	cs(tj��fd�}ttj|�S(skReturns a decoder for a double field.

  This code works around a bug in struct.unpack for not-a-number.
  csw|d}|||!}|dd!dkrZ|dd!dkrZ|dd!dkrZt|fS�d|�d}||fS(	Niis�is�is�s<d(R;(RRR#tdouble_bytesR(R5(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR2Ks


(R7R9R0RtWIRETYPE_FIXED64(R2((R5sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_DoubleDecoderCs	cs��j�|r4t������fd�}|S|rztj�tj��t��������fd�}|S���fd�}|SdS(Nc
sF|j��}|dkr6|j��|��}n�||�\}}||7}||krptd��nx�||kr|}t||�\}}|�jkr�|j|�qs|js�g|_ntj	�t
j�}	|jj|	|||!f�qsW||krB|�jkr)|d=n
|jd=td��n|S(NsTruncated message.i����sPacked element was truncated.(RRRRt_DecodeSignedVarint32tvalues_by_numberRt_unknown_fieldsRR)RtWIRETYPE_VARINT(
RRRRRRRtvalue_start_posRR$(t	enum_typeR+RR R!(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR"es0
			

cs�|j��}|dkr6|j��|��}nx�t||�\}}|�jkrm|j|�n2|js�g|_n|jj�|||!f�|�}|||!�ks�||kr9||kr�td��n|Sq9WdS(NsTruncated message.(RRRRDRERRFR(RRRRRRRR#(RIRR!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR&�s 		
cs�|}t||�\}}||kr6td��n|�jkrR||�<nG|jsgg|_ntj�tj�}|jj||||!f�|S(NsTruncated message.(	RDRRERFRR)RRGR(RRRRRRHt
enum_valueR$(RIR+R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR'�s
			(RIR(RR)RRGR*(R+R,R-RR!R"R&R'((RIR+RR R!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytEnumDecoderas	s<Is<Qs<is<qcs�t�tj���fd��|rjtj|tj��t���������fd�}|S���fd�}|SdS(s%Returns a decoder for a string field.csDy�|d�SWn,tk
r?}d|�jf|_�nXdS(Nsutf-8s%s in field: %s(tUnicodeDecodeErrort	full_nametreason(tbyte_strte(Rt
local_unicode(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_ConvertToUnicode�s
cs�|j��}|dkr6|j��|��}nx��||�\}}||}||krstd��n|j�|||!��|�}|||!�ks�||kr9|Sq9WdS(NsTruncated string.(RRRRR(RRRRRRtsizeR#(RRRR R!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR&�s

csU�||�\}}||}||kr:td��n�|||!�|�<|S(NsTruncated string.(R(RRRRRRSR#(RRRR (sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR'�s
N(R(Rt	text_typeRR)RtWIRETYPE_LENGTH_DELIMITEDR*(R+R,R-RR!R&R'((RRRR RQR!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
StringDecoder�s			csft�|rLtj|tj��t��������fd�}|S��fd�}|SdS(s$Returns a decoder for a bytes field.cs�|j��}|dkr6|j��|��}nx�||�\}}||}||krstd��n|j|||!�|�}|||!�ks�||kr9|Sq9WdS(NsTruncated string.(RRRRR(RRRRRRRSR#(RR R!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR&s

csO�||�\}}||}||kr:td��n|||!|�<|S(NsTruncated string.(R(RRRRRRSR#(RR (sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR's
N(R(RR)RRUR*(R+R,R-RR!R&R'((RR R!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytBytesDecoder�s	cs�tj|tj��t���|rjtj|tj��t���������fd�}|S����fd�}|SdS(s$Returns a decoder for a group field.cs�|j��}|dkr6|j��|��}nx�|j��}|dkro|j��|��}n|j�j|||�}|�}|||!�ks�||kr�td��n|�}|||!�ks�||kr9|Sq9WdS(NsMissing group end tag.(RRRtaddt_InternalParseR(RRRRRRR#(t
end_tag_bytestend_tag_lenRR!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR&,s

cs�|j��}|dkr6|j��|��}n|j|||�}|�}|||!�kst||kr�td��n|S(NsMissing group end tag.(RRRRYR(RRRRRRR#(RZR[RR!(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR'As
N(RR)RtWIRETYPE_END_GROUPR*tWIRETYPE_START_GROUP(R+R,R-RR!R&R'((RZR[RR!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytGroupDecoder s		csit�|rLtj|tj��t��������fd�}|S���fd�}|SdS(s&Returns a decoder for a message field.cs�|j��}|dkr6|j��|��}nx��||�\}}||}||krstd��n|j�j|||�|kr�td��n|�}|||!�ks�||kr9|Sq9WdS(NsTruncated message.sUnexpected end-group tag.(RRRRRXRY(RRRRRRRSR#(RR R!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR&Ys
!
cs�|j��}|dkr6|j��|��}n�||�\}}||}||krptd��n|j|||�|kr�td��n|S(NsTruncated message.sUnexpected end-group tag.(RRRRRY(RRRRRRRSR#(RR R!(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR'os
N(R(RR)RRUR*(R+R,R-RR!R&R'((RR R!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytMessageDecoderOs	csptjdtj��tjdtj��tjdtj��t�t�t}�����fd�}|S(sReturns a decoder for a MessageSet item.

  The parameter is the message Descriptor.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  iiic
s�|}d}d}d}x��||�\}	}|	�krT�||�\}}q|	�kr��||�\}
}||
}}q|	�kr�Pqt||||	�}|dkrtd��qqW||kr�td��n|dkrtd��n|dkrtd��n|jj|�}|dk	r�|j|�}|dkrr|j||jj��}n|j	|||�|kr�td��q�n2|j
s�g|_
n|j
jt|||!f�|S(Ni����sMissing group end tag.sTruncated message.s MessageSet item missing type_id.s MessageSet item missing message.sUnexpected end-group tag.(
t	SkipFieldRt
Extensionst_FindExtensionByNumberRRRtmessage_typet_concrete_classRYRFRtMESSAGE_SET_ITEM_TAG(
RRRRRtmessage_set_item_startttype_idt
message_starttmessage_endR$RSt	extensionR(titem_end_tag_bytesR t
local_ReadTagtmessage_tag_bytesttype_id_tag_bytes(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
DecodeItem�sF	(	RR)RRGRUR\RR(R`(t
descriptortlocal_SkipFieldRo((RkR RlRmRnsD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytMessageSetItemDecoder�s0cs^|�tj|jtj��t���t�|j��������fd�}|S(s"Returns a decoder for a map field.c	s�j�}|j��}|dkrB|j��|��}nx��||�\}}||}||krtd��n|j�|j|||�|kr�td��n�r�||jj|j	�n|j	||j<|�}|||!�ks||krE|SqEWdS(NsTruncated message.sUnexpected end-group tag.(
RdRRRRtClearRYRt	MergeFromR(	RRRRRtsubmsgRRSR#(tis_message_mapRR RcR!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt	DecodeMap�s$


(RR)tnumberRRUR*R(Rc(tfield_descriptorR!RvRw((RvRR RcR!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
MapDecoder�s	!cCsUx)t|||d!�d@r+|d7}qW|d7}||krQtd��n|S(s/Skip a varint value.  Returns the new position.ii�sTruncated message.(tordR(RRR((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SkipVarint�s
cCs)|d7}||kr%td��n|S(s0Skip a fixed64 value.  Returns the new position.isTruncated message.(R(RRR((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SkipFixed64	s
cCs>t||�\}}||7}||kr:td��n|S(s9Skip a length-delimited value.  Returns the new position.sTruncated message.(R(R(RRRRS((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SkipLengthDelimiteds

cCsKxDt||�\}}t||||�}|dkr=|S|}qWdS(s*Skip sub-group.  Returns the new position.i����N(RR`(RRRR$R#((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
_SkipGroupscCsdS(sFSkipping an END_GROUP tag returns -1 to tell the parent loop to break.i����((RRR((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt	_EndGroup$scCs)|d7}||kr%td��n|S(s0Skip a fixed32 value.  Returns the new position.isTruncated message.(R(RRR((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SkipFixed32)s
cCstd��dS(s;Skip function for unknown wire types.  Raises an exception.sTag had invalid wire type.N(R(RRR((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_RaiseInvalidWireType1scs=ttttttttg�tj���fd�}|S(s"Constructs the SkipField function.cs+t|dd!��@}�||||�S(sSkips a field with the specified tag.

    |pos| should point to the byte immediately after the tag.

    Returns:
        The new position (after the tag value), or -1 if the tag is an end-group
        tag (in which case the calling loop should break).
    ii(R{(RRRR$R.(tWIRETYPE_TO_SKIPPERt
wiretype_mask(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR`Fs(	R|R}R~RR�R�R�Rt
TAG_TYPE_MASK(R`((R�R�sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
_FieldSkipper6s		ll����ll��(Bt__doc__t
__author__R7RtPY3tinttlongtgoogle.protobuf.internalRRtgoogle.protobufRR=R<R;tDecodeErrorRRRR(t_DecodeSignedVarintt_DecodeVarint32RDRR0R3R:R@RCRKRGtInt32DecodertInt64Decodert
UInt32Decodert
UInt64DecodertZigZagDecodet
SInt32Decodert
SInt64DecoderR?tFixed32DecoderRBtFixed64DecodertSFixed32DecodertSFixed64DecodertFloatDecodert
DoubleDecodertbooltBoolDecoderRVRWR^R_R)R]ReRrRzR|R}R~RR�R�R�R�R`(((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt<module>Osv		
					;			#		O			.	%	/	4	J	.					
				 PK�\protobuf/internal/__init__.pynu�[���PK�\L���'protobuf/internal/factory_test1_pb2.pyonu�[����
���hc1@s`ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�Zejdd
ddddded��Zejdddddddedejdddddddddd�ejdddd dd dddd�gd!dddd"d#d$d%�	Zeje�eje�ZdZd Zejdd&dd'dddedejdd(dddddddd�ejdd)dd dd dddd�gd!dddd"d*d$d+�	Zeje�ejdd,dd-ddded!dd.ejdd/dd0dddd dd1d2d1d3d d4ed5ed6�j d7�d8dd9dd!dd:ed;dddde�gd<gd=gd>gddd?eddd@gdAgd"dBd$dC�Z!ejddDddEddded!dd.ejddFddGdddd ddHd2dId3d d4ed5dd8dd9dd!dd:ed;dddde�ejddJddKdd ddLddHd2dId3d d4ed5dd8dd9dd!dd:ed;dddde�ejddMddNddLddddOd2dPd3d d4ed5dd8dd9dd!dd:ed;dddde�ejddQddRddddSddTd2d d3d d4ed5dd8dd9dd!dd:ed;dddde�ejddUddVddSddTdd1d2d1d3dd4ed5gd8dd9dd!dd:ed;dddde�gd<gd=e!gd>egddd?e"ddd@d^gdAgd"dYd$dZ�Z#e#e!_$ee#j%dF_&ee#j%dJ_&e!e#j%dM_'e#e_$e#ej(dD<eej)d<ej*e�ej+dDe	j,fe-d,ej+d,e	j,fe-d[e!d\d]��d[e#d\d]��Z.ej/e.�ej/e.j0�dS(_i����NiicCs|S(N((tx((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test1_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test1_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames,google/protobuf/internal/factory_test1.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbse
,google/protobuf/internal/factory_test1.protogoogle.protobuf.python.internal"�
Factory1MessageE
factory_1_enum (2-.google.protobuf.python.internal.Factory1Enumb
nested_factory_1_enum (2C.google.protobuf.python.internal.Factory1Message.NestedFactory1Enumh
nested_factory_1_message (2F.google.protobuf.python.internal.Factory1Message.NestedFactory1Message
scalar_value (

list_value (	&
NestedFactory1Message
value (	"P
NestedFactory1Enum
NESTED_FACTORY_1_VALUE_0
NESTED_FACTORY_1_VALUE_1*	�����*<
Factory1Enum
FACTORY_1_VALUE_0
FACTORY_1_VALUE_1tFactory1Enumt	full_names,google.protobuf.python.internal.Factory1EnumtfilenametfiletvaluestFACTORY_1_VALUE_0tindextnumbertoptionsttypetFACTORY_1_VALUE_1itcontaining_typetserialized_starti)tserialized_endietNestedFactory1EnumsBgoogle.protobuf.python.internal.Factory1Message.NestedFactory1EnumtNESTED_FACTORY_1_VALUE_0tNESTED_FACTORY_1_VALUE_1i�itNestedFactory1MessagesEgoogle.protobuf.python.internal.Factory1Message.NestedFactory1MessagetfieldstvaluesKgoogle.protobuf.python.internal.Factory1Message.NestedFactory1Message.valuei	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi�i�tFactory1Messages/google.protobuf.python.internal.Factory1Messagetfactory_1_enums>google.protobuf.python.internal.Factory1Message.factory_1_enumiitnested_factory_1_enumsEgoogle.protobuf.python.internal.Factory1Message.nested_factory_1_enumitnested_factory_1_messagesHgoogle.protobuf.python.internal.Factory1Message.nested_factory_1_messageii
tscalar_values<google.protobuf.python.internal.Factory1Message.scalar_valueiit
list_values:google.protobuf.python.internal.Factory1Message.list_valuei�i iRi't
DESCRIPTORt
__module__s*google.protobuf.internal.factory_test1_pb2(i�i (1tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbtFileDescriptorR8tEnumDescriptortNonetEnumValueDescriptort
_FACTORY1ENUMtRegisterEnumDescriptortEnumTypeWrapperRRRt#_FACTORY1MESSAGE_NESTEDFACTORY1ENUMt
DescriptortFieldDescriptortFalsetdecodet&_FACTORY1MESSAGE_NESTEDFACTORY1MESSAGEtTruet_FACTORY1MESSAGERtfields_by_nameR)R(tmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR2tRegisterMessageR!(((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test1_pb2.pyt<module>s%					
				
															



PK�\z �z0z0.protobuf/internal/descriptor_pool_test2_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/descriptor_pool_test2.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf.internal import descriptor_pool_test1_pb2 as google_dot_protobuf_dot_internal_dot_descriptor__pool__test1__pb2
from google.protobuf.internal import more_messages_pb2 as google_dot_protobuf_dot_internal_dot_more__messages__pb2

from google.protobuf.internal.more_messages_pb2 import *

DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/descriptor_pool_test2.proto',
  package='google.protobuf.python.internal',
  syntax='proto2',
  serialized_pb=_b('\n4google/protobuf/internal/descriptor_pool_test2.proto\x12\x1fgoogle.protobuf.python.internal\x1a\x34google/protobuf/internal/descriptor_pool_test1.proto\x1a,google/protobuf/internal/more_messages.proto\"\xef\x06\n\x13\x44\x65scriptorPoolTest3\x12X\n\x0bnested_enum\x18\x01 \x01(\x0e\x32?.google.protobuf.python.internal.DescriptorPoolTest3.NestedEnum:\x02XI\x12Z\n\x0enested_message\x18\x02 \x01(\x0b\x32\x42.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage\x1a\xf7\x03\n\rNestedMessage\x12\x66\n\x0bnested_enum\x18\x01 \x01(\x0e\x32M.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.NestedEnum:\x02PI\x12\x18\n\x0cnested_field\x18\x02 \x01(\t:\x02nu\x12q\n\x13\x64\x65\x65p_nested_message\x18\x03 \x01(\x0b\x32T.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage\x1a\xcd\x01\n\x11\x44\x65\x65pNestedMessage\x12y\n\x0bnested_enum\x18\x01 \x01(\x0e\x32_.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.NestedEnum:\x03RHO\x12\x1b\n\x0cnested_field\x18\x02 \x01(\t:\x05sigma\" \n\nNestedEnum\x12\x07\n\x03RHO\x10\x11\x12\t\n\x05SIGMA\x10\x12\"!\n\nNestedEnum\x12\x0b\n\x07OMICRON\x10\x0f\x12\x06\n\x02PI\x10\x10\"\x1c\n\nNestedEnum\x12\x06\n\x02NU\x10\r\x12\x06\n\x02XI\x10\x0e\x32\x89\x01\n\x14\x64\x65scriptor_pool_test\x12\x34.google.protobuf.python.internal.DescriptorPoolTest1\x18\xe9\x07 \x01(\x0b\x32\x34.google.protobuf.python.internal.DescriptorPoolTest3P\x01')
  ,
  dependencies=[google_dot_protobuf_dot_internal_dot_descriptor__pool__test1__pb2.DESCRIPTOR,google_dot_protobuf_dot_internal_dot_more__messages__pb2.DESCRIPTOR,],
  public_dependencies=[google_dot_protobuf_dot_internal_dot_more__messages__pb2.DESCRIPTOR,])



_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='RHO', index=0, number=17,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SIGMA', index=1, number=18,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=832,
  serialized_end=864,
)
_sym_db.RegisterEnumDescriptor(_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM)

_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='OMICRON', index=0, number=15,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PI', index=1, number=16,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=866,
  serialized_end=899,
)
_sym_db.RegisterEnumDescriptor(_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_NESTEDENUM)

_DESCRIPTORPOOLTEST3_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.DescriptorPoolTest3.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='NU', index=0, number=13,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='XI', index=1, number=14,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=901,
  serialized_end=929,
)
_sym_db.RegisterEnumDescriptor(_DESCRIPTORPOOLTEST3_NESTEDENUM)


_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE = _descriptor.Descriptor(
  name='DeepNestedMessage',
  full_name='google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nested_enum', full_name='google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=17,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_field', full_name='google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.nested_field', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("sigma").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=659,
  serialized_end=864,
)

_DESCRIPTORPOOLTEST3_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nested_enum', full_name='google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=16,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_field', full_name='google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.nested_field', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("nu").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='deep_nested_message', full_name='google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.deep_nested_message', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE, ],
  enum_types=[
    _DESCRIPTORPOOLTEST3_NESTEDMESSAGE_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=396,
  serialized_end=899,
)

_DESCRIPTORPOOLTEST3 = _descriptor.Descriptor(
  name='DescriptorPoolTest3',
  full_name='google.protobuf.python.internal.DescriptorPoolTest3',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nested_enum', full_name='google.protobuf.python.internal.DescriptorPoolTest3.nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=14,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_message', full_name='google.protobuf.python.internal.DescriptorPoolTest3.nested_message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='descriptor_pool_test', full_name='google.protobuf.python.internal.DescriptorPoolTest3.descriptor_pool_test', index=0,
      number=1001, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[_DESCRIPTORPOOLTEST3_NESTEDMESSAGE, ],
  enum_types=[
    _DESCRIPTORPOOLTEST3_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=190,
  serialized_end=1069,
)

_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE.fields_by_name['nested_enum'].enum_type = _DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM
_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE.containing_type = _DESCRIPTORPOOLTEST3_NESTEDMESSAGE
_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM.containing_type = _DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE
_DESCRIPTORPOOLTEST3_NESTEDMESSAGE.fields_by_name['nested_enum'].enum_type = _DESCRIPTORPOOLTEST3_NESTEDMESSAGE_NESTEDENUM
_DESCRIPTORPOOLTEST3_NESTEDMESSAGE.fields_by_name['deep_nested_message'].message_type = _DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE
_DESCRIPTORPOOLTEST3_NESTEDMESSAGE.containing_type = _DESCRIPTORPOOLTEST3
_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_NESTEDENUM.containing_type = _DESCRIPTORPOOLTEST3_NESTEDMESSAGE
_DESCRIPTORPOOLTEST3.fields_by_name['nested_enum'].enum_type = _DESCRIPTORPOOLTEST3_NESTEDENUM
_DESCRIPTORPOOLTEST3.fields_by_name['nested_message'].message_type = _DESCRIPTORPOOLTEST3_NESTEDMESSAGE
_DESCRIPTORPOOLTEST3_NESTEDENUM.containing_type = _DESCRIPTORPOOLTEST3
DESCRIPTOR.message_types_by_name['DescriptorPoolTest3'] = _DESCRIPTORPOOLTEST3
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

DescriptorPoolTest3 = _reflection.GeneratedProtocolMessageType('DescriptorPoolTest3', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(

    DeepNestedMessage = _reflection.GeneratedProtocolMessageType('DeepNestedMessage', (_message.Message,), dict(
      DESCRIPTOR = _DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE,
      __module__ = 'google.protobuf.internal.descriptor_pool_test2_pb2'
      # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage)
      ))
    ,
    DESCRIPTOR = _DESCRIPTORPOOLTEST3_NESTEDMESSAGE,
    __module__ = 'google.protobuf.internal.descriptor_pool_test2_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage)
    ))
  ,
  DESCRIPTOR = _DESCRIPTORPOOLTEST3,
  __module__ = 'google.protobuf.internal.descriptor_pool_test2_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.DescriptorPoolTest3)
  ))
_sym_db.RegisterMessage(DescriptorPoolTest3)
_sym_db.RegisterMessage(DescriptorPoolTest3.NestedMessage)
_sym_db.RegisterMessage(DescriptorPoolTest3.NestedMessage.DeepNestedMessage)

_DESCRIPTORPOOLTEST3.extensions_by_name['descriptor_pool_test'].message_type = _DESCRIPTORPOOLTEST3
google_dot_protobuf_dot_internal_dot_descriptor__pool__test1__pb2.DescriptorPoolTest1.RegisterExtension(_DESCRIPTORPOOLTEST3.extensions_by_name['descriptor_pool_test'])

# @@protoc_insertion_point(module_scope)
PK�\�c��Q�Qprotobuf/internal/containers.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Contains container classes to represent different protocol buffer types.

This file defines container classes which represent categories of protocol
buffer field types which need extra maintenance. Currently these categories
are:
  - Repeated scalar fields - These are all repeated fields which aren't
    composite (e.g. they are of simple types like int32, string, etc).
  - Repeated composite fields - Repeated fields which are composite. This
    includes groups and nested messages.
"""

__author__ = 'petar@google.com (Petar Petrov)'

import collections
import sys

if sys.version_info[0] < 3:
  # We would use collections.MutableMapping all the time, but in Python 2 it
  # doesn't define __slots__.  This causes two significant problems:
  #
  # 1. we can't disallow arbitrary attribute assignment, even if our derived
  #    classes *do* define __slots__.
  #
  # 2. we can't safely derive a C type from it without __slots__ defined (the
  #    interpreter expects to find a dict at tp_dictoffset, which we can't
  #    robustly provide.  And we don't want an instance dict anyway.
  #
  # So this is the Python 2.7 definition of Mapping/MutableMapping functions
  # verbatim, except that:
  # 1. We declare __slots__.
  # 2. We don't declare this as a virtual base class.  The classes defined
  #    in collections are the interesting base classes, not us.
  #
  # Note: deriving from object is critical.  It is the only thing that makes
  # this a true type, allowing us to derive from it in C++ cleanly and making
  # __slots__ properly disallow arbitrary element assignment.

  class Mapping(object):
    __slots__ = ()

    def get(self, key, default=None):
      try:
        return self[key]
      except KeyError:
        return default

    def __contains__(self, key):
      try:
        self[key]
      except KeyError:
        return False
      else:
        return True

    def iterkeys(self):
      return iter(self)

    def itervalues(self):
      for key in self:
        yield self[key]

    def iteritems(self):
      for key in self:
        yield (key, self[key])

    def keys(self):
      return list(self)

    def items(self):
      return [(key, self[key]) for key in self]

    def values(self):
      return [self[key] for key in self]

    # Mappings are not hashable by default, but subclasses can change this
    __hash__ = None

    def __eq__(self, other):
      if not isinstance(other, collections.Mapping):
        return NotImplemented
      return dict(self.items()) == dict(other.items())

    def __ne__(self, other):
      return not (self == other)

  class MutableMapping(Mapping):
    __slots__ = ()

    __marker = object()

    def pop(self, key, default=__marker):
      try:
        value = self[key]
      except KeyError:
        if default is self.__marker:
          raise
        return default
      else:
        del self[key]
        return value

    def popitem(self):
      try:
        key = next(iter(self))
      except StopIteration:
        raise KeyError
      value = self[key]
      del self[key]
      return key, value

    def clear(self):
      try:
        while True:
          self.popitem()
      except KeyError:
        pass

    def update(*args, **kwds):
      if len(args) > 2:
        raise TypeError("update() takes at most 2 positional "
                        "arguments ({} given)".format(len(args)))
      elif not args:
        raise TypeError("update() takes at least 1 argument (0 given)")
      self = args[0]
      other = args[1] if len(args) >= 2 else ()

      if isinstance(other, Mapping):
        for key in other:
          self[key] = other[key]
      elif hasattr(other, "keys"):
        for key in other.keys():
          self[key] = other[key]
      else:
        for key, value in other:
          self[key] = value
      for key, value in kwds.items():
        self[key] = value

    def setdefault(self, key, default=None):
      try:
        return self[key]
      except KeyError:
        self[key] = default
      return default

  collections.Mapping.register(Mapping)
  collections.MutableMapping.register(MutableMapping)

else:
  # In Python 3 we can just use MutableMapping directly, because it defines
  # __slots__.
  MutableMapping = collections.MutableMapping


class BaseContainer(object):

  """Base container class."""

  # Minimizes memory usage and disallows assignment to other attributes.
  __slots__ = ['_message_listener', '_values']

  def __init__(self, message_listener):
    """
    Args:
      message_listener: A MessageListener implementation.
        The RepeatedScalarFieldContainer will call this object's
        Modified() method when it is modified.
    """
    self._message_listener = message_listener
    self._values = []

  def __getitem__(self, key):
    """Retrieves item by the specified key."""
    return self._values[key]

  def __len__(self):
    """Returns the number of elements in the container."""
    return len(self._values)

  def __ne__(self, other):
    """Checks if another instance isn't equal to this one."""
    # The concrete classes should define __eq__.
    return not self == other

  def __hash__(self):
    raise TypeError('unhashable object')

  def __repr__(self):
    return repr(self._values)

  def sort(self, *args, **kwargs):
    # Continue to support the old sort_function keyword argument.
    # This is expected to be a rare occurrence, so use LBYL to avoid
    # the overhead of actually catching KeyError.
    if 'sort_function' in kwargs:
      kwargs['cmp'] = kwargs.pop('sort_function')
    self._values.sort(*args, **kwargs)


class RepeatedScalarFieldContainer(BaseContainer):

  """Simple, type-checked, list-like container for holding repeated scalars."""

  # Disallows assignment to other attributes.
  __slots__ = ['_type_checker']

  def __init__(self, message_listener, type_checker):
    """
    Args:
      message_listener: A MessageListener implementation.
        The RepeatedScalarFieldContainer will call this object's
        Modified() method when it is modified.
      type_checker: A type_checkers.ValueChecker instance to run on elements
        inserted into this container.
    """
    super(RepeatedScalarFieldContainer, self).__init__(message_listener)
    self._type_checker = type_checker

  def append(self, value):
    """Appends an item to the list. Similar to list.append()."""
    self._values.append(self._type_checker.CheckValue(value))
    if not self._message_listener.dirty:
      self._message_listener.Modified()

  def insert(self, key, value):
    """Inserts the item at the specified position. Similar to list.insert()."""
    self._values.insert(key, self._type_checker.CheckValue(value))
    if not self._message_listener.dirty:
      self._message_listener.Modified()

  def extend(self, elem_seq):
    """Extends by appending the given iterable. Similar to list.extend()."""

    if elem_seq is None:
      return
    try:
      elem_seq_iter = iter(elem_seq)
    except TypeError:
      if not elem_seq:
        # silently ignore falsy inputs :-/.
        # TODO(ptucker): Deprecate this behavior. b/18413862
        return
      raise

    new_values = [self._type_checker.CheckValue(elem) for elem in elem_seq_iter]
    if new_values:
      self._values.extend(new_values)
    self._message_listener.Modified()

  def MergeFrom(self, other):
    """Appends the contents of another repeated field of the same type to this
    one. We do not check the types of the individual fields.
    """
    self._values.extend(other._values)
    self._message_listener.Modified()

  def remove(self, elem):
    """Removes an item from the list. Similar to list.remove()."""
    self._values.remove(elem)
    self._message_listener.Modified()

  def pop(self, key=-1):
    """Removes and returns an item at a given index. Similar to list.pop()."""
    value = self._values[key]
    self.__delitem__(key)
    return value

  def __setitem__(self, key, value):
    """Sets the item on the specified position."""
    if isinstance(key, slice):  # PY3
      if key.step is not None:
        raise ValueError('Extended slices not supported')
      self.__setslice__(key.start, key.stop, value)
    else:
      self._values[key] = self._type_checker.CheckValue(value)
      self._message_listener.Modified()

  def __getslice__(self, start, stop):
    """Retrieves the subset of items from between the specified indices."""
    return self._values[start:stop]

  def __setslice__(self, start, stop, values):
    """Sets the subset of items from between the specified indices."""
    new_values = []
    for value in values:
      new_values.append(self._type_checker.CheckValue(value))
    self._values[start:stop] = new_values
    self._message_listener.Modified()

  def __delitem__(self, key):
    """Deletes the item at the specified position."""
    del self._values[key]
    self._message_listener.Modified()

  def __delslice__(self, start, stop):
    """Deletes the subset of items from between the specified indices."""
    del self._values[start:stop]
    self._message_listener.Modified()

  def __eq__(self, other):
    """Compares the current instance with another one."""
    if self is other:
      return True
    # Special case for the same type which should be common and fast.
    if isinstance(other, self.__class__):
      return other._values == self._values
    # We are presumably comparing against some other sequence type.
    return other == self._values

collections.MutableSequence.register(BaseContainer)


class RepeatedCompositeFieldContainer(BaseContainer):

  """Simple, list-like container for holding repeated composite fields."""

  # Disallows assignment to other attributes.
  __slots__ = ['_message_descriptor']

  def __init__(self, message_listener, message_descriptor):
    """
    Note that we pass in a descriptor instead of the generated directly,
    since at the time we construct a _RepeatedCompositeFieldContainer we
    haven't yet necessarily initialized the type that will be contained in the
    container.

    Args:
      message_listener: A MessageListener implementation.
        The RepeatedCompositeFieldContainer will call this object's
        Modified() method when it is modified.
      message_descriptor: A Descriptor instance describing the protocol type
        that should be present in this container.  We'll use the
        _concrete_class field of this descriptor when the client calls add().
    """
    super(RepeatedCompositeFieldContainer, self).__init__(message_listener)
    self._message_descriptor = message_descriptor

  def add(self, **kwargs):
    """Adds a new element at the end of the list and returns it. Keyword
    arguments may be used to initialize the element.
    """
    new_element = self._message_descriptor._concrete_class(**kwargs)
    new_element._SetListener(self._message_listener)
    self._values.append(new_element)
    if not self._message_listener.dirty:
      self._message_listener.Modified()
    return new_element

  def extend(self, elem_seq):
    """Extends by appending the given sequence of elements of the same type
    as this one, copying each individual message.
    """
    message_class = self._message_descriptor._concrete_class
    listener = self._message_listener
    values = self._values
    for message in elem_seq:
      new_element = message_class()
      new_element._SetListener(listener)
      new_element.MergeFrom(message)
      values.append(new_element)
    listener.Modified()

  def MergeFrom(self, other):
    """Appends the contents of another repeated field of the same type to this
    one, copying each individual message.
    """
    self.extend(other._values)

  def remove(self, elem):
    """Removes an item from the list. Similar to list.remove()."""
    self._values.remove(elem)
    self._message_listener.Modified()

  def pop(self, key=-1):
    """Removes and returns an item at a given index. Similar to list.pop()."""
    value = self._values[key]
    self.__delitem__(key)
    return value

  def __getslice__(self, start, stop):
    """Retrieves the subset of items from between the specified indices."""
    return self._values[start:stop]

  def __delitem__(self, key):
    """Deletes the item at the specified position."""
    del self._values[key]
    self._message_listener.Modified()

  def __delslice__(self, start, stop):
    """Deletes the subset of items from between the specified indices."""
    del self._values[start:stop]
    self._message_listener.Modified()

  def __eq__(self, other):
    """Compares the current instance with another one."""
    if self is other:
      return True
    if not isinstance(other, self.__class__):
      raise TypeError('Can only compare repeated composite fields against '
                      'other repeated composite fields.')
    return self._values == other._values


class ScalarMap(MutableMapping):

  """Simple, type-checked, dict-like container for holding repeated scalars."""

  # Disallows assignment to other attributes.
  __slots__ = ['_key_checker', '_value_checker', '_values', '_message_listener',
               '_entry_descriptor']

  def __init__(self, message_listener, key_checker, value_checker,
               entry_descriptor):
    """
    Args:
      message_listener: A MessageListener implementation.
        The ScalarMap will call this object's Modified() method when it
        is modified.
      key_checker: A type_checkers.ValueChecker instance to run on keys
        inserted into this container.
      value_checker: A type_checkers.ValueChecker instance to run on values
        inserted into this container.
      entry_descriptor: The MessageDescriptor of a map entry: key and value.
    """
    self._message_listener = message_listener
    self._key_checker = key_checker
    self._value_checker = value_checker
    self._entry_descriptor = entry_descriptor
    self._values = {}

  def __getitem__(self, key):
    try:
      return self._values[key]
    except KeyError:
      key = self._key_checker.CheckValue(key)
      val = self._value_checker.DefaultValue()
      self._values[key] = val
      return val

  def __contains__(self, item):
    # We check the key's type to match the strong-typing flavor of the API.
    # Also this makes it easier to match the behavior of the C++ implementation.
    self._key_checker.CheckValue(item)
    return item in self._values

  # We need to override this explicitly, because our defaultdict-like behavior
  # will make the default implementation (from our base class) always insert
  # the key.
  def get(self, key, default=None):
    if key in self:
      return self[key]
    else:
      return default

  def __setitem__(self, key, value):
    checked_key = self._key_checker.CheckValue(key)
    checked_value = self._value_checker.CheckValue(value)
    self._values[checked_key] = checked_value
    self._message_listener.Modified()

  def __delitem__(self, key):
    del self._values[key]
    self._message_listener.Modified()

  def __len__(self):
    return len(self._values)

  def __iter__(self):
    return iter(self._values)

  def __repr__(self):
    return repr(self._values)

  def MergeFrom(self, other):
    self._values.update(other._values)
    self._message_listener.Modified()

  def InvalidateIterators(self):
    # It appears that the only way to reliably invalidate iterators to
    # self._values is to ensure that its size changes.
    original = self._values
    self._values = original.copy()
    original[None] = None

  # This is defined in the abstract base, but we can do it much more cheaply.
  def clear(self):
    self._values.clear()
    self._message_listener.Modified()

  def GetEntryClass(self):
    return self._entry_descriptor._concrete_class


class MessageMap(MutableMapping):

  """Simple, type-checked, dict-like container for with submessage values."""

  # Disallows assignment to other attributes.
  __slots__ = ['_key_checker', '_values', '_message_listener',
               '_message_descriptor', '_entry_descriptor']

  def __init__(self, message_listener, message_descriptor, key_checker,
               entry_descriptor):
    """
    Args:
      message_listener: A MessageListener implementation.
        The ScalarMap will call this object's Modified() method when it
        is modified.
      key_checker: A type_checkers.ValueChecker instance to run on keys
        inserted into this container.
      value_checker: A type_checkers.ValueChecker instance to run on values
        inserted into this container.
      entry_descriptor: The MessageDescriptor of a map entry: key and value.
    """
    self._message_listener = message_listener
    self._message_descriptor = message_descriptor
    self._key_checker = key_checker
    self._entry_descriptor = entry_descriptor
    self._values = {}

  def __getitem__(self, key):
    try:
      return self._values[key]
    except KeyError:
      key = self._key_checker.CheckValue(key)
      new_element = self._message_descriptor._concrete_class()
      new_element._SetListener(self._message_listener)
      self._values[key] = new_element
      self._message_listener.Modified()

      return new_element

  def get_or_create(self, key):
    """get_or_create() is an alias for getitem (ie. map[key]).

    Args:
      key: The key to get or create in the map.

    This is useful in cases where you want to be explicit that the call is
    mutating the map.  This can avoid lint errors for statements like this
    that otherwise would appear to be pointless statements:

      msg.my_map[key]
    """
    return self[key]

  # We need to override this explicitly, because our defaultdict-like behavior
  # will make the default implementation (from our base class) always insert
  # the key.
  def get(self, key, default=None):
    if key in self:
      return self[key]
    else:
      return default

  def __contains__(self, item):
    return item in self._values

  def __setitem__(self, key, value):
    raise ValueError('May not set values directly, call my_map[key].foo = 5')

  def __delitem__(self, key):
    del self._values[key]
    self._message_listener.Modified()

  def __len__(self):
    return len(self._values)

  def __iter__(self):
    return iter(self._values)

  def __repr__(self):
    return repr(self._values)

  def MergeFrom(self, other):
    for key in other:
      # According to documentation: "When parsing from the wire or when merging,
      # if there are duplicate map keys the last key seen is used".
      if key in self:
        del self[key]
      self[key].CopyFrom(other[key])
    # self._message_listener.Modified() not required here, because
    # mutations to submessages already propagate.

  def InvalidateIterators(self):
    # It appears that the only way to reliably invalidate iterators to
    # self._values is to ensure that its size changes.
    original = self._values
    self._values = original.copy()
    original[None] = None

  # This is defined in the abstract base, but we can do it much more cheaply.
  def clear(self):
    self._values.clear()
    self._message_listener.Modified()

  def GetEntryClass(self):
    return self._entry_descriptor._concrete_class
PK�\�=P�]]"protobuf/internal/any_test_pb2.pyonu�[����
���hc/@spddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�Zejdddddddedddejdddddddd d!d"d#d"d$d d%ed&ed'�jd(�d)dd*dddd+ed,dd-dde�ejdd.dd/dd dd0d!d1d#d d$d d%ed&dd)dd*dddd+ed,dd-dde�gd2gd3gd4gd-ejej�ed5��d6eddd7gd8gd9d:d;d<�Zejdd=dd>dddedddejdd.dd?dddd d!d@d#dAd$d d%ed&dd)dd*dddd+ed,dd-dde�ejddBddCdd dd0d!d1d#d d$d d%ed&dd)dd*dddd+ed,dd-dde�ejddDddEdd0ddd!d@d#dAd$dd%ed&gd)dd*dddd+ed,dd-dde�gd2gd3egd4gd-dd6eddd7dVgd8gd9dGd;dH�ZejddIddJdddedddejddKddLddddMd!d1d#d d$d d%ed&dd)dd*dddd+ed,dd-dde�gd2ejddNddOddddPd!d@d#dAd$d d%ed&dd)dd*dddd+ed,dd-dde�gd3gd4gd-dd6eddd7gd8gd9dQd;dR�Zee_ejej d._!eej dD_!eej"d=<eej"dI<ej#e�e	j$d=ej%fe&de	j$dej%fe&dSedTdU��dSedTdU��Z'ej(e'�ej(e'j)�e	j$dIej%fe&dSedTdU��Z*ej(e*�eej+dN_!e'j,ej+dN�ee_-ejej�ed5��e_.dS(Wi����NiicCs|S(N((tx((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/any_test_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/any_test_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tany_pb2tnames'google/protobuf/internal/any_test.prototpackagesgoogle.protobuf.internaltsyntaxtproto2t
serialized_pbs�
'google/protobuf/internal/any_test.protogoogle.protobuf.internalgoogle/protobuf/any.proto"�
TestAny#
value (2.google.protobuf.Any
	int_value (B
	map_value (2/.google.protobuf.internal.TestAny.MapValueEntry/

MapValueEntry
key (	
value (:8*
����"�
TestAnyExtension1	
i (2e

extension1!.google.protobuf.internal.TestAny���. (2+.google.protobuf.internal.TestAnyExtension1tdependenciest
MapValueEntryt	full_names.google.protobuf.internal.TestAny.MapValueEntrytfilenametfiletcontaining_typetfieldstkeys2google.protobuf.internal.TestAny.MapValueEntry.keytindextnumberittypei	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetoptionstvalues4google.protobuf.internal.TestAny.MapValueEntry.valueiit
extensionstnested_typest
enum_typess8t
is_extendabletextension_rangestoneofstserialized_starti�tserialized_enditTestAnys google.protobuf.internal.TestAnys&google.protobuf.internal.TestAny.valueii
t	int_values*google.protobuf.internal.TestAny.int_valuet	map_values*google.protobuf.internal.TestAny.map_valuei iai!tTestAnyExtension1s*google.protobuf.internal.TestAnyExtension1tis,google.protobuf.internal.TestAnyExtension1.iit
extension1s5google.protobuf.internal.TestAnyExtension1.extension1i���i$i�t
DESCRIPTORt
__module__s%google.protobuf.internal.any_test_pb2(i
i (/tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbR
t google_dot_protobuf_dot_any__pb2tFileDescriptorR3t
DescriptortNonetFieldDescriptortFalsetdecodet
_ParseOptionstMessageOptionst_TESTANY_MAPVALUEENTRYtTruet_TESTANYt_TESTANYEXTENSION1Rt_ANYtfields_by_nameRtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR-tRegisterMessageRR0textensions_by_nametRegisterExtensionthas_optionst_options(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/any_test_pb2.pyt<module>s%																	




	PK�\Q�ND#D#!protobuf/internal/wire_format.pyonu�[����
���hc@s'dZdZddlZddlmZddlmZdZde>dZdZdZ	d	Z
dZd
ZdZ
dZed3�Zed5�Zd7Zd9Zd;Zd=ZdZdZdZdZeje�d
kr�ed��neje�dkred��nd�Zd�Zd�Zd�Zd�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,d(�Z-d)�Z.d*�Z/d+�Z0d,�Z1d-�Z2d.�Z3d/�Z4d0�Z5ej6j7ej6j8ej6j9ej6j:fZ;d1�Z<dS(>sFConstants and static functions to support protocol buffer wire format.s#robinson@google.com (Will Robinson)i����N(t
descriptor(tmessageiiiiiiii i?i@s<Is<Qs<fs<ds"Format "I" is not a 32-bit number.is"Format "Q" is not a 64-bit number.cCs>d|kotkns2tjd|��n|t>|BS(sReturns an unsigned 32-bit integer that encodes the field number and
  wire type information in standard protocol message wire format.

  Args:
    field_number: Expected to be an integer in the range [1, 1 << 29)
    wire_type: One of the WIRETYPE_* constants.
  isUnknown wire type: %d(t
_WIRETYPE_MAXRtEncodeErrort
TAG_TYPE_BITS(tfield_numbert	wire_type((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytPackTagPscCs|t?|t@fS(skThe inverse of PackTag().  Given an unsigned 32-bit number,
  returns a (field_number, wire_type) tuple.
  (Rt
TAG_TYPE_MASK(ttag((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyt	UnpackTag]scCs |dkr|d>S|d>dAS(s�ZigZag Transform:  Encodes signed integers so that they can be
  effectively used with varint encoding.  See wire_format.h for
  more details.
  iii����((tvalue((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytZigZagEncodedscCs|d@s|d?S|d?dAS(sInverse of ZigZagEncode().iii����((R((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytZigZagDecodens
cCs
t||�S(N(t
Int64ByteSize(Rtint32((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyt
Int32ByteSizezscCstd|@�S(Nl����(t_VarUInt64ByteSizeNoTag(R((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytInt32ByteSizeNoTag~scCst|d|@�S(Nl����(tUInt64ByteSize(Rtint64((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyR�scCs
t||�S(N(R(Rtuint32((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytUInt32ByteSize�scCst|�t|�S(N(tTagByteSizeR(Rtuint64((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyR�scCst|t|��S(N(RR(RR((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytSInt32ByteSize�scCst|t|��S(N(RR(RR((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytSInt64ByteSize�scCst|�dS(Ni(R(Rtfixed32((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytFixed32ByteSize�scCst|�dS(Ni(R(Rtfixed64((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytFixed64ByteSize�scCst|�dS(Ni(R(Rtsfixed32((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytSFixed32ByteSize�scCst|�dS(Ni(R(Rtsfixed64((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytSFixed64ByteSize�scCst|�dS(Ni(R(Rtflt((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyt
FloatByteSize�scCst|�dS(Ni(R(Rtdouble((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytDoubleByteSize�scCst|�dS(Ni(R(Rtb((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytBoolByteSize�scCs
t||�S(N(R(Rtenum((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytEnumByteSize�scCst||jd��S(Nsutf-8(t
BytesByteSizetencode(Rtstring((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytStringByteSize�scCs$t|�tt|��t|�S(N(RRtlen(RR'((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyR+�scCsdt|�|j�S(Ni(RtByteSize(RR((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyt
GroupByteSize�s
cCs$t|�t|j��|j�S(N(RRR0(RR((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytMessageByteSize�scCs^dtd�td�td�}|t|�7}|j�}|t|�7}||7}|S(Niii(RRR0(Rtmsgt
total_sizetmessage_size((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytMessageSetItemByteSize�s$
cCstt|d��S(sEReturns the bytes required to serialize a tag with this field number.i(RR(R((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyR�scCs�|dkrdS|dkr dS|dkr0dS|dkr@dS|d	krPd
S|dkr`dS|d
krpdS|dkr�dS|dkr�dS|tkr�tjd|��ndS(s�Returns the number of bytes required to serialize a single varint
  using boundary value comparisons. (unrolled loop optimization -WPierce)
  uint64 must be unsigned.
  iii�?ii��ii���il��il���il���il����il����i	sValue out of range: %di
(t
UINT64_MAXRR(R((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyR�s*cCs
|tkS(s�Return true iff packable = true is valid for fields of this type.

  Args:
    field_type: a FieldDescriptor::Type value.

  Returns:
    True iff fields of this type are packable.
  (tNON_PACKABLE_TYPES(t
field_type((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytIsTypePackables	ll��ll����ll��ll����ll����ll����(=t__doc__t
__author__tstructtgoogle.protobufRRRRtWIRETYPE_VARINTtWIRETYPE_FIXED64tWIRETYPE_LENGTH_DELIMITEDtWIRETYPE_START_GROUPtWIRETYPE_END_GROUPtWIRETYPE_FIXED32Rtintt	INT32_MAXt	INT32_MINt
UINT32_MAXt	INT64_MAXt	INT64_MINR7tFORMAT_UINT32_LITTLE_ENDIANtFORMAT_UINT64_LITTLE_ENDIANtFORMAT_FLOAT_LITTLE_ENDIANtFORMAT_DOUBLE_LITTLE_ENDIANtcalcsizetAssertionErrorRR
RR
RRRRRRRRRR R"R$R&R(R*R.R+R1R2R6RRtFieldDescriptortTYPE_STRINGt
TYPE_GROUPtTYPE_MESSAGEt
TYPE_BYTESR8R:(((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyt<module>st	
		
																										PK�\��Sb , ,/protobuf/internal/descriptor_pool_test1_pb2.pycnu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedejdddddddddd�ejdddd dd!dddd�gd"dddd#d$d%d&�	Zeje�ejdddd'dddedejdd(dddd)dddd�ejdd*dd dd+dddd�gd"dddd#d,d%d-�	Zeje�ejdddd.dddedejdd/dddd dddd�ejdd0dd dd1dddd�gd"dddd#d2d%d3�	Zeje�ejdddd4dddedejdd5dddd6dddd�ejdd7dd dd8dddd�gd"dddd#d9d%d:�	Zeje�ejdddd;dddedejdd<dddd=dddd�ejdd>dd dd?dddd�gd"dddd#d@d%dA�	Zeje�ejddddBdddedejddCdddddddd�ejddDdd ddEdddd�gd"dddd#dFd%dG�	Zeje�ejddHddIddded"ddJejddKddLdddd ddMdNd!dOd dPedQddRddSdd"ddTedUdddde�ejddVddWdd dd1dd=dNd=dOd dPedQedX�jdY�dRddSdd"ddTedUdddde�gdZgd[gd\egddd]eddd^gd_gd#d`d%d&�Z ejddaddbddded"ddJejddKddcdddd ddMdNd!dOd dPedQd+dRddSdd"ddTedUdddde�ejddVddddd dd1dd=dNd=dOd dPedQede�jdY�dRddSdd"ddTedUdddde�ejddfddgdd1dddd6dNd?dOd dPedQddRddSdd"ddTedUdddde�gdZgd[e gd\egddd]eddd^gd_gd#dhd%d-�Z!ejddiddjddded"ddJejddKddkdddd ddMdNd!dOd dPedQd1dRddSdd"ddTedUdddde�ejddlddmdd dd1dd6dNd?dOd dPedQddRddSdd"ddTedUdddde�gdZgd[e!gd\egddd]eddd^d�gd_gd#dpd%dq�Z"ejddHddrddded"ddJejddKddsdddd ddMdNd!dOd dPedQd8dRddSdd"ddTedUdddde�ejddVddtdd dd1dd=dNd=dOd dPedQedu�jdY�dRddSdd"ddTedUdddde�gdZgd[gd\egddd]eddd^gd_gd#dvd%d:�Z#ejddaddwddded"ddJejddKddxdddd ddMdNd!dOd dPedQd=dRddSdd"ddTedUdddde�ejddVddydd dd1dd=dNd=dOd dPedQedz�jdY�dRddSdd"ddTedUdddde�ejddfdd{dd1dddd6dNd?dOd dPedQddRddSdd"ddTedUdddde�gdZgd[e#gd\egddd]eddd^gd_gd#d|d%dA�Z$ejdd}dd~ddded"ddJejddKdddddd ddMdNd!dOd dPedQddRddSdd"ddTedUdddde�ejddldd�dd dd1dd6dNd?dOd dPedQddRddSdd"ddTedUdddde�gdZgd[e$gd\egddd]eddd^gd_gd#d�d%dG�Z%ee j&dK_'e!e _(e e_(ee!j&dK_'e e!j&df_)e"e!_(e!e_(ee"j&dK_'e!e"j&dl_)e"e_(ee#j&dK_'e$e#_(e#e_(ee$j&dK_'e#e$j&df_)e%e$_(e$e_(ee%j&dK_'e$e%j&dl_)e%e_(e"ej*di<e%ej*d}<ej+e�e	j,diej-fe.dae	j,daej-fe.dHe	j,dHej-fe.d�e d�d���d�e!d�d���d�e"d�d���Z/ej0e/�ej0e/j1�ej0e/j1j2�e	j,d}ej-fe.dae	j,daej-fe.dHe	j,dHej-fe.d�e#d�d���d�e$d�d���d�e%d�d���Z3ej0e3�ej0e3j1�ej0e3j1j2�dS(�i����NiicCs|S(N((tx((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test1_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test1_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames4google/protobuf/internal/descriptor_pool_test1.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbsI
4google/protobuf/internal/descriptor_pool_test1.protogoogle.protobuf.python.internal"�
DescriptorPoolTest1Z
nested_enum (2?.google.protobuf.python.internal.DescriptorPoolTest1.NestedEnum:BETAZ
nested_message (2B.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage�

NestedMessageh
nested_enum (2M.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.NestedEnum:ZETA
nested_field (	:betaq
deep_nested_message (2T.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage�
DeepNestedMessagey
nested_enum (2_.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.NestedEnum:ETA
nested_field (	:theta" 

NestedEnum
ETA	
THETA"#

NestedEnum
EPSILON
ZETA"!

NestedEnum	
ALPHA
BETA*	�����"�
DescriptorPoolTest2[
nested_enum (2?.google.protobuf.python.internal.DescriptorPoolTest2.NestedEnum:GAMMAZ
nested_message (2B.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage�

NestedMessageh
nested_enum (2M.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.NestedEnum:IOTA
nested_field (	:deltaq
deep_nested_message (2T.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage�
DeepNestedMessagex
nested_enum (2_.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.NestedEnum:MU
nested_field (	:lambda" 

NestedEnum

LAMBDA
MU"!

NestedEnum
IOTA		
KAPPA
""

NestedEnum	
GAMMA	
DELTAt
NestedEnumt	full_names^google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.NestedEnumtfilenametfiletvaluestETAtindextnumberitoptionsttypetTHETAiitcontaining_typetserialized_starti�tserialized_endisLgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.NestedEnumtEPSILONitZETAiii's>google.protobuf.python.internal.DescriptorPoolTest1.NestedEnumtALPHAtBETAii)iJs^google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.NestedEnumtLAMBDAitMUii�isLgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.NestedEnumtIOTAi	tKAPPAi
ii%s>google.protobuf.python.internal.DescriptorPoolTest2.NestedEnumtGAMMAtDELTAii'iItDeepNestedMessagesSgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessagetfieldstnested_enums_google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.nested_enumitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetnested_fields`google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.nested_fieldtthetasutf-8t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi5t
NestedMessagesAgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessagesMgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.nested_enumsNgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.nested_fieldtbetatdeep_nested_messagesUgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.deep_nested_messagei*tDescriptorPoolTest1s3google.protobuf.python.internal.DescriptorPoolTest1s?google.protobuf.python.internal.DescriptorPoolTest1.nested_enumtnested_messagesBgoogle.protobuf.python.internal.DescriptorPoolTest1.nested_messagei�i iZiUsSgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessages_google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.nested_enums`google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.nested_fieldtlambdai5sAgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessagesMgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.nested_enumsNgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.nested_fieldtdeltasUgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.deep_nested_messagei)tDescriptorPoolTest2s3google.protobuf.python.internal.DescriptorPoolTest2s?google.protobuf.python.internal.DescriptorPoolTest2.nested_enumsBgoogle.protobuf.python.internal.DescriptorPoolTest2.nested_messageiXt
DESCRIPTORt
__module__s2google.protobuf.internal.descriptor_pool_test1_pb2(i�i (4tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorRBtEnumDescriptortNonetEnumValueDescriptort?_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUMtRegisterEnumDescriptort-_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_NESTEDENUMt_DESCRIPTORPOOLTEST1_NESTEDENUMt?_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUMt-_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_NESTEDENUMt_DESCRIPTORPOOLTEST2_NESTEDENUMt
DescriptortFieldDescriptortTruetFalsetdecodet4_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGEt"_DESCRIPTORPOOLTEST1_NESTEDMESSAGEt_DESCRIPTORPOOLTEST1t4_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGEt"_DESCRIPTORPOOLTEST2_NESTEDMESSAGEt_DESCRIPTORPOOLTEST2tfields_by_nameR/RR.tmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR=tRegisterMessageR:R'RA(((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test1_pb2.pyt<module>s�%					
				
				
				
				
				
																																															




PK�\�ѽwnwn%protobuf/internal/well_known_types.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Contains well known classes.

This files defines well known classes which need extra maintenance including:
  - Any
  - Duration
  - FieldMask
  - Struct
  - Timestamp
"""

__author__ = 'jieluo@google.com (Jie Luo)'

import collections
from datetime import datetime
from datetime import timedelta
import six

from google.protobuf.descriptor import FieldDescriptor

_TIMESTAMPFOMAT = '%Y-%m-%dT%H:%M:%S'
_NANOS_PER_SECOND = 1000000000
_NANOS_PER_MILLISECOND = 1000000
_NANOS_PER_MICROSECOND = 1000
_MILLIS_PER_SECOND = 1000
_MICROS_PER_SECOND = 1000000
_SECONDS_PER_DAY = 24 * 3600
_DURATION_SECONDS_MAX = 315576000000


class Error(Exception):
  """Top-level module error."""


class ParseError(Error):
  """Thrown in case of parsing error."""


class Any(object):
  """Class for Any Message type."""

  def Pack(self, msg, type_url_prefix='type.googleapis.com/',
           deterministic=None):
    """Packs the specified message into current Any message."""
    if len(type_url_prefix) < 1 or type_url_prefix[-1] != '/':
      self.type_url = '%s/%s' % (type_url_prefix, msg.DESCRIPTOR.full_name)
    else:
      self.type_url = '%s%s' % (type_url_prefix, msg.DESCRIPTOR.full_name)
    self.value = msg.SerializeToString(deterministic=deterministic)

  def Unpack(self, msg):
    """Unpacks the current Any message into specified message."""
    descriptor = msg.DESCRIPTOR
    if not self.Is(descriptor):
      return False
    msg.ParseFromString(self.value)
    return True

  def TypeName(self):
    """Returns the protobuf type name of the inner message."""
    # Only last part is to be used: b/25630112
    return self.type_url.split('/')[-1]

  def Is(self, descriptor):
    """Checks if this Any represents the given protobuf type."""
    return self.TypeName() == descriptor.full_name


class Timestamp(object):
  """Class for Timestamp message type."""

  def ToJsonString(self):
    """Converts Timestamp to RFC 3339 date string format.

    Returns:
      A string converted from timestamp. The string is always Z-normalized
      and uses 3, 6 or 9 fractional digits as required to represent the
      exact time. Example of the return format: '1972-01-01T10:00:20.021Z'
    """
    nanos = self.nanos % _NANOS_PER_SECOND
    total_sec = self.seconds + (self.nanos - nanos) // _NANOS_PER_SECOND
    seconds = total_sec % _SECONDS_PER_DAY
    days = (total_sec - seconds) // _SECONDS_PER_DAY
    dt = datetime(1970, 1, 1) + timedelta(days, seconds)

    result = dt.isoformat()
    if (nanos % 1e9) == 0:
      # If there are 0 fractional digits, the fractional
      # point '.' should be omitted when serializing.
      return result + 'Z'
    if (nanos % 1e6) == 0:
      # Serialize 3 fractional digits.
      return result + '.%03dZ' % (nanos / 1e6)
    if (nanos % 1e3) == 0:
      # Serialize 6 fractional digits.
      return result + '.%06dZ' % (nanos / 1e3)
    # Serialize 9 fractional digits.
    return result + '.%09dZ' % nanos

  def FromJsonString(self, value):
    """Parse a RFC 3339 date string format to Timestamp.

    Args:
      value: A date string. Any fractional digits (or none) and any offset are
          accepted as long as they fit into nano-seconds precision.
          Example of accepted format: '1972-01-01T10:00:20.021-05:00'

    Raises:
      ParseError: On parsing problems.
    """
    timezone_offset = value.find('Z')
    if timezone_offset == -1:
      timezone_offset = value.find('+')
    if timezone_offset == -1:
      timezone_offset = value.rfind('-')
    if timezone_offset == -1:
      raise ParseError(
          'Failed to parse timestamp: missing valid timezone offset.')
    time_value = value[0:timezone_offset]
    # Parse datetime and nanos.
    point_position = time_value.find('.')
    if point_position == -1:
      second_value = time_value
      nano_value = ''
    else:
      second_value = time_value[:point_position]
      nano_value = time_value[point_position + 1:]
    date_object = datetime.strptime(second_value, _TIMESTAMPFOMAT)
    td = date_object - datetime(1970, 1, 1)
    seconds = td.seconds + td.days * _SECONDS_PER_DAY
    if len(nano_value) > 9:
      raise ParseError(
          'Failed to parse Timestamp: nanos {0} more than '
          '9 fractional digits.'.format(nano_value))
    if nano_value:
      nanos = round(float('0.' + nano_value) * 1e9)
    else:
      nanos = 0
    # Parse timezone offsets.
    if value[timezone_offset] == 'Z':
      if len(value) != timezone_offset + 1:
        raise ParseError('Failed to parse timestamp: invalid trailing'
                         ' data {0}.'.format(value))
    else:
      timezone = value[timezone_offset:]
      pos = timezone.find(':')
      if pos == -1:
        raise ParseError(
            'Invalid timezone offset value: {0}.'.format(timezone))
      if timezone[0] == '+':
        seconds -= (int(timezone[1:pos])*60+int(timezone[pos+1:]))*60
      else:
        seconds += (int(timezone[1:pos])*60+int(timezone[pos+1:]))*60
    # Set seconds and nanos
    self.seconds = int(seconds)
    self.nanos = int(nanos)

  def GetCurrentTime(self):
    """Get the current UTC into Timestamp."""
    self.FromDatetime(datetime.utcnow())

  def ToNanoseconds(self):
    """Converts Timestamp to nanoseconds since epoch."""
    return self.seconds * _NANOS_PER_SECOND + self.nanos

  def ToMicroseconds(self):
    """Converts Timestamp to microseconds since epoch."""
    return (self.seconds * _MICROS_PER_SECOND +
            self.nanos // _NANOS_PER_MICROSECOND)

  def ToMilliseconds(self):
    """Converts Timestamp to milliseconds since epoch."""
    return (self.seconds * _MILLIS_PER_SECOND +
            self.nanos // _NANOS_PER_MILLISECOND)

  def ToSeconds(self):
    """Converts Timestamp to seconds since epoch."""
    return self.seconds

  def FromNanoseconds(self, nanos):
    """Converts nanoseconds since epoch to Timestamp."""
    self.seconds = nanos // _NANOS_PER_SECOND
    self.nanos = nanos % _NANOS_PER_SECOND

  def FromMicroseconds(self, micros):
    """Converts microseconds since epoch to Timestamp."""
    self.seconds = micros // _MICROS_PER_SECOND
    self.nanos = (micros % _MICROS_PER_SECOND) * _NANOS_PER_MICROSECOND

  def FromMilliseconds(self, millis):
    """Converts milliseconds since epoch to Timestamp."""
    self.seconds = millis // _MILLIS_PER_SECOND
    self.nanos = (millis % _MILLIS_PER_SECOND) * _NANOS_PER_MILLISECOND

  def FromSeconds(self, seconds):
    """Converts seconds since epoch to Timestamp."""
    self.seconds = seconds
    self.nanos = 0

  def ToDatetime(self):
    """Converts Timestamp to datetime."""
    return datetime.utcfromtimestamp(
        self.seconds + self.nanos / float(_NANOS_PER_SECOND))

  def FromDatetime(self, dt):
    """Converts datetime to Timestamp."""
    td = dt - datetime(1970, 1, 1)
    self.seconds = td.seconds + td.days * _SECONDS_PER_DAY
    self.nanos = td.microseconds * _NANOS_PER_MICROSECOND


class Duration(object):
  """Class for Duration message type."""

  def ToJsonString(self):
    """Converts Duration to string format.

    Returns:
      A string converted from self. The string format will contains
      3, 6, or 9 fractional digits depending on the precision required to
      represent the exact Duration value. For example: "1s", "1.010s",
      "1.000000100s", "-3.100s"
    """
    _CheckDurationValid(self.seconds, self.nanos)
    if self.seconds < 0 or self.nanos < 0:
      result = '-'
      seconds = - self.seconds + int((0 - self.nanos) // 1e9)
      nanos = (0 - self.nanos) % 1e9
    else:
      result = ''
      seconds = self.seconds + int(self.nanos // 1e9)
      nanos = self.nanos % 1e9
    result += '%d' % seconds
    if (nanos % 1e9) == 0:
      # If there are 0 fractional digits, the fractional
      # point '.' should be omitted when serializing.
      return result + 's'
    if (nanos % 1e6) == 0:
      # Serialize 3 fractional digits.
      return result + '.%03ds' % (nanos / 1e6)
    if (nanos % 1e3) == 0:
      # Serialize 6 fractional digits.
      return result + '.%06ds' % (nanos / 1e3)
    # Serialize 9 fractional digits.
    return result + '.%09ds' % nanos

  def FromJsonString(self, value):
    """Converts a string to Duration.

    Args:
      value: A string to be converted. The string must end with 's'. Any
          fractional digits (or none) are accepted as long as they fit into
          precision. For example: "1s", "1.01s", "1.0000001s", "-3.100s

    Raises:
      ParseError: On parsing problems.
    """
    if len(value) < 1 or value[-1] != 's':
      raise ParseError(
          'Duration must end with letter "s": {0}.'.format(value))
    try:
      pos = value.find('.')
      if pos == -1:
        seconds = int(value[:-1])
        nanos = 0
      else:
        seconds = int(value[:pos])
        if value[0] == '-':
          nanos = int(round(float('-0{0}'.format(value[pos: -1])) *1e9))
        else:
          nanos = int(round(float('0{0}'.format(value[pos: -1])) *1e9))
      _CheckDurationValid(seconds, nanos)
      self.seconds = seconds
      self.nanos = nanos
    except ValueError:
      raise ParseError(
          'Couldn\'t parse duration: {0}.'.format(value))

  def ToNanoseconds(self):
    """Converts a Duration to nanoseconds."""
    return self.seconds * _NANOS_PER_SECOND + self.nanos

  def ToMicroseconds(self):
    """Converts a Duration to microseconds."""
    micros = _RoundTowardZero(self.nanos, _NANOS_PER_MICROSECOND)
    return self.seconds * _MICROS_PER_SECOND + micros

  def ToMilliseconds(self):
    """Converts a Duration to milliseconds."""
    millis = _RoundTowardZero(self.nanos, _NANOS_PER_MILLISECOND)
    return self.seconds * _MILLIS_PER_SECOND + millis

  def ToSeconds(self):
    """Converts a Duration to seconds."""
    return self.seconds

  def FromNanoseconds(self, nanos):
    """Converts nanoseconds to Duration."""
    self._NormalizeDuration(nanos // _NANOS_PER_SECOND,
                            nanos % _NANOS_PER_SECOND)

  def FromMicroseconds(self, micros):
    """Converts microseconds to Duration."""
    self._NormalizeDuration(
        micros // _MICROS_PER_SECOND,
        (micros % _MICROS_PER_SECOND) * _NANOS_PER_MICROSECOND)

  def FromMilliseconds(self, millis):
    """Converts milliseconds to Duration."""
    self._NormalizeDuration(
        millis // _MILLIS_PER_SECOND,
        (millis % _MILLIS_PER_SECOND) * _NANOS_PER_MILLISECOND)

  def FromSeconds(self, seconds):
    """Converts seconds to Duration."""
    self.seconds = seconds
    self.nanos = 0

  def ToTimedelta(self):
    """Converts Duration to timedelta."""
    return timedelta(
        seconds=self.seconds, microseconds=_RoundTowardZero(
            self.nanos, _NANOS_PER_MICROSECOND))

  def FromTimedelta(self, td):
    """Converts timedelta to Duration."""
    self._NormalizeDuration(td.seconds + td.days * _SECONDS_PER_DAY,
                            td.microseconds * _NANOS_PER_MICROSECOND)

  def _NormalizeDuration(self, seconds, nanos):
    """Set Duration by seconds and nanos."""
    # Force nanos to be negative if the duration is negative.
    if seconds < 0 and nanos > 0:
      seconds += 1
      nanos -= _NANOS_PER_SECOND
    self.seconds = seconds
    self.nanos = nanos


def _CheckDurationValid(seconds, nanos):
  if seconds < -_DURATION_SECONDS_MAX or seconds > _DURATION_SECONDS_MAX:
    raise Error(
        'Duration is not valid: Seconds {0} must be in range '
        '[-315576000000, 315576000000].'.format(seconds))
  if nanos <= -_NANOS_PER_SECOND or nanos >= _NANOS_PER_SECOND:
    raise Error(
        'Duration is not valid: Nanos {0} must be in range '
        '[-999999999, 999999999].'.format(nanos))


def _RoundTowardZero(value, divider):
  """Truncates the remainder part after division."""
  # For some languanges, the sign of the remainder is implementation
  # dependent if any of the operands is negative. Here we enforce
  # "rounded toward zero" semantics. For example, for (-5) / 2 an
  # implementation may give -3 as the result with the remainder being
  # 1. This function ensures we always return -2 (closer to zero).
  result = value // divider
  remainder = value % divider
  if result < 0 and remainder > 0:
    return result + 1
  else:
    return result


class FieldMask(object):
  """Class for FieldMask message type."""

  def ToJsonString(self):
    """Converts FieldMask to string according to proto3 JSON spec."""
    camelcase_paths = []
    for path in self.paths:
      camelcase_paths.append(_SnakeCaseToCamelCase(path))
    return ','.join(camelcase_paths)

  def FromJsonString(self, value):
    """Converts string to FieldMask according to proto3 JSON spec."""
    self.Clear()
    for path in value.split(','):
      self.paths.append(_CamelCaseToSnakeCase(path))

  def IsValidForDescriptor(self, message_descriptor):
    """Checks whether the FieldMask is valid for Message Descriptor."""
    for path in self.paths:
      if not _IsValidPath(message_descriptor, path):
        return False
    return True

  def AllFieldsFromDescriptor(self, message_descriptor):
    """Gets all direct fields of Message Descriptor to FieldMask."""
    self.Clear()
    for field in message_descriptor.fields:
      self.paths.append(field.name)

  def CanonicalFormFromMask(self, mask):
    """Converts a FieldMask to the canonical form.

    Removes paths that are covered by another path. For example,
    "foo.bar" is covered by "foo" and will be removed if "foo"
    is also in the FieldMask. Then sorts all paths in alphabetical order.

    Args:
      mask: The original FieldMask to be converted.
    """
    tree = _FieldMaskTree(mask)
    tree.ToFieldMask(self)

  def Union(self, mask1, mask2):
    """Merges mask1 and mask2 into this FieldMask."""
    _CheckFieldMaskMessage(mask1)
    _CheckFieldMaskMessage(mask2)
    tree = _FieldMaskTree(mask1)
    tree.MergeFromFieldMask(mask2)
    tree.ToFieldMask(self)

  def Intersect(self, mask1, mask2):
    """Intersects mask1 and mask2 into this FieldMask."""
    _CheckFieldMaskMessage(mask1)
    _CheckFieldMaskMessage(mask2)
    tree = _FieldMaskTree(mask1)
    intersection = _FieldMaskTree()
    for path in mask2.paths:
      tree.IntersectPath(path, intersection)
    intersection.ToFieldMask(self)

  def MergeMessage(
      self, source, destination,
      replace_message_field=False, replace_repeated_field=False):
    """Merges fields specified in FieldMask from source to destination.

    Args:
      source: Source message.
      destination: The destination message to be merged into.
      replace_message_field: Replace message field if True. Merge message
          field if False.
      replace_repeated_field: Replace repeated field if True. Append
          elements of repeated field if False.
    """
    tree = _FieldMaskTree(self)
    tree.MergeMessage(
        source, destination, replace_message_field, replace_repeated_field)


def _IsValidPath(message_descriptor, path):
  """Checks whether the path is valid for Message Descriptor."""
  parts = path.split('.')
  last = parts.pop()
  for name in parts:
    field = message_descriptor.fields_by_name.get(name)
    if (field is None or
        field.label == FieldDescriptor.LABEL_REPEATED or
        field.type != FieldDescriptor.TYPE_MESSAGE):
      return False
    message_descriptor = field.message_type
  return last in message_descriptor.fields_by_name


def _CheckFieldMaskMessage(message):
  """Raises ValueError if message is not a FieldMask."""
  message_descriptor = message.DESCRIPTOR
  if (message_descriptor.name != 'FieldMask' or
      message_descriptor.file.name != 'google/protobuf/field_mask.proto'):
    raise ValueError('Message {0} is not a FieldMask.'.format(
        message_descriptor.full_name))


def _SnakeCaseToCamelCase(path_name):
  """Converts a path name from snake_case to camelCase."""
  result = []
  after_underscore = False
  for c in path_name:
    if c.isupper():
      raise Error('Fail to print FieldMask to Json string: Path name '
                  '{0} must not contain uppercase letters.'.format(path_name))
    if after_underscore:
      if c.islower():
        result.append(c.upper())
        after_underscore = False
      else:
        raise Error('Fail to print FieldMask to Json string: The '
                    'character after a "_" must be a lowercase letter '
                    'in path name {0}.'.format(path_name))
    elif c == '_':
      after_underscore = True
    else:
      result += c

  if after_underscore:
    raise Error('Fail to print FieldMask to Json string: Trailing "_" '
                'in path name {0}.'.format(path_name))
  return ''.join(result)


def _CamelCaseToSnakeCase(path_name):
  """Converts a field name from camelCase to snake_case."""
  result = []
  for c in path_name:
    if c == '_':
      raise ParseError('Fail to parse FieldMask: Path name '
                       '{0} must not contain "_"s.'.format(path_name))
    if c.isupper():
      result += '_'
      result += c.lower()
    else:
      result += c
  return ''.join(result)


class _FieldMaskTree(object):
  """Represents a FieldMask in a tree structure.

  For example, given a FieldMask "foo.bar,foo.baz,bar.baz",
  the FieldMaskTree will be:
      [_root] -+- foo -+- bar
            |       |
            |       +- baz
            |
            +- bar --- baz
  In the tree, each leaf node represents a field path.
  """

  def __init__(self, field_mask=None):
    """Initializes the tree by FieldMask."""
    self._root = {}
    if field_mask:
      self.MergeFromFieldMask(field_mask)

  def MergeFromFieldMask(self, field_mask):
    """Merges a FieldMask to the tree."""
    for path in field_mask.paths:
      self.AddPath(path)

  def AddPath(self, path):
    """Adds a field path into the tree.

    If the field path to add is a sub-path of an existing field path
    in the tree (i.e., a leaf node), it means the tree already matches
    the given path so nothing will be added to the tree. If the path
    matches an existing non-leaf node in the tree, that non-leaf node
    will be turned into a leaf node with all its children removed because
    the path matches all the node's children. Otherwise, a new path will
    be added.

    Args:
      path: The field path to add.
    """
    node = self._root
    for name in path.split('.'):
      if name not in node:
        node[name] = {}
      elif not node[name]:
        # Pre-existing empty node implies we already have this entire tree.
        return
      node = node[name]
    # Remove any sub-trees we might have had.
    node.clear()

  def ToFieldMask(self, field_mask):
    """Converts the tree to a FieldMask."""
    field_mask.Clear()
    _AddFieldPaths(self._root, '', field_mask)

  def IntersectPath(self, path, intersection):
    """Calculates the intersection part of a field path with this tree.

    Args:
      path: The field path to calculates.
      intersection: The out tree to record the intersection part.
    """
    node = self._root
    for name in path.split('.'):
      if name not in node:
        return
      elif not node[name]:
        intersection.AddPath(path)
        return
      node = node[name]
    intersection.AddLeafNodes(path, node)

  def AddLeafNodes(self, prefix, node):
    """Adds leaf nodes begin with prefix to this tree."""
    if not node:
      self.AddPath(prefix)
    for name in node:
      child_path = prefix + '.' + name
      self.AddLeafNodes(child_path, node[name])

  def MergeMessage(
      self, source, destination,
      replace_message, replace_repeated):
    """Merge all fields specified by this tree from source to destination."""
    _MergeMessage(
        self._root, source, destination, replace_message, replace_repeated)


def _StrConvert(value):
  """Converts value to str if it is not."""
  # This file is imported by c extension and some methods like ClearField
  # requires string for the field name. py2/py3 has different text
  # type and may use unicode.
  if not isinstance(value, str):
    return value.encode('utf-8')
  return value


def _MergeMessage(
    node, source, destination, replace_message, replace_repeated):
  """Merge all fields specified by a sub-tree from source to destination."""
  source_descriptor = source.DESCRIPTOR
  for name in node:
    child = node[name]
    field = source_descriptor.fields_by_name[name]
    if field is None:
      raise ValueError('Error: Can\'t find field {0} in message {1}.'.format(
          name, source_descriptor.full_name))
    if child:
      # Sub-paths are only allowed for singular message fields.
      if (field.label == FieldDescriptor.LABEL_REPEATED or
          field.cpp_type != FieldDescriptor.CPPTYPE_MESSAGE):
        raise ValueError('Error: Field {0} in message {1} is not a singular '
                         'message field and cannot have sub-fields.'.format(
                             name, source_descriptor.full_name))
      _MergeMessage(
          child, getattr(source, name), getattr(destination, name),
          replace_message, replace_repeated)
      continue
    if field.label == FieldDescriptor.LABEL_REPEATED:
      if replace_repeated:
        destination.ClearField(_StrConvert(name))
      repeated_source = getattr(source, name)
      repeated_destination = getattr(destination, name)
      if field.cpp_type == FieldDescriptor.CPPTYPE_MESSAGE:
        for item in repeated_source:
          repeated_destination.add().MergeFrom(item)
      else:
        repeated_destination.extend(repeated_source)
    else:
      if field.cpp_type == FieldDescriptor.CPPTYPE_MESSAGE:
        if replace_message:
          destination.ClearField(_StrConvert(name))
        if source.HasField(name):
          getattr(destination, name).MergeFrom(getattr(source, name))
      else:
        setattr(destination, name, getattr(source, name))


def _AddFieldPaths(node, prefix, field_mask):
  """Adds the field paths descended from node to field_mask."""
  if not node:
    field_mask.paths.append(prefix)
    return
  for name in sorted(node):
    if prefix:
      child_path = prefix + '.' + name
    else:
      child_path = name
    _AddFieldPaths(node[name], child_path, field_mask)


_INT_OR_FLOAT = six.integer_types + (float,)


def _SetStructValue(struct_value, value):
  if value is None:
    struct_value.null_value = 0
  elif isinstance(value, bool):
    # Note: this check must come before the number check because in Python
    # True and False are also considered numbers.
    struct_value.bool_value = value
  elif isinstance(value, six.string_types):
    struct_value.string_value = value
  elif isinstance(value, _INT_OR_FLOAT):
    struct_value.number_value = value
  elif isinstance(value, dict):
    struct_value.struct_value.Clear()
    struct_value.struct_value.update(value)
  elif isinstance(value, list):
    struct_value.list_value.Clear()
    struct_value.list_value.extend(value)
  else:
    raise ValueError('Unexpected type')


def _GetStructValue(struct_value):
  which = struct_value.WhichOneof('kind')
  if which == 'struct_value':
    return struct_value.struct_value
  elif which == 'null_value':
    return None
  elif which == 'number_value':
    return struct_value.number_value
  elif which == 'string_value':
    return struct_value.string_value
  elif which == 'bool_value':
    return struct_value.bool_value
  elif which == 'list_value':
    return struct_value.list_value
  elif which is None:
    raise ValueError('Value not set')


class Struct(object):
  """Class for Struct message type."""

  __slots__ = []

  def __getitem__(self, key):
    return _GetStructValue(self.fields[key])

  def __contains__(self, item):
    return item in self.fields

  def __setitem__(self, key, value):
    _SetStructValue(self.fields[key], value)

  def __delitem__(self, key):
    del self.fields[key]

  def __len__(self):
    return len(self.fields)

  def __iter__(self):
    return iter(self.fields)

  def keys(self):  # pylint: disable=invalid-name
    return self.fields.keys()

  def values(self):  # pylint: disable=invalid-name
    return [self[key] for key in self]

  def items(self):  # pylint: disable=invalid-name
    return [(key, self[key]) for key in self]

  def get_or_create_list(self, key):
    """Returns a list for this key, creating if it didn't exist already."""
    if not self.fields[key].HasField('list_value'):
      # Clear will mark list_value modified which will indeed create a list.
      self.fields[key].list_value.Clear()
    return self.fields[key].list_value

  def get_or_create_struct(self, key):
    """Returns a struct for this key, creating if it didn't exist already."""
    if not self.fields[key].HasField('struct_value'):
      # Clear will mark struct_value modified which will indeed create a struct.
      self.fields[key].struct_value.Clear()
    return self.fields[key].struct_value

  def update(self, dictionary):  # pylint: disable=invalid-name
    for key, value in dictionary.items():
      _SetStructValue(self.fields[key], value)

collections.MutableMapping.register(Struct)


class ListValue(object):
  """Class for ListValue message type."""

  def __len__(self):
    return len(self.values)

  def append(self, value):
    _SetStructValue(self.values.add(), value)

  def extend(self, elem_seq):
    for value in elem_seq:
      self.append(value)

  def __getitem__(self, index):
    """Retrieves item by the specified index."""
    return _GetStructValue(self.values.__getitem__(index))

  def __setitem__(self, index, value):
    _SetStructValue(self.values.__getitem__(index), value)

  def __delitem__(self, key):
    del self.values[key]

  def items(self):
    for i in range(len(self)):
      yield self[i]

  def add_struct(self):
    """Appends and returns a struct value as the next value in the list."""
    struct_value = self.values.add().struct_value
    # Clear will mark struct_value modified which will indeed create a struct.
    struct_value.Clear()
    return struct_value

  def add_list(self):
    """Appends and returns a list value as the next value in the list."""
    list_value = self.values.add().list_value
    # Clear will mark list_value modified which will indeed create a list.
    list_value.Clear()
    return list_value

collections.MutableSequence.register(ListValue)


WKTBASES = {
    'google.protobuf.Any': Any,
    'google.protobuf.Duration': Duration,
    'google.protobuf.FieldMask': FieldMask,
    'google.protobuf.ListValue': ListValue,
    'google.protobuf.Struct': Struct,
    'google.protobuf.Timestamp': Timestamp,
}
PK�\��ܾ��$protobuf/internal/descriptor_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Unittest for google.protobuf.internal.descriptor."""

__author__ = 'robinson@google.com (Will Robinson)'

import sys

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import unittest_custom_options_pb2
from google.protobuf import unittest_import_pb2
from google.protobuf import unittest_pb2
from google.protobuf import descriptor_pb2
from google.protobuf.internal import api_implementation
from google.protobuf.internal import test_util
from google.protobuf import descriptor
from google.protobuf import descriptor_pool
from google.protobuf import symbol_database
from google.protobuf import text_format


TEST_EMPTY_MESSAGE_DESCRIPTOR_ASCII = """
name: 'TestEmptyMessage'
"""


class DescriptorTest(unittest.TestCase):

  def setUp(self):
    file_proto = descriptor_pb2.FileDescriptorProto(
        name='some/filename/some.proto',
        package='protobuf_unittest')
    message_proto = file_proto.message_type.add(
        name='NestedMessage')
    message_proto.field.add(
        name='bb',
        number=1,
        type=descriptor_pb2.FieldDescriptorProto.TYPE_INT32,
        label=descriptor_pb2.FieldDescriptorProto.LABEL_OPTIONAL)
    enum_proto = message_proto.enum_type.add(
        name='ForeignEnum')
    enum_proto.value.add(name='FOREIGN_FOO', number=4)
    enum_proto.value.add(name='FOREIGN_BAR', number=5)
    enum_proto.value.add(name='FOREIGN_BAZ', number=6)

    file_proto.message_type.add(name='ResponseMessage')
    service_proto = file_proto.service.add(
        name='Service')
    method_proto = service_proto.method.add(
        name='CallMethod',
        input_type='.protobuf_unittest.NestedMessage',
        output_type='.protobuf_unittest.ResponseMessage')

    # Note: Calling DescriptorPool.Add() multiple times with the same file only
    # works if the input is canonical; in particular, all type names must be
    # fully qualified.
    self.pool = self.GetDescriptorPool()
    self.pool.Add(file_proto)
    self.my_file = self.pool.FindFileByName(file_proto.name)
    self.my_message = self.my_file.message_types_by_name[message_proto.name]
    self.my_enum = self.my_message.enum_types_by_name[enum_proto.name]
    self.my_service = self.my_file.services_by_name[service_proto.name]
    self.my_method = self.my_service.methods_by_name[method_proto.name]

  def GetDescriptorPool(self):
    return symbol_database.Default().pool

  def testEnumValueName(self):
    self.assertEqual(self.my_message.EnumValueName('ForeignEnum', 4),
                     'FOREIGN_FOO')

    self.assertEqual(
        self.my_message.enum_types_by_name[
            'ForeignEnum'].values_by_number[4].name,
        self.my_message.EnumValueName('ForeignEnum', 4))
    with self.assertRaises(KeyError):
      self.my_message.EnumValueName('ForeignEnum', 999)
    with self.assertRaises(KeyError):
      self.my_message.EnumValueName('NoneEnum', 999)
    with self.assertRaises(TypeError):
      self.my_message.EnumValueName()

  def testEnumFixups(self):
    self.assertEqual(self.my_enum, self.my_enum.values[0].type)

  def testContainingTypeFixups(self):
    self.assertEqual(self.my_message, self.my_message.fields[0].containing_type)
    self.assertEqual(self.my_message, self.my_enum.containing_type)

  def testContainingServiceFixups(self):
    self.assertEqual(self.my_service, self.my_method.containing_service)

  def testGetOptions(self):
    self.assertEqual(self.my_enum.GetOptions(),
                     descriptor_pb2.EnumOptions())
    self.assertEqual(self.my_enum.values[0].GetOptions(),
                     descriptor_pb2.EnumValueOptions())
    self.assertEqual(self.my_message.GetOptions(),
                     descriptor_pb2.MessageOptions())
    self.assertEqual(self.my_message.fields[0].GetOptions(),
                     descriptor_pb2.FieldOptions())
    self.assertEqual(self.my_method.GetOptions(),
                     descriptor_pb2.MethodOptions())
    self.assertEqual(self.my_service.GetOptions(),
                     descriptor_pb2.ServiceOptions())

  def testSimpleCustomOptions(self):
    file_descriptor = unittest_custom_options_pb2.DESCRIPTOR
    message_descriptor = (unittest_custom_options_pb2.
                          TestMessageWithCustomOptions.DESCRIPTOR)
    field_descriptor = message_descriptor.fields_by_name['field1']
    oneof_descriptor = message_descriptor.oneofs_by_name['AnOneof']
    enum_descriptor = message_descriptor.enum_types_by_name['AnEnum']
    enum_value_descriptor = (message_descriptor.
                             enum_values_by_name['ANENUM_VAL2'])
    other_enum_value_descriptor = (message_descriptor.
                                   enum_values_by_name['ANENUM_VAL1'])
    service_descriptor = (unittest_custom_options_pb2.
                          TestServiceWithCustomOptions.DESCRIPTOR)
    method_descriptor = service_descriptor.FindMethodByName('Foo')

    file_options = file_descriptor.GetOptions()
    file_opt1 = unittest_custom_options_pb2.file_opt1
    self.assertEqual(9876543210, file_options.Extensions[file_opt1])
    message_options = message_descriptor.GetOptions()
    message_opt1 = unittest_custom_options_pb2.message_opt1
    self.assertEqual(-56, message_options.Extensions[message_opt1])
    field_options = field_descriptor.GetOptions()
    field_opt1 = unittest_custom_options_pb2.field_opt1
    self.assertEqual(8765432109, field_options.Extensions[field_opt1])
    field_opt2 = unittest_custom_options_pb2.field_opt2
    self.assertEqual(42, field_options.Extensions[field_opt2])
    oneof_options = oneof_descriptor.GetOptions()
    oneof_opt1 = unittest_custom_options_pb2.oneof_opt1
    self.assertEqual(-99, oneof_options.Extensions[oneof_opt1])
    enum_options = enum_descriptor.GetOptions()
    enum_opt1 = unittest_custom_options_pb2.enum_opt1
    self.assertEqual(-789, enum_options.Extensions[enum_opt1])
    enum_value_options = enum_value_descriptor.GetOptions()
    enum_value_opt1 = unittest_custom_options_pb2.enum_value_opt1
    self.assertEqual(123, enum_value_options.Extensions[enum_value_opt1])

    service_options = service_descriptor.GetOptions()
    service_opt1 = unittest_custom_options_pb2.service_opt1
    self.assertEqual(-9876543210, service_options.Extensions[service_opt1])
    method_options = method_descriptor.GetOptions()
    method_opt1 = unittest_custom_options_pb2.method_opt1
    self.assertEqual(unittest_custom_options_pb2.METHODOPT1_VAL2,
                     method_options.Extensions[method_opt1])

    message_descriptor = (
        unittest_custom_options_pb2.DummyMessageContainingEnum.DESCRIPTOR)
    self.assertTrue(file_descriptor.has_options)
    self.assertFalse(message_descriptor.has_options)
    self.assertTrue(field_descriptor.has_options)
    self.assertTrue(oneof_descriptor.has_options)
    self.assertTrue(enum_descriptor.has_options)
    self.assertTrue(enum_value_descriptor.has_options)
    self.assertFalse(other_enum_value_descriptor.has_options)

  def testDifferentCustomOptionTypes(self):
    kint32min = -2**31
    kint64min = -2**63
    kint32max = 2**31 - 1
    kint64max = 2**63 - 1
    kuint32max = 2**32 - 1
    kuint64max = 2**64 - 1

    message_descriptor =\
        unittest_custom_options_pb2.CustomOptionMinIntegerValues.DESCRIPTOR
    message_options = message_descriptor.GetOptions()
    self.assertEqual(False, message_options.Extensions[
        unittest_custom_options_pb2.bool_opt])
    self.assertEqual(kint32min, message_options.Extensions[
        unittest_custom_options_pb2.int32_opt])
    self.assertEqual(kint64min, message_options.Extensions[
        unittest_custom_options_pb2.int64_opt])
    self.assertEqual(0, message_options.Extensions[
        unittest_custom_options_pb2.uint32_opt])
    self.assertEqual(0, message_options.Extensions[
        unittest_custom_options_pb2.uint64_opt])
    self.assertEqual(kint32min, message_options.Extensions[
        unittest_custom_options_pb2.sint32_opt])
    self.assertEqual(kint64min, message_options.Extensions[
        unittest_custom_options_pb2.sint64_opt])
    self.assertEqual(0, message_options.Extensions[
        unittest_custom_options_pb2.fixed32_opt])
    self.assertEqual(0, message_options.Extensions[
        unittest_custom_options_pb2.fixed64_opt])
    self.assertEqual(kint32min, message_options.Extensions[
        unittest_custom_options_pb2.sfixed32_opt])
    self.assertEqual(kint64min, message_options.Extensions[
        unittest_custom_options_pb2.sfixed64_opt])

    message_descriptor =\
        unittest_custom_options_pb2.CustomOptionMaxIntegerValues.DESCRIPTOR
    message_options = message_descriptor.GetOptions()
    self.assertEqual(True, message_options.Extensions[
        unittest_custom_options_pb2.bool_opt])
    self.assertEqual(kint32max, message_options.Extensions[
        unittest_custom_options_pb2.int32_opt])
    self.assertEqual(kint64max, message_options.Extensions[
        unittest_custom_options_pb2.int64_opt])
    self.assertEqual(kuint32max, message_options.Extensions[
        unittest_custom_options_pb2.uint32_opt])
    self.assertEqual(kuint64max, message_options.Extensions[
        unittest_custom_options_pb2.uint64_opt])
    self.assertEqual(kint32max, message_options.Extensions[
        unittest_custom_options_pb2.sint32_opt])
    self.assertEqual(kint64max, message_options.Extensions[
        unittest_custom_options_pb2.sint64_opt])
    self.assertEqual(kuint32max, message_options.Extensions[
        unittest_custom_options_pb2.fixed32_opt])
    self.assertEqual(kuint64max, message_options.Extensions[
        unittest_custom_options_pb2.fixed64_opt])
    self.assertEqual(kint32max, message_options.Extensions[
        unittest_custom_options_pb2.sfixed32_opt])
    self.assertEqual(kint64max, message_options.Extensions[
        unittest_custom_options_pb2.sfixed64_opt])

    message_descriptor =\
        unittest_custom_options_pb2.CustomOptionOtherValues.DESCRIPTOR
    message_options = message_descriptor.GetOptions()
    self.assertEqual(-100, message_options.Extensions[
        unittest_custom_options_pb2.int32_opt])
    self.assertAlmostEqual(12.3456789, message_options.Extensions[
        unittest_custom_options_pb2.float_opt], 6)
    self.assertAlmostEqual(1.234567890123456789, message_options.Extensions[
        unittest_custom_options_pb2.double_opt])
    self.assertEqual("Hello, \"World\"", message_options.Extensions[
        unittest_custom_options_pb2.string_opt])
    self.assertEqual(b"Hello\0World", message_options.Extensions[
        unittest_custom_options_pb2.bytes_opt])
    dummy_enum = unittest_custom_options_pb2.DummyMessageContainingEnum
    self.assertEqual(
        dummy_enum.TEST_OPTION_ENUM_TYPE2,
        message_options.Extensions[unittest_custom_options_pb2.enum_opt])

    message_descriptor =\
        unittest_custom_options_pb2.SettingRealsFromPositiveInts.DESCRIPTOR
    message_options = message_descriptor.GetOptions()
    self.assertAlmostEqual(12, message_options.Extensions[
        unittest_custom_options_pb2.float_opt], 6)
    self.assertAlmostEqual(154, message_options.Extensions[
        unittest_custom_options_pb2.double_opt])

    message_descriptor =\
        unittest_custom_options_pb2.SettingRealsFromNegativeInts.DESCRIPTOR
    message_options = message_descriptor.GetOptions()
    self.assertAlmostEqual(-12, message_options.Extensions[
        unittest_custom_options_pb2.float_opt], 6)
    self.assertAlmostEqual(-154, message_options.Extensions[
        unittest_custom_options_pb2.double_opt])

  def testComplexExtensionOptions(self):
    descriptor =\
        unittest_custom_options_pb2.VariousComplexOptions.DESCRIPTOR
    options = descriptor.GetOptions()
    self.assertEqual(42, options.Extensions[
        unittest_custom_options_pb2.complex_opt1].foo)
    self.assertEqual(324, options.Extensions[
        unittest_custom_options_pb2.complex_opt1].Extensions[
            unittest_custom_options_pb2.quux])
    self.assertEqual(876, options.Extensions[
        unittest_custom_options_pb2.complex_opt1].Extensions[
            unittest_custom_options_pb2.corge].qux)
    self.assertEqual(987, options.Extensions[
        unittest_custom_options_pb2.complex_opt2].baz)
    self.assertEqual(654, options.Extensions[
        unittest_custom_options_pb2.complex_opt2].Extensions[
            unittest_custom_options_pb2.grault])
    self.assertEqual(743, options.Extensions[
        unittest_custom_options_pb2.complex_opt2].bar.foo)
    self.assertEqual(1999, options.Extensions[
        unittest_custom_options_pb2.complex_opt2].bar.Extensions[
            unittest_custom_options_pb2.quux])
    self.assertEqual(2008, options.Extensions[
        unittest_custom_options_pb2.complex_opt2].bar.Extensions[
            unittest_custom_options_pb2.corge].qux)
    self.assertEqual(741, options.Extensions[
        unittest_custom_options_pb2.complex_opt2].Extensions[
            unittest_custom_options_pb2.garply].foo)
    self.assertEqual(1998, options.Extensions[
        unittest_custom_options_pb2.complex_opt2].Extensions[
            unittest_custom_options_pb2.garply].Extensions[
                unittest_custom_options_pb2.quux])
    self.assertEqual(2121, options.Extensions[
        unittest_custom_options_pb2.complex_opt2].Extensions[
            unittest_custom_options_pb2.garply].Extensions[
                unittest_custom_options_pb2.corge].qux)
    self.assertEqual(1971, options.Extensions[
        unittest_custom_options_pb2.ComplexOptionType2
        .ComplexOptionType4.complex_opt4].waldo)
    self.assertEqual(321, options.Extensions[
        unittest_custom_options_pb2.complex_opt2].fred.waldo)
    self.assertEqual(9, options.Extensions[
        unittest_custom_options_pb2.complex_opt3].qux)
    self.assertEqual(22, options.Extensions[
        unittest_custom_options_pb2.complex_opt3].complexoptiontype5.plugh)
    self.assertEqual(24, options.Extensions[
        unittest_custom_options_pb2.complexopt6].xyzzy)

  # Check that aggregate options were parsed and saved correctly in
  # the appropriate descriptors.
  def testAggregateOptions(self):
    file_descriptor = unittest_custom_options_pb2.DESCRIPTOR
    message_descriptor =\
        unittest_custom_options_pb2.AggregateMessage.DESCRIPTOR
    field_descriptor = message_descriptor.fields_by_name["fieldname"]
    enum_descriptor = unittest_custom_options_pb2.AggregateEnum.DESCRIPTOR
    enum_value_descriptor = enum_descriptor.values_by_name["VALUE"]
    service_descriptor =\
        unittest_custom_options_pb2.AggregateService.DESCRIPTOR
    method_descriptor = service_descriptor.FindMethodByName("Method")

    # Tests for the different types of data embedded in fileopt
    file_options = file_descriptor.GetOptions().Extensions[
        unittest_custom_options_pb2.fileopt]
    self.assertEqual(100, file_options.i)
    self.assertEqual("FileAnnotation", file_options.s)
    self.assertEqual("NestedFileAnnotation", file_options.sub.s)
    self.assertEqual("FileExtensionAnnotation", file_options.file.Extensions[
        unittest_custom_options_pb2.fileopt].s)
    self.assertEqual("EmbeddedMessageSetElement", file_options.mset.Extensions[
        unittest_custom_options_pb2.AggregateMessageSetElement
        .message_set_extension].s)

    # Simple tests for all the other types of annotations
    self.assertEqual(
        "MessageAnnotation",
        message_descriptor.GetOptions().Extensions[
            unittest_custom_options_pb2.msgopt].s)
    self.assertEqual(
        "FieldAnnotation",
        field_descriptor.GetOptions().Extensions[
            unittest_custom_options_pb2.fieldopt].s)
    self.assertEqual(
        "EnumAnnotation",
        enum_descriptor.GetOptions().Extensions[
            unittest_custom_options_pb2.enumopt].s)
    self.assertEqual(
        "EnumValueAnnotation",
        enum_value_descriptor.GetOptions().Extensions[
            unittest_custom_options_pb2.enumvalopt].s)
    self.assertEqual(
        "ServiceAnnotation",
        service_descriptor.GetOptions().Extensions[
            unittest_custom_options_pb2.serviceopt].s)
    self.assertEqual(
        "MethodAnnotation",
        method_descriptor.GetOptions().Extensions[
            unittest_custom_options_pb2.methodopt].s)

  def testNestedOptions(self):
    nested_message =\
        unittest_custom_options_pb2.NestedOptionType.NestedMessage.DESCRIPTOR
    self.assertEqual(1001, nested_message.GetOptions().Extensions[
        unittest_custom_options_pb2.message_opt1])
    nested_field = nested_message.fields_by_name["nested_field"]
    self.assertEqual(1002, nested_field.GetOptions().Extensions[
        unittest_custom_options_pb2.field_opt1])
    outer_message =\
        unittest_custom_options_pb2.NestedOptionType.DESCRIPTOR
    nested_enum = outer_message.enum_types_by_name["NestedEnum"]
    self.assertEqual(1003, nested_enum.GetOptions().Extensions[
        unittest_custom_options_pb2.enum_opt1])
    nested_enum_value = outer_message.enum_values_by_name["NESTED_ENUM_VALUE"]
    self.assertEqual(1004, nested_enum_value.GetOptions().Extensions[
        unittest_custom_options_pb2.enum_value_opt1])
    nested_extension = outer_message.extensions_by_name["nested_extension"]
    self.assertEqual(1005, nested_extension.GetOptions().Extensions[
        unittest_custom_options_pb2.field_opt2])

  def testFileDescriptorReferences(self):
    self.assertEqual(self.my_enum.file, self.my_file)
    self.assertEqual(self.my_message.file, self.my_file)

  def testFileDescriptor(self):
    self.assertEqual(self.my_file.name, 'some/filename/some.proto')
    self.assertEqual(self.my_file.package, 'protobuf_unittest')
    self.assertEqual(self.my_file.pool, self.pool)
    self.assertFalse(self.my_file.has_options)
    self.assertEqual('proto2', self.my_file.syntax)
    file_proto = descriptor_pb2.FileDescriptorProto()
    self.my_file.CopyToProto(file_proto)
    self.assertEqual(self.my_file.serialized_pb,
                     file_proto.SerializeToString())
    # Generated modules also belong to the default pool.
    self.assertEqual(unittest_pb2.DESCRIPTOR.pool, descriptor_pool.Default())

  @unittest.skipIf(
      api_implementation.Type() != 'cpp' or api_implementation.Version() != 2,
      'Immutability of descriptors is only enforced in v2 implementation')
  def testImmutableCppDescriptor(self):
    file_descriptor = unittest_pb2.DESCRIPTOR
    message_descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
    field_descriptor = message_descriptor.fields_by_name['optional_int32']
    enum_descriptor = message_descriptor.enum_types_by_name['NestedEnum']
    oneof_descriptor = message_descriptor.oneofs_by_name['oneof_field']
    with self.assertRaises(AttributeError):
      message_descriptor.fields_by_name = None
    with self.assertRaises(TypeError):
      message_descriptor.fields_by_name['Another'] = None
    with self.assertRaises(TypeError):
      message_descriptor.fields.append(None)
    with self.assertRaises(AttributeError):
      field_descriptor.containing_type = message_descriptor
    with self.assertRaises(AttributeError):
      file_descriptor.has_options = False
    with self.assertRaises(AttributeError):
      field_descriptor.has_options = False
    with self.assertRaises(AttributeError):
      oneof_descriptor.has_options = False
    with self.assertRaises(AttributeError):
      enum_descriptor.has_options = False
    with self.assertRaises(AttributeError) as e:
      message_descriptor.has_options = True
    self.assertEqual('attribute is not writable: has_options',
                     str(e.exception))


class NewDescriptorTest(DescriptorTest):
  """Redo the same tests as above, but with a separate DescriptorPool."""

  def GetDescriptorPool(self):
    return descriptor_pool.DescriptorPool()


class GeneratedDescriptorTest(unittest.TestCase):
  """Tests for the properties of descriptors in generated code."""

  def CheckMessageDescriptor(self, message_descriptor):
    # Basic properties
    self.assertEqual(message_descriptor.name, 'TestAllTypes')
    self.assertEqual(message_descriptor.full_name,
                     'protobuf_unittest.TestAllTypes')
    # Test equality and hashability
    self.assertEqual(message_descriptor, message_descriptor)
    self.assertEqual(message_descriptor.fields[0].containing_type,
                     message_descriptor)
    self.assertIn(message_descriptor, [message_descriptor])
    self.assertIn(message_descriptor, {message_descriptor: None})
    # Test field containers
    self.CheckDescriptorSequence(message_descriptor.fields)
    self.CheckDescriptorMapping(message_descriptor.fields_by_name)
    self.CheckDescriptorMapping(message_descriptor.fields_by_number)
    self.CheckDescriptorMapping(message_descriptor.fields_by_camelcase_name)
    self.CheckDescriptorMapping(message_descriptor.enum_types_by_name)
    self.CheckDescriptorMapping(message_descriptor.enum_values_by_name)
    self.CheckDescriptorMapping(message_descriptor.oneofs_by_name)
    self.CheckDescriptorMapping(message_descriptor.enum_types[0].values_by_name)
    # Test extension range
    self.assertEqual(message_descriptor.extension_ranges, [])

  def CheckFieldDescriptor(self, field_descriptor):
    # Basic properties
    self.assertEqual(field_descriptor.name, 'optional_int32')
    self.assertEqual(field_descriptor.camelcase_name, 'optionalInt32')
    self.assertEqual(field_descriptor.full_name,
                     'protobuf_unittest.TestAllTypes.optional_int32')
    self.assertEqual(field_descriptor.containing_type.name, 'TestAllTypes')
    self.assertEqual(field_descriptor.file, unittest_pb2.DESCRIPTOR)
    # Test equality and hashability
    self.assertEqual(field_descriptor, field_descriptor)
    self.assertEqual(
        field_descriptor.containing_type.fields_by_name['optional_int32'],
        field_descriptor)
    self.assertEqual(
        field_descriptor.containing_type.fields_by_camelcase_name[
            'optionalInt32'],
        field_descriptor)
    self.assertIn(field_descriptor, [field_descriptor])
    self.assertIn(field_descriptor, {field_descriptor: None})
    self.assertEqual(None, field_descriptor.extension_scope)
    self.assertEqual(None, field_descriptor.enum_type)
    if api_implementation.Type() == 'cpp':
      # For test coverage only
      self.assertEqual(field_descriptor.id, field_descriptor.id)

  def CheckDescriptorSequence(self, sequence):
    # Verifies that a property like 'messageDescriptor.fields' has all the
    # properties of an immutable abc.Sequence.
    self.assertNotEqual(sequence,
                        unittest_pb2.TestAllExtensions.DESCRIPTOR.fields)
    self.assertNotEqual(sequence, [])
    self.assertNotEqual(sequence, 1)
    self.assertFalse(sequence == 1)  # Only for cpp test coverage
    self.assertEqual(sequence, sequence)
    expected_list = list(sequence)
    self.assertEqual(expected_list, sequence)
    self.assertGreater(len(sequence), 0)  # Sized
    self.assertEqual(len(sequence), len(expected_list))  # Iterable
    self.assertEqual(sequence[len(sequence) -1], sequence[-1])
    item = sequence[0]
    self.assertEqual(item, sequence[0])
    self.assertIn(item, sequence)  # Container
    self.assertEqual(sequence.index(item), 0)
    self.assertEqual(sequence.count(item), 1)
    other_item = unittest_pb2.NestedTestAllTypes.DESCRIPTOR.fields[0]
    self.assertNotIn(other_item, sequence)
    self.assertEqual(sequence.count(other_item), 0)
    self.assertRaises(ValueError, sequence.index, other_item)
    self.assertRaises(ValueError, sequence.index, [])
    reversed_iterator = reversed(sequence)
    self.assertEqual(list(reversed_iterator), list(sequence)[::-1])
    self.assertRaises(StopIteration, next, reversed_iterator)
    expected_list[0] = 'change value'
    self.assertNotEqual(expected_list, sequence)
    # TODO(jieluo): Change __repr__ support for DescriptorSequence.
    if api_implementation.Type() == 'python':
      self.assertEqual(str(list(sequence)), str(sequence))
    else:
      self.assertEqual(str(sequence)[0], '<')

  def CheckDescriptorMapping(self, mapping):
    # Verifies that a property like 'messageDescriptor.fields' has all the
    # properties of an immutable abc.Mapping.
    self.assertNotEqual(
        mapping, unittest_pb2.TestAllExtensions.DESCRIPTOR.fields_by_name)
    self.assertNotEqual(mapping, {})
    self.assertNotEqual(mapping, 1)
    self.assertFalse(mapping == 1)  # Only for cpp test coverage
    excepted_dict = dict(mapping.items())
    self.assertEqual(mapping, excepted_dict)
    self.assertEqual(mapping, mapping)
    self.assertGreater(len(mapping), 0)  # Sized
    self.assertEqual(len(mapping), len(excepted_dict))  # Iterable
    if sys.version_info >= (3,):
      key, item = next(iter(mapping.items()))
    else:
      key, item = mapping.items()[0]
    self.assertIn(key, mapping)  # Container
    self.assertEqual(mapping.get(key), item)
    with self.assertRaises(TypeError):
      mapping.get()
    # TODO(jieluo): Fix python and cpp extension diff.
    if api_implementation.Type() == 'python':
      self.assertRaises(TypeError, mapping.get, [])
    else:
      self.assertEqual(None, mapping.get([]))
    # keys(), iterkeys() &co
    item = (next(iter(mapping.keys())), next(iter(mapping.values())))
    self.assertEqual(item, next(iter(mapping.items())))
    if sys.version_info < (3,):
      def CheckItems(seq, iterator):
        self.assertEqual(next(iterator), seq[0])
        self.assertEqual(list(iterator), seq[1:])
      CheckItems(mapping.keys(), mapping.iterkeys())
      CheckItems(mapping.values(), mapping.itervalues())
      CheckItems(mapping.items(), mapping.iteritems())
    excepted_dict[key] = 'change value'
    self.assertNotEqual(mapping, excepted_dict)
    del excepted_dict[key]
    excepted_dict['new_key'] = 'new'
    self.assertNotEqual(mapping, excepted_dict)
    self.assertRaises(KeyError, mapping.__getitem__, 'key_error')
    self.assertRaises(KeyError, mapping.__getitem__, len(mapping) + 1)
    # TODO(jieluo): Add __repr__ support for DescriptorMapping.
    if api_implementation.Type() == 'python':
      self.assertEqual(len(str(dict(mapping.items()))), len(str(mapping)))
    else:
      self.assertEqual(str(mapping)[0], '<')

  def testDescriptor(self):
    message_descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
    self.CheckMessageDescriptor(message_descriptor)
    field_descriptor = message_descriptor.fields_by_name['optional_int32']
    self.CheckFieldDescriptor(field_descriptor)
    field_descriptor = message_descriptor.fields_by_camelcase_name[
        'optionalInt32']
    self.CheckFieldDescriptor(field_descriptor)
    enum_descriptor = unittest_pb2.DESCRIPTOR.enum_types_by_name[
        'ForeignEnum']
    self.assertEqual(None, enum_descriptor.containing_type)
    # Test extension range
    self.assertEqual(
        unittest_pb2.TestAllExtensions.DESCRIPTOR.extension_ranges,
        [(1, 536870912)])
    self.assertEqual(
        unittest_pb2.TestMultipleExtensionRanges.DESCRIPTOR.extension_ranges,
        [(42, 43), (4143, 4244), (65536, 536870912)])

  def testCppDescriptorContainer(self):
    containing_file = unittest_pb2.DESCRIPTOR
    self.CheckDescriptorSequence(containing_file.dependencies)
    self.CheckDescriptorMapping(containing_file.message_types_by_name)
    self.CheckDescriptorMapping(containing_file.enum_types_by_name)
    self.CheckDescriptorMapping(containing_file.services_by_name)
    self.CheckDescriptorMapping(containing_file.extensions_by_name)
    self.CheckDescriptorMapping(
        unittest_pb2.TestNestedExtension.DESCRIPTOR.extensions_by_name)

  def testCppDescriptorContainer_Iterator(self):
    # Same test with the iterator
    enum = unittest_pb2.TestAllTypes.DESCRIPTOR.enum_types_by_name['NestedEnum']
    values_iter = iter(enum.values)
    del enum
    self.assertEqual('FOO', next(values_iter).name)

  def testServiceDescriptor(self):
    service_descriptor = unittest_pb2.DESCRIPTOR.services_by_name['TestService']
    self.assertEqual(service_descriptor.name, 'TestService')
    self.assertEqual(service_descriptor.methods[0].name, 'Foo')
    self.assertIs(service_descriptor.file, unittest_pb2.DESCRIPTOR)
    self.assertEqual(service_descriptor.index, 0)
    self.CheckDescriptorMapping(service_descriptor.methods_by_name)

  def testOneofDescriptor(self):
    message_descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
    oneof_descriptor = message_descriptor.oneofs_by_name['oneof_field']
    self.assertFalse(oneof_descriptor.has_options)
    self.assertEqual(message_descriptor, oneof_descriptor.containing_type)
    self.assertEqual('oneof_field', oneof_descriptor.name)
    self.assertEqual('protobuf_unittest.TestAllTypes.oneof_field',
                     oneof_descriptor.full_name)
    self.assertEqual(0, oneof_descriptor.index)


class DescriptorCopyToProtoTest(unittest.TestCase):
  """Tests for CopyTo functions of Descriptor."""

  def _AssertProtoEqual(self, actual_proto, expected_class, expected_ascii):
    expected_proto = expected_class()
    text_format.Merge(expected_ascii, expected_proto)

    self.assertEqual(
        actual_proto, expected_proto,
        'Not equal,\nActual:\n%s\nExpected:\n%s\n'
        % (str(actual_proto), str(expected_proto)))

  def _InternalTestCopyToProto(self, desc, expected_proto_class,
                               expected_proto_ascii):
    actual = expected_proto_class()
    desc.CopyToProto(actual)
    self._AssertProtoEqual(
        actual, expected_proto_class, expected_proto_ascii)

  def testCopyToProto_EmptyMessage(self):
    self._InternalTestCopyToProto(
        unittest_pb2.TestEmptyMessage.DESCRIPTOR,
        descriptor_pb2.DescriptorProto,
        TEST_EMPTY_MESSAGE_DESCRIPTOR_ASCII)

  def testCopyToProto_NestedMessage(self):
    TEST_NESTED_MESSAGE_ASCII = """
      name: 'NestedMessage'
      field: <
        name: 'bb'
        number: 1
        label: 1  # Optional
        type: 5  # TYPE_INT32
      >
      """

    self._InternalTestCopyToProto(
        unittest_pb2.TestAllTypes.NestedMessage.DESCRIPTOR,
        descriptor_pb2.DescriptorProto,
        TEST_NESTED_MESSAGE_ASCII)

  def testCopyToProto_ForeignNestedMessage(self):
    TEST_FOREIGN_NESTED_ASCII = """
      name: 'TestForeignNested'
      field: <
        name: 'foreign_nested'
        number: 1
        label: 1  # Optional
        type: 11  # TYPE_MESSAGE
        type_name: '.protobuf_unittest.TestAllTypes.NestedMessage'
      >
      """

    self._InternalTestCopyToProto(
        unittest_pb2.TestForeignNested.DESCRIPTOR,
        descriptor_pb2.DescriptorProto,
        TEST_FOREIGN_NESTED_ASCII)

  def testCopyToProto_ForeignEnum(self):
    TEST_FOREIGN_ENUM_ASCII = """
      name: 'ForeignEnum'
      value: <
        name: 'FOREIGN_FOO'
        number: 4
      >
      value: <
        name: 'FOREIGN_BAR'
        number: 5
      >
      value: <
        name: 'FOREIGN_BAZ'
        number: 6
      >
      """

    self._InternalTestCopyToProto(
        unittest_pb2.ForeignEnum.DESCRIPTOR,
        descriptor_pb2.EnumDescriptorProto,
        TEST_FOREIGN_ENUM_ASCII)

  def testCopyToProto_Options(self):
    TEST_DEPRECATED_FIELDS_ASCII = """
      name: 'TestDeprecatedFields'
      field: <
        name: 'deprecated_int32'
        number: 1
        label: 1  # Optional
        type: 5  # TYPE_INT32
        options: <
          deprecated: true
        >
      >
      """

    self._InternalTestCopyToProto(
        unittest_pb2.TestDeprecatedFields.DESCRIPTOR,
        descriptor_pb2.DescriptorProto,
        TEST_DEPRECATED_FIELDS_ASCII)

  def testCopyToProto_AllExtensions(self):
    TEST_EMPTY_MESSAGE_WITH_EXTENSIONS_ASCII = """
      name: 'TestEmptyMessageWithExtensions'
      extension_range: <
        start: 1
        end: 536870912
      >
      """

    self._InternalTestCopyToProto(
        unittest_pb2.TestEmptyMessageWithExtensions.DESCRIPTOR,
        descriptor_pb2.DescriptorProto,
        TEST_EMPTY_MESSAGE_WITH_EXTENSIONS_ASCII)

  def testCopyToProto_SeveralExtensions(self):
    TEST_MESSAGE_WITH_SEVERAL_EXTENSIONS_ASCII = """
      name: 'TestMultipleExtensionRanges'
      extension_range: <
        start: 42
        end: 43
      >
      extension_range: <
        start: 4143
        end: 4244
      >
      extension_range: <
        start: 65536
        end: 536870912
      >
      """

    self._InternalTestCopyToProto(
        unittest_pb2.TestMultipleExtensionRanges.DESCRIPTOR,
        descriptor_pb2.DescriptorProto,
        TEST_MESSAGE_WITH_SEVERAL_EXTENSIONS_ASCII)

  def testCopyToProto_FileDescriptor(self):
    UNITTEST_IMPORT_FILE_DESCRIPTOR_ASCII = ("""
      name: 'google/protobuf/unittest_import.proto'
      package: 'protobuf_unittest_import'
      dependency: 'google/protobuf/unittest_import_public.proto'
      message_type: <
        name: 'ImportMessage'
        field: <
          name: 'd'
          number: 1
          label: 1  # Optional
          type: 5  # TYPE_INT32
        >
      >
      """ +
      """enum_type: <
        name: 'ImportEnum'
        value: <
          name: 'IMPORT_FOO'
          number: 7
        >
        value: <
          name: 'IMPORT_BAR'
          number: 8
        >
        value: <
          name: 'IMPORT_BAZ'
          number: 9
        >
      >
      enum_type: <
        name: 'ImportEnumForMap'
        value: <
          name: 'UNKNOWN'
          number: 0
        >
        value: <
          name: 'FOO'
          number: 1
        >
        value: <
          name: 'BAR'
          number: 2
        >
      >
      options: <
        java_package: 'com.google.protobuf.test'
        optimize_for: 1  # SPEED
      """ +
      """
        cc_enable_arenas: true
      >
      public_dependency: 0
    """)
    self._InternalTestCopyToProto(
        unittest_import_pb2.DESCRIPTOR,
        descriptor_pb2.FileDescriptorProto,
        UNITTEST_IMPORT_FILE_DESCRIPTOR_ASCII)

  def testCopyToProto_ServiceDescriptor(self):
    TEST_SERVICE_ASCII = """
      name: 'TestService'
      method: <
        name: 'Foo'
        input_type: '.protobuf_unittest.FooRequest'
        output_type: '.protobuf_unittest.FooResponse'
      >
      method: <
        name: 'Bar'
        input_type: '.protobuf_unittest.BarRequest'
        output_type: '.protobuf_unittest.BarResponse'
      >
      """
    self._InternalTestCopyToProto(
        unittest_pb2.TestService.DESCRIPTOR,
        descriptor_pb2.ServiceDescriptorProto,
        TEST_SERVICE_ASCII)

  @unittest.skipIf(
      api_implementation.Type() == 'python',
      'It is not implemented in python.')
  # TODO(jieluo): Add support for pure python or remove in c extension.
  def testCopyToProto_MethodDescriptor(self):
    expected_ascii = """
      name: 'Foo'
      input_type: '.protobuf_unittest.FooRequest'
      output_type: '.protobuf_unittest.FooResponse'
    """
    method_descriptor = unittest_pb2.TestService.DESCRIPTOR.FindMethodByName(
        'Foo')
    self._InternalTestCopyToProto(
        method_descriptor,
        descriptor_pb2.MethodDescriptorProto,
        expected_ascii)

  @unittest.skipIf(
      api_implementation.Type() == 'python',
      'Pure python does not raise error.')
  # TODO(jieluo): Fix pure python to check with the proto type.
  def testCopyToProto_TypeError(self):
    file_proto = descriptor_pb2.FileDescriptorProto()
    self.assertRaises(TypeError,
                      unittest_pb2.TestEmptyMessage.DESCRIPTOR.CopyToProto,
                      file_proto)
    self.assertRaises(TypeError,
                      unittest_pb2.ForeignEnum.DESCRIPTOR.CopyToProto,
                      file_proto)
    self.assertRaises(TypeError,
                      unittest_pb2.TestService.DESCRIPTOR.CopyToProto,
                      file_proto)
    proto = descriptor_pb2.DescriptorProto()
    self.assertRaises(TypeError,
                      unittest_import_pb2.DESCRIPTOR.CopyToProto,
                      proto)


class MakeDescriptorTest(unittest.TestCase):

  def testMakeDescriptorWithNestedFields(self):
    file_descriptor_proto = descriptor_pb2.FileDescriptorProto()
    file_descriptor_proto.name = 'Foo2'
    message_type = file_descriptor_proto.message_type.add()
    message_type.name = file_descriptor_proto.name
    nested_type = message_type.nested_type.add()
    nested_type.name = 'Sub'
    enum_type = nested_type.enum_type.add()
    enum_type.name = 'FOO'
    enum_type_val = enum_type.value.add()
    enum_type_val.name = 'BAR'
    enum_type_val.number = 3
    field = message_type.field.add()
    field.number = 1
    field.name = 'uint64_field'
    field.label = descriptor.FieldDescriptor.LABEL_REQUIRED
    field.type = descriptor.FieldDescriptor.TYPE_UINT64
    field = message_type.field.add()
    field.number = 2
    field.name = 'nested_message_field'
    field.label = descriptor.FieldDescriptor.LABEL_REQUIRED
    field.type = descriptor.FieldDescriptor.TYPE_MESSAGE
    field.type_name = 'Sub'
    enum_field = nested_type.field.add()
    enum_field.number = 2
    enum_field.name = 'bar_field'
    enum_field.label = descriptor.FieldDescriptor.LABEL_REQUIRED
    enum_field.type = descriptor.FieldDescriptor.TYPE_ENUM
    enum_field.type_name = 'Foo2.Sub.FOO'

    result = descriptor.MakeDescriptor(message_type)
    self.assertEqual(result.fields[0].cpp_type,
                     descriptor.FieldDescriptor.CPPTYPE_UINT64)
    self.assertEqual(result.fields[1].cpp_type,
                     descriptor.FieldDescriptor.CPPTYPE_MESSAGE)
    self.assertEqual(result.fields[1].message_type.containing_type,
                     result)
    self.assertEqual(result.nested_types[0].fields[0].full_name,
                     'Foo2.Sub.bar_field')
    self.assertEqual(result.nested_types[0].fields[0].enum_type,
                     result.nested_types[0].enum_types[0])
    self.assertFalse(result.has_options)
    self.assertFalse(result.fields[0].has_options)
    if api_implementation.Type() == 'cpp':
      with self.assertRaises(AttributeError):
        result.fields[0].has_options = False

  def testMakeDescriptorWithUnsignedIntField(self):
    file_descriptor_proto = descriptor_pb2.FileDescriptorProto()
    file_descriptor_proto.name = 'Foo'
    message_type = file_descriptor_proto.message_type.add()
    message_type.name = file_descriptor_proto.name
    enum_type = message_type.enum_type.add()
    enum_type.name = 'FOO'
    enum_type_val = enum_type.value.add()
    enum_type_val.name = 'BAR'
    enum_type_val.number = 3
    field = message_type.field.add()
    field.number = 1
    field.name = 'uint64_field'
    field.label = descriptor.FieldDescriptor.LABEL_REQUIRED
    field.type = descriptor.FieldDescriptor.TYPE_UINT64
    enum_field = message_type.field.add()
    enum_field.number = 2
    enum_field.name = 'bar_field'
    enum_field.label = descriptor.FieldDescriptor.LABEL_REQUIRED
    enum_field.type = descriptor.FieldDescriptor.TYPE_ENUM
    enum_field.type_name = 'Foo.FOO'

    result = descriptor.MakeDescriptor(message_type)
    self.assertEqual(result.fields[0].cpp_type,
                     descriptor.FieldDescriptor.CPPTYPE_UINT64)


  def testMakeDescriptorWithOptions(self):
    descriptor_proto = descriptor_pb2.DescriptorProto()
    aggregate_message = unittest_custom_options_pb2.AggregateMessage
    aggregate_message.DESCRIPTOR.CopyToProto(descriptor_proto)
    reformed_descriptor = descriptor.MakeDescriptor(descriptor_proto)

    options = reformed_descriptor.GetOptions()
    self.assertEqual(101,
                      options.Extensions[unittest_custom_options_pb2.msgopt].i)

  def testCamelcaseName(self):
    descriptor_proto = descriptor_pb2.DescriptorProto()
    descriptor_proto.name = 'Bar'
    names = ['foo_foo', 'FooBar', 'fooBaz', 'fooFoo', 'foobar']
    camelcase_names = ['fooFoo', 'fooBar', 'fooBaz', 'fooFoo', 'foobar']
    for index in range(len(names)):
      field = descriptor_proto.field.add()
      field.number = index + 1
      field.name = names[index]
    result = descriptor.MakeDescriptor(descriptor_proto)
    for index in range(len(camelcase_names)):
      self.assertEqual(result.fields[index].camelcase_name,
                       camelcase_names[index])

  def testJsonName(self):
    descriptor_proto = descriptor_pb2.DescriptorProto()
    descriptor_proto.name = 'TestJsonName'
    names = ['field_name', 'fieldName', 'FieldName',
             '_field_name', 'FIELD_NAME', 'json_name']
    json_names = ['fieldName', 'fieldName', 'FieldName',
                  'FieldName', 'FIELDNAME', '@type']
    for index in range(len(names)):
      field = descriptor_proto.field.add()
      field.number = index + 1
      field.name = names[index]
    field.json_name = '@type'
    result = descriptor.MakeDescriptor(descriptor_proto)
    for index in range(len(json_names)):
      self.assertEqual(result.fields[index].json_name,
                       json_names[index])


if __name__ == '__main__':
  unittest.main()
PK�\L�����protobuf/internal/test_util.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Utilities for Python proto2 tests.

This is intentionally modeled on C++ code in
//google/protobuf/test_util.*.
"""

__author__ = 'robinson@google.com (Will Robinson)'

import numbers
import operator
import os.path

from google.protobuf import unittest_import_pb2
from google.protobuf import unittest_pb2

try:
  long        # Python 2
except NameError:
  long = int  # Python 3


# Tests whether the given TestAllTypes message is proto2 or not.
# This is used to gate several fields/features that only exist
# for the proto2 version of the message.
def IsProto2(message):
  return message.DESCRIPTOR.syntax == "proto2"


def SetAllNonLazyFields(message):
  """Sets every non-lazy field in the message to a unique value.

  Args:
    message: A TestAllTypes instance.
  """

  #
  # Optional fields.
  #

  message.optional_int32    = 101
  message.optional_int64    = 102
  message.optional_uint32   = 103
  message.optional_uint64   = 104
  message.optional_sint32   = 105
  message.optional_sint64   = 106
  message.optional_fixed32  = 107
  message.optional_fixed64  = 108
  message.optional_sfixed32 = 109
  message.optional_sfixed64 = 110
  message.optional_float    = 111
  message.optional_double   = 112
  message.optional_bool     = True
  message.optional_string   = u'115'
  message.optional_bytes    = b'116'

  if IsProto2(message):
    message.optionalgroup.a = 117
  message.optional_nested_message.bb = 118
  message.optional_foreign_message.c = 119
  message.optional_import_message.d = 120
  message.optional_public_import_message.e = 126

  message.optional_nested_enum = unittest_pb2.TestAllTypes.BAZ
  message.optional_foreign_enum = unittest_pb2.FOREIGN_BAZ
  if IsProto2(message):
    message.optional_import_enum = unittest_import_pb2.IMPORT_BAZ

  message.optional_string_piece = u'124'
  message.optional_cord = u'125'

  #
  # Repeated fields.
  #

  message.repeated_int32.append(201)
  message.repeated_int64.append(202)
  message.repeated_uint32.append(203)
  message.repeated_uint64.append(204)
  message.repeated_sint32.append(205)
  message.repeated_sint64.append(206)
  message.repeated_fixed32.append(207)
  message.repeated_fixed64.append(208)
  message.repeated_sfixed32.append(209)
  message.repeated_sfixed64.append(210)
  message.repeated_float.append(211)
  message.repeated_double.append(212)
  message.repeated_bool.append(True)
  message.repeated_string.append(u'215')
  message.repeated_bytes.append(b'216')

  if IsProto2(message):
    message.repeatedgroup.add().a = 217
  message.repeated_nested_message.add().bb = 218
  message.repeated_foreign_message.add().c = 219
  message.repeated_import_message.add().d = 220
  message.repeated_lazy_message.add().bb = 227

  message.repeated_nested_enum.append(unittest_pb2.TestAllTypes.BAR)
  message.repeated_foreign_enum.append(unittest_pb2.FOREIGN_BAR)
  if IsProto2(message):
    message.repeated_import_enum.append(unittest_import_pb2.IMPORT_BAR)

  message.repeated_string_piece.append(u'224')
  message.repeated_cord.append(u'225')

  # Add a second one of each field and set value by index.
  message.repeated_int32.append(0)
  message.repeated_int64.append(0)
  message.repeated_uint32.append(0)
  message.repeated_uint64.append(0)
  message.repeated_sint32.append(0)
  message.repeated_sint64.append(0)
  message.repeated_fixed32.append(0)
  message.repeated_fixed64.append(0)
  message.repeated_sfixed32.append(0)
  message.repeated_sfixed64.append(0)
  message.repeated_float.append(0)
  message.repeated_double.append(0)
  message.repeated_bool.append(True)
  message.repeated_string.append(u'0')
  message.repeated_bytes.append(b'0')
  message.repeated_int32[1] = 301
  message.repeated_int64[1] = 302
  message.repeated_uint32[1] = 303
  message.repeated_uint64[1] = 304
  message.repeated_sint32[1] = 305
  message.repeated_sint64[1] = 306
  message.repeated_fixed32[1] = 307
  message.repeated_fixed64[1] = 308
  message.repeated_sfixed32[1] = 309
  message.repeated_sfixed64[1] = 310
  message.repeated_float[1] = 311
  message.repeated_double[1] = 312
  message.repeated_bool[1] = False
  message.repeated_string[1] = u'315'
  message.repeated_bytes[1] = b'316'

  if IsProto2(message):
    message.repeatedgroup.add().a = 317
  message.repeated_nested_message.add().bb = 318
  message.repeated_foreign_message.add().c = 319
  message.repeated_import_message.add().d = 320
  message.repeated_lazy_message.add().bb = 327

  message.repeated_nested_enum.append(unittest_pb2.TestAllTypes.BAR)
  message.repeated_nested_enum[1] = unittest_pb2.TestAllTypes.BAZ
  message.repeated_foreign_enum.append(unittest_pb2.FOREIGN_BAZ)
  if IsProto2(message):
    message.repeated_import_enum.append(unittest_import_pb2.IMPORT_BAZ)

  message.repeated_string_piece.append(u'324')
  message.repeated_cord.append(u'325')

  #
  # Fields that have defaults.
  #

  if IsProto2(message):
    message.default_int32 = 401
    message.default_int64 = 402
    message.default_uint32 = 403
    message.default_uint64 = 404
    message.default_sint32 = 405
    message.default_sint64 = 406
    message.default_fixed32 = 407
    message.default_fixed64 = 408
    message.default_sfixed32 = 409
    message.default_sfixed64 = 410
    message.default_float = 411
    message.default_double = 412
    message.default_bool = False
    message.default_string = '415'
    message.default_bytes = b'416'

    message.default_nested_enum = unittest_pb2.TestAllTypes.FOO
    message.default_foreign_enum = unittest_pb2.FOREIGN_FOO
    message.default_import_enum = unittest_import_pb2.IMPORT_FOO

    message.default_string_piece = '424'
    message.default_cord = '425'

  message.oneof_uint32 = 601
  message.oneof_nested_message.bb = 602
  message.oneof_string = '603'
  message.oneof_bytes = b'604'


def SetAllFields(message):
  SetAllNonLazyFields(message)
  message.optional_lazy_message.bb = 127


def SetAllExtensions(message):
  """Sets every extension in the message to a unique value.

  Args:
    message: A unittest_pb2.TestAllExtensions instance.
  """

  extensions = message.Extensions
  pb2 = unittest_pb2
  import_pb2 = unittest_import_pb2

  #
  # Optional fields.
  #

  extensions[pb2.optional_int32_extension] = 101
  extensions[pb2.optional_int64_extension] = 102
  extensions[pb2.optional_uint32_extension] = 103
  extensions[pb2.optional_uint64_extension] = 104
  extensions[pb2.optional_sint32_extension] = 105
  extensions[pb2.optional_sint64_extension] = 106
  extensions[pb2.optional_fixed32_extension] = 107
  extensions[pb2.optional_fixed64_extension] = 108
  extensions[pb2.optional_sfixed32_extension] = 109
  extensions[pb2.optional_sfixed64_extension] = 110
  extensions[pb2.optional_float_extension] = 111
  extensions[pb2.optional_double_extension] = 112
  extensions[pb2.optional_bool_extension] = True
  extensions[pb2.optional_string_extension] = u'115'
  extensions[pb2.optional_bytes_extension] = b'116'

  extensions[pb2.optionalgroup_extension].a = 117
  extensions[pb2.optional_nested_message_extension].bb = 118
  extensions[pb2.optional_foreign_message_extension].c = 119
  extensions[pb2.optional_import_message_extension].d = 120
  extensions[pb2.optional_public_import_message_extension].e = 126
  extensions[pb2.optional_lazy_message_extension].bb = 127

  extensions[pb2.optional_nested_enum_extension] = pb2.TestAllTypes.BAZ
  extensions[pb2.optional_nested_enum_extension] = pb2.TestAllTypes.BAZ
  extensions[pb2.optional_foreign_enum_extension] = pb2.FOREIGN_BAZ
  extensions[pb2.optional_import_enum_extension] = import_pb2.IMPORT_BAZ

  extensions[pb2.optional_string_piece_extension] = u'124'
  extensions[pb2.optional_cord_extension] = u'125'

  #
  # Repeated fields.
  #

  extensions[pb2.repeated_int32_extension].append(201)
  extensions[pb2.repeated_int64_extension].append(202)
  extensions[pb2.repeated_uint32_extension].append(203)
  extensions[pb2.repeated_uint64_extension].append(204)
  extensions[pb2.repeated_sint32_extension].append(205)
  extensions[pb2.repeated_sint64_extension].append(206)
  extensions[pb2.repeated_fixed32_extension].append(207)
  extensions[pb2.repeated_fixed64_extension].append(208)
  extensions[pb2.repeated_sfixed32_extension].append(209)
  extensions[pb2.repeated_sfixed64_extension].append(210)
  extensions[pb2.repeated_float_extension].append(211)
  extensions[pb2.repeated_double_extension].append(212)
  extensions[pb2.repeated_bool_extension].append(True)
  extensions[pb2.repeated_string_extension].append(u'215')
  extensions[pb2.repeated_bytes_extension].append(b'216')

  extensions[pb2.repeatedgroup_extension].add().a = 217
  extensions[pb2.repeated_nested_message_extension].add().bb = 218
  extensions[pb2.repeated_foreign_message_extension].add().c = 219
  extensions[pb2.repeated_import_message_extension].add().d = 220
  extensions[pb2.repeated_lazy_message_extension].add().bb = 227

  extensions[pb2.repeated_nested_enum_extension].append(pb2.TestAllTypes.BAR)
  extensions[pb2.repeated_foreign_enum_extension].append(pb2.FOREIGN_BAR)
  extensions[pb2.repeated_import_enum_extension].append(import_pb2.IMPORT_BAR)

  extensions[pb2.repeated_string_piece_extension].append(u'224')
  extensions[pb2.repeated_cord_extension].append(u'225')

  # Append a second one of each field.
  extensions[pb2.repeated_int32_extension].append(301)
  extensions[pb2.repeated_int64_extension].append(302)
  extensions[pb2.repeated_uint32_extension].append(303)
  extensions[pb2.repeated_uint64_extension].append(304)
  extensions[pb2.repeated_sint32_extension].append(305)
  extensions[pb2.repeated_sint64_extension].append(306)
  extensions[pb2.repeated_fixed32_extension].append(307)
  extensions[pb2.repeated_fixed64_extension].append(308)
  extensions[pb2.repeated_sfixed32_extension].append(309)
  extensions[pb2.repeated_sfixed64_extension].append(310)
  extensions[pb2.repeated_float_extension].append(311)
  extensions[pb2.repeated_double_extension].append(312)
  extensions[pb2.repeated_bool_extension].append(False)
  extensions[pb2.repeated_string_extension].append(u'315')
  extensions[pb2.repeated_bytes_extension].append(b'316')

  extensions[pb2.repeatedgroup_extension].add().a = 317
  extensions[pb2.repeated_nested_message_extension].add().bb = 318
  extensions[pb2.repeated_foreign_message_extension].add().c = 319
  extensions[pb2.repeated_import_message_extension].add().d = 320
  extensions[pb2.repeated_lazy_message_extension].add().bb = 327

  extensions[pb2.repeated_nested_enum_extension].append(pb2.TestAllTypes.BAZ)
  extensions[pb2.repeated_foreign_enum_extension].append(pb2.FOREIGN_BAZ)
  extensions[pb2.repeated_import_enum_extension].append(import_pb2.IMPORT_BAZ)

  extensions[pb2.repeated_string_piece_extension].append(u'324')
  extensions[pb2.repeated_cord_extension].append(u'325')

  #
  # Fields with defaults.
  #

  extensions[pb2.default_int32_extension] = 401
  extensions[pb2.default_int64_extension] = 402
  extensions[pb2.default_uint32_extension] = 403
  extensions[pb2.default_uint64_extension] = 404
  extensions[pb2.default_sint32_extension] = 405
  extensions[pb2.default_sint64_extension] = 406
  extensions[pb2.default_fixed32_extension] = 407
  extensions[pb2.default_fixed64_extension] = 408
  extensions[pb2.default_sfixed32_extension] = 409
  extensions[pb2.default_sfixed64_extension] = 410
  extensions[pb2.default_float_extension] = 411
  extensions[pb2.default_double_extension] = 412
  extensions[pb2.default_bool_extension] = False
  extensions[pb2.default_string_extension] = u'415'
  extensions[pb2.default_bytes_extension] = b'416'

  extensions[pb2.default_nested_enum_extension] = pb2.TestAllTypes.FOO
  extensions[pb2.default_foreign_enum_extension] = pb2.FOREIGN_FOO
  extensions[pb2.default_import_enum_extension] = import_pb2.IMPORT_FOO

  extensions[pb2.default_string_piece_extension] = u'424'
  extensions[pb2.default_cord_extension] = '425'

  extensions[pb2.oneof_uint32_extension] = 601
  extensions[pb2.oneof_nested_message_extension].bb = 602
  extensions[pb2.oneof_string_extension] = u'603'
  extensions[pb2.oneof_bytes_extension] = b'604'


def SetAllFieldsAndExtensions(message):
  """Sets every field and extension in the message to a unique value.

  Args:
    message: A unittest_pb2.TestAllExtensions message.
  """
  message.my_int = 1
  message.my_string = 'foo'
  message.my_float = 1.0
  message.Extensions[unittest_pb2.my_extension_int] = 23
  message.Extensions[unittest_pb2.my_extension_string] = 'bar'


def ExpectAllFieldsAndExtensionsInOrder(serialized):
  """Ensures that serialized is the serialization we expect for a message
  filled with SetAllFieldsAndExtensions().  (Specifically, ensures that the
  serialization is in canonical, tag-number order).
  """
  my_extension_int = unittest_pb2.my_extension_int
  my_extension_string = unittest_pb2.my_extension_string
  expected_strings = []
  message = unittest_pb2.TestFieldOrderings()
  message.my_int = 1  # Field 1.
  expected_strings.append(message.SerializeToString())
  message.Clear()
  message.Extensions[my_extension_int] = 23  # Field 5.
  expected_strings.append(message.SerializeToString())
  message.Clear()
  message.my_string = 'foo'  # Field 11.
  expected_strings.append(message.SerializeToString())
  message.Clear()
  message.Extensions[my_extension_string] = 'bar'  # Field 50.
  expected_strings.append(message.SerializeToString())
  message.Clear()
  message.my_float = 1.0
  expected_strings.append(message.SerializeToString())
  message.Clear()
  expected = b''.join(expected_strings)

  if expected != serialized:
    raise ValueError('Expected %r, found %r' % (expected, serialized))


def ExpectAllFieldsSet(test_case, message):
  """Check all fields for correct values have after Set*Fields() is called."""
  test_case.assertTrue(message.HasField('optional_int32'))
  test_case.assertTrue(message.HasField('optional_int64'))
  test_case.assertTrue(message.HasField('optional_uint32'))
  test_case.assertTrue(message.HasField('optional_uint64'))
  test_case.assertTrue(message.HasField('optional_sint32'))
  test_case.assertTrue(message.HasField('optional_sint64'))
  test_case.assertTrue(message.HasField('optional_fixed32'))
  test_case.assertTrue(message.HasField('optional_fixed64'))
  test_case.assertTrue(message.HasField('optional_sfixed32'))
  test_case.assertTrue(message.HasField('optional_sfixed64'))
  test_case.assertTrue(message.HasField('optional_float'))
  test_case.assertTrue(message.HasField('optional_double'))
  test_case.assertTrue(message.HasField('optional_bool'))
  test_case.assertTrue(message.HasField('optional_string'))
  test_case.assertTrue(message.HasField('optional_bytes'))

  if IsProto2(message):
    test_case.assertTrue(message.HasField('optionalgroup'))
  test_case.assertTrue(message.HasField('optional_nested_message'))
  test_case.assertTrue(message.HasField('optional_foreign_message'))
  test_case.assertTrue(message.HasField('optional_import_message'))

  test_case.assertTrue(message.optionalgroup.HasField('a'))
  test_case.assertTrue(message.optional_nested_message.HasField('bb'))
  test_case.assertTrue(message.optional_foreign_message.HasField('c'))
  test_case.assertTrue(message.optional_import_message.HasField('d'))

  test_case.assertTrue(message.HasField('optional_nested_enum'))
  test_case.assertTrue(message.HasField('optional_foreign_enum'))
  if IsProto2(message):
    test_case.assertTrue(message.HasField('optional_import_enum'))

  test_case.assertTrue(message.HasField('optional_string_piece'))
  test_case.assertTrue(message.HasField('optional_cord'))

  test_case.assertEqual(101, message.optional_int32)
  test_case.assertEqual(102, message.optional_int64)
  test_case.assertEqual(103, message.optional_uint32)
  test_case.assertEqual(104, message.optional_uint64)
  test_case.assertEqual(105, message.optional_sint32)
  test_case.assertEqual(106, message.optional_sint64)
  test_case.assertEqual(107, message.optional_fixed32)
  test_case.assertEqual(108, message.optional_fixed64)
  test_case.assertEqual(109, message.optional_sfixed32)
  test_case.assertEqual(110, message.optional_sfixed64)
  test_case.assertEqual(111, message.optional_float)
  test_case.assertEqual(112, message.optional_double)
  test_case.assertEqual(True, message.optional_bool)
  test_case.assertEqual('115', message.optional_string)
  test_case.assertEqual(b'116', message.optional_bytes)

  if IsProto2(message):
    test_case.assertEqual(117, message.optionalgroup.a)
  test_case.assertEqual(118, message.optional_nested_message.bb)
  test_case.assertEqual(119, message.optional_foreign_message.c)
  test_case.assertEqual(120, message.optional_import_message.d)
  test_case.assertEqual(126, message.optional_public_import_message.e)
  test_case.assertEqual(127, message.optional_lazy_message.bb)

  test_case.assertEqual(unittest_pb2.TestAllTypes.BAZ,
                        message.optional_nested_enum)
  test_case.assertEqual(unittest_pb2.FOREIGN_BAZ,
                        message.optional_foreign_enum)
  if IsProto2(message):
    test_case.assertEqual(unittest_import_pb2.IMPORT_BAZ,
                          message.optional_import_enum)

  # -----------------------------------------------------------------

  test_case.assertEqual(2, len(message.repeated_int32))
  test_case.assertEqual(2, len(message.repeated_int64))
  test_case.assertEqual(2, len(message.repeated_uint32))
  test_case.assertEqual(2, len(message.repeated_uint64))
  test_case.assertEqual(2, len(message.repeated_sint32))
  test_case.assertEqual(2, len(message.repeated_sint64))
  test_case.assertEqual(2, len(message.repeated_fixed32))
  test_case.assertEqual(2, len(message.repeated_fixed64))
  test_case.assertEqual(2, len(message.repeated_sfixed32))
  test_case.assertEqual(2, len(message.repeated_sfixed64))
  test_case.assertEqual(2, len(message.repeated_float))
  test_case.assertEqual(2, len(message.repeated_double))
  test_case.assertEqual(2, len(message.repeated_bool))
  test_case.assertEqual(2, len(message.repeated_string))
  test_case.assertEqual(2, len(message.repeated_bytes))

  if IsProto2(message):
    test_case.assertEqual(2, len(message.repeatedgroup))
  test_case.assertEqual(2, len(message.repeated_nested_message))
  test_case.assertEqual(2, len(message.repeated_foreign_message))
  test_case.assertEqual(2, len(message.repeated_import_message))
  test_case.assertEqual(2, len(message.repeated_nested_enum))
  test_case.assertEqual(2, len(message.repeated_foreign_enum))
  if IsProto2(message):
    test_case.assertEqual(2, len(message.repeated_import_enum))

  test_case.assertEqual(2, len(message.repeated_string_piece))
  test_case.assertEqual(2, len(message.repeated_cord))

  test_case.assertEqual(201, message.repeated_int32[0])
  test_case.assertEqual(202, message.repeated_int64[0])
  test_case.assertEqual(203, message.repeated_uint32[0])
  test_case.assertEqual(204, message.repeated_uint64[0])
  test_case.assertEqual(205, message.repeated_sint32[0])
  test_case.assertEqual(206, message.repeated_sint64[0])
  test_case.assertEqual(207, message.repeated_fixed32[0])
  test_case.assertEqual(208, message.repeated_fixed64[0])
  test_case.assertEqual(209, message.repeated_sfixed32[0])
  test_case.assertEqual(210, message.repeated_sfixed64[0])
  test_case.assertEqual(211, message.repeated_float[0])
  test_case.assertEqual(212, message.repeated_double[0])
  test_case.assertEqual(True, message.repeated_bool[0])
  test_case.assertEqual('215', message.repeated_string[0])
  test_case.assertEqual(b'216', message.repeated_bytes[0])

  if IsProto2(message):
    test_case.assertEqual(217, message.repeatedgroup[0].a)
  test_case.assertEqual(218, message.repeated_nested_message[0].bb)
  test_case.assertEqual(219, message.repeated_foreign_message[0].c)
  test_case.assertEqual(220, message.repeated_import_message[0].d)
  test_case.assertEqual(227, message.repeated_lazy_message[0].bb)

  test_case.assertEqual(unittest_pb2.TestAllTypes.BAR,
                        message.repeated_nested_enum[0])
  test_case.assertEqual(unittest_pb2.FOREIGN_BAR,
                        message.repeated_foreign_enum[0])
  if IsProto2(message):
    test_case.assertEqual(unittest_import_pb2.IMPORT_BAR,
                          message.repeated_import_enum[0])

  test_case.assertEqual(301, message.repeated_int32[1])
  test_case.assertEqual(302, message.repeated_int64[1])
  test_case.assertEqual(303, message.repeated_uint32[1])
  test_case.assertEqual(304, message.repeated_uint64[1])
  test_case.assertEqual(305, message.repeated_sint32[1])
  test_case.assertEqual(306, message.repeated_sint64[1])
  test_case.assertEqual(307, message.repeated_fixed32[1])
  test_case.assertEqual(308, message.repeated_fixed64[1])
  test_case.assertEqual(309, message.repeated_sfixed32[1])
  test_case.assertEqual(310, message.repeated_sfixed64[1])
  test_case.assertEqual(311, message.repeated_float[1])
  test_case.assertEqual(312, message.repeated_double[1])
  test_case.assertEqual(False, message.repeated_bool[1])
  test_case.assertEqual('315', message.repeated_string[1])
  test_case.assertEqual(b'316', message.repeated_bytes[1])

  if IsProto2(message):
    test_case.assertEqual(317, message.repeatedgroup[1].a)
  test_case.assertEqual(318, message.repeated_nested_message[1].bb)
  test_case.assertEqual(319, message.repeated_foreign_message[1].c)
  test_case.assertEqual(320, message.repeated_import_message[1].d)
  test_case.assertEqual(327, message.repeated_lazy_message[1].bb)

  test_case.assertEqual(unittest_pb2.TestAllTypes.BAZ,
                        message.repeated_nested_enum[1])
  test_case.assertEqual(unittest_pb2.FOREIGN_BAZ,
                        message.repeated_foreign_enum[1])
  if IsProto2(message):
    test_case.assertEqual(unittest_import_pb2.IMPORT_BAZ,
                          message.repeated_import_enum[1])

  # -----------------------------------------------------------------

  if IsProto2(message):
    test_case.assertTrue(message.HasField('default_int32'))
    test_case.assertTrue(message.HasField('default_int64'))
    test_case.assertTrue(message.HasField('default_uint32'))
    test_case.assertTrue(message.HasField('default_uint64'))
    test_case.assertTrue(message.HasField('default_sint32'))
    test_case.assertTrue(message.HasField('default_sint64'))
    test_case.assertTrue(message.HasField('default_fixed32'))
    test_case.assertTrue(message.HasField('default_fixed64'))
    test_case.assertTrue(message.HasField('default_sfixed32'))
    test_case.assertTrue(message.HasField('default_sfixed64'))
    test_case.assertTrue(message.HasField('default_float'))
    test_case.assertTrue(message.HasField('default_double'))
    test_case.assertTrue(message.HasField('default_bool'))
    test_case.assertTrue(message.HasField('default_string'))
    test_case.assertTrue(message.HasField('default_bytes'))

    test_case.assertTrue(message.HasField('default_nested_enum'))
    test_case.assertTrue(message.HasField('default_foreign_enum'))
    test_case.assertTrue(message.HasField('default_import_enum'))

    test_case.assertEqual(401, message.default_int32)
    test_case.assertEqual(402, message.default_int64)
    test_case.assertEqual(403, message.default_uint32)
    test_case.assertEqual(404, message.default_uint64)
    test_case.assertEqual(405, message.default_sint32)
    test_case.assertEqual(406, message.default_sint64)
    test_case.assertEqual(407, message.default_fixed32)
    test_case.assertEqual(408, message.default_fixed64)
    test_case.assertEqual(409, message.default_sfixed32)
    test_case.assertEqual(410, message.default_sfixed64)
    test_case.assertEqual(411, message.default_float)
    test_case.assertEqual(412, message.default_double)
    test_case.assertEqual(False, message.default_bool)
    test_case.assertEqual('415', message.default_string)
    test_case.assertEqual(b'416', message.default_bytes)

    test_case.assertEqual(unittest_pb2.TestAllTypes.FOO,
                          message.default_nested_enum)
    test_case.assertEqual(unittest_pb2.FOREIGN_FOO,
                          message.default_foreign_enum)
    test_case.assertEqual(unittest_import_pb2.IMPORT_FOO,
                          message.default_import_enum)


def GoldenFile(filename):
  """Finds the given golden file and returns a file object representing it."""

  # Search up the directory tree looking for the C++ protobuf source code.
  path = '.'
  while os.path.exists(path):
    if os.path.exists(os.path.join(path, 'src/google/protobuf')):
      # Found it.  Load the golden file from the testdata directory.
      full_path = os.path.join(path, 'src/google/protobuf/testdata', filename)
      return open(full_path, 'rb')
    path = os.path.join(path, '..')

  # Search internally.
  path = '.'
  full_path = os.path.join(path, 'third_party/py/google/protobuf/testdata',
                           filename)
  if os.path.exists(full_path):
    # Found it.  Load the golden file from the testdata directory.
    return open(full_path, 'rb')

  raise RuntimeError(
      'Could not find golden files.  This test must be run from within the '
      'protobuf source package so that it can read test data files from the '
      'C++ source tree.')


def GoldenFileData(filename):
  """Finds the given golden file and returns its contents."""
  with GoldenFile(filename) as f:
    return f.read()


def SetAllPackedFields(message):
  """Sets every field in the message to a unique value.

  Args:
    message: A TestPackedTypes instance.
  """
  message.packed_int32.extend([601, 701])
  message.packed_int64.extend([602, 702])
  message.packed_uint32.extend([603, 703])
  message.packed_uint64.extend([604, 704])
  message.packed_sint32.extend([605, 705])
  message.packed_sint64.extend([606, 706])
  message.packed_fixed32.extend([607, 707])
  message.packed_fixed64.extend([608, 708])
  message.packed_sfixed32.extend([609, 709])
  message.packed_sfixed64.extend([610, 710])
  message.packed_float.extend([611.0, 711.0])
  message.packed_double.extend([612.0, 712.0])
  message.packed_bool.extend([True, False])
  message.packed_enum.extend([unittest_pb2.FOREIGN_BAR,
                              unittest_pb2.FOREIGN_BAZ])


def SetAllPackedExtensions(message):
  """Sets every extension in the message to a unique value.

  Args:
    message: A unittest_pb2.TestPackedExtensions instance.
  """
  extensions = message.Extensions
  pb2 = unittest_pb2

  extensions[pb2.packed_int32_extension].extend([601, 701])
  extensions[pb2.packed_int64_extension].extend([602, 702])
  extensions[pb2.packed_uint32_extension].extend([603, 703])
  extensions[pb2.packed_uint64_extension].extend([604, 704])
  extensions[pb2.packed_sint32_extension].extend([605, 705])
  extensions[pb2.packed_sint64_extension].extend([606, 706])
  extensions[pb2.packed_fixed32_extension].extend([607, 707])
  extensions[pb2.packed_fixed64_extension].extend([608, 708])
  extensions[pb2.packed_sfixed32_extension].extend([609, 709])
  extensions[pb2.packed_sfixed64_extension].extend([610, 710])
  extensions[pb2.packed_float_extension].extend([611.0, 711.0])
  extensions[pb2.packed_double_extension].extend([612.0, 712.0])
  extensions[pb2.packed_bool_extension].extend([True, False])
  extensions[pb2.packed_enum_extension].extend([unittest_pb2.FOREIGN_BAR,
                                                unittest_pb2.FOREIGN_BAZ])


def SetAllUnpackedFields(message):
  """Sets every field in the message to a unique value.

  Args:
    message: A unittest_pb2.TestUnpackedTypes instance.
  """
  message.unpacked_int32.extend([601, 701])
  message.unpacked_int64.extend([602, 702])
  message.unpacked_uint32.extend([603, 703])
  message.unpacked_uint64.extend([604, 704])
  message.unpacked_sint32.extend([605, 705])
  message.unpacked_sint64.extend([606, 706])
  message.unpacked_fixed32.extend([607, 707])
  message.unpacked_fixed64.extend([608, 708])
  message.unpacked_sfixed32.extend([609, 709])
  message.unpacked_sfixed64.extend([610, 710])
  message.unpacked_float.extend([611.0, 711.0])
  message.unpacked_double.extend([612.0, 712.0])
  message.unpacked_bool.extend([True, False])
  message.unpacked_enum.extend([unittest_pb2.FOREIGN_BAR,
                                unittest_pb2.FOREIGN_BAZ])


class NonStandardInteger(numbers.Integral):
  """An integer object that does not subclass int.

  This is used to verify that both C++ and regular proto systems can handle
  integer others than int and long and that they handle them in predictable
  ways.

  NonStandardInteger is the minimal legal specification for a custom Integral.
  As such, it does not support 0 < x < 5 and it is not hashable.

  Note: This is added here instead of relying on numpy or a similar library
  with custom integers to limit dependencies.
  """

  def __init__(self, val, error_string_on_conversion=None):
    assert isinstance(val, numbers.Integral)
    if isinstance(val, NonStandardInteger):
      val = val.val
    self.val = val
    self.error_string_on_conversion = error_string_on_conversion

  def __long__(self):
    if self.error_string_on_conversion:
      raise RuntimeError(self.error_string_on_conversion)
    return long(self.val)

  def __abs__(self):
    return NonStandardInteger(operator.abs(self.val))

  def __add__(self, y):
    return NonStandardInteger(operator.add(self.val, y))

  def __div__(self, y):
    return NonStandardInteger(operator.div(self.val, y))

  def __eq__(self, y):
    return operator.eq(self.val, y)

  def __floordiv__(self, y):
    return NonStandardInteger(operator.floordiv(self.val, y))

  def __truediv__(self, y):
    return NonStandardInteger(operator.truediv(self.val, y))

  def __invert__(self):
    return NonStandardInteger(operator.invert(self.val))

  def __mod__(self, y):
    return NonStandardInteger(operator.mod(self.val, y))

  def __mul__(self, y):
    return NonStandardInteger(operator.mul(self.val, y))

  def __neg__(self):
    return NonStandardInteger(operator.neg(self.val))

  def __pos__(self):
    return NonStandardInteger(operator.pos(self.val))

  def __pow__(self, y):
    return NonStandardInteger(operator.pow(self.val, y))

  def __trunc__(self):
    return int(self.val)

  def __radd__(self, y):
    return NonStandardInteger(operator.add(y, self.val))

  def __rdiv__(self, y):
    return NonStandardInteger(operator.div(y, self.val))

  def __rmod__(self, y):
    return NonStandardInteger(operator.mod(y, self.val))

  def __rmul__(self, y):
    return NonStandardInteger(operator.mul(y, self.val))

  def __rpow__(self, y):
    return NonStandardInteger(operator.pow(y, self.val))

  def __rfloordiv__(self, y):
    return NonStandardInteger(operator.floordiv(y, self.val))

  def __rtruediv__(self, y):
    return NonStandardInteger(operator.truediv(y, self.val))

  def __lshift__(self, y):
    return NonStandardInteger(operator.lshift(self.val, y))

  def __rshift__(self, y):
    return NonStandardInteger(operator.rshift(self.val, y))

  def __rlshift__(self, y):
    return NonStandardInteger(operator.lshift(y, self.val))

  def __rrshift__(self, y):
    return NonStandardInteger(operator.rshift(y, self.val))

  def __le__(self, y):
    if isinstance(y, NonStandardInteger):
      y = y.val
    return operator.le(self.val, y)

  def __lt__(self, y):
    if isinstance(y, NonStandardInteger):
      y = y.val
    return operator.lt(self.val, y)

  def __and__(self, y):
    return NonStandardInteger(operator.and_(self.val, y))

  def __or__(self, y):
    return NonStandardInteger(operator.or_(self.val, y))

  def __xor__(self, y):
    return NonStandardInteger(operator.xor(self.val, y))

  def __rand__(self, y):
    return NonStandardInteger(operator.and_(y, self.val))

  def __ror__(self, y):
    return NonStandardInteger(operator.or_(y, self.val))

  def __rxor__(self, y):
    return NonStandardInteger(operator.xor(y, self.val))

  def __bool__(self):
    return self.val

  def __nonzero__(self):
    return self.val

  def __ceil__(self):
    return self

  def __floor__(self):
    return self

  def __int__(self):
    if self.error_string_on_conversion:
      raise RuntimeError(self.error_string_on_conversion)
    return int(self.val)

  def __round__(self):
    return self

  def __repr__(self):
    return 'NonStandardInteger(%s)' % self.val
PK�\/�����&protobuf/internal/text_format_test.pyonu�[����
���hc@s)dZdZddlZddlZddlZddlZyddlZWnek
rkddlZnXddl	m
Z
ddlmZddlm
Z
ddlmZddlmZdd	lmZdd
l	mZddl	mZddl	mZddl	mZdd
lmZddlmZdejfd��YZdejfd��YZe
jee�defd��Y�Zdefd��YZdefd��YZdejfd��YZdejfd��YZe
jee�defd��Y�Z e!dkr%ej"�ndS( s%Test for google.protobuf.text_format.s kenton@google.com (Kenton Varda)i����N(t_parameterized(tany_test_pb2(tmap_unittest_pb2(tunittest_mset_pb2(tunittest_pb2(tunittest_proto3_arena_pb2(tapi_implementation(tmessage_set_extensions_pb2(t	test_util(tdescriptor_pool(ttext_formattSimpleTextFormatTestscBseZd�ZRS(cCs.x'tjD]}|jdt|��q
WdS(Ni(R
t_QUOTEStassertEqualtlen(tselftquote((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestQuoteMarksAreSingleCharsFs(t__name__t
__module__R(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR@stTextFormatBasecBs,eZd�Zd�Zd�Zd�ZRS(cCsRtj|��=}ttkr(|j�Sg|D]}|jd�^q/SWdQXdS(Nsutf-8(Rt
GoldenFiletstrtbytest	readlinestdecode(Rtgolden_filenametftgolden_line((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt
ReadGoldenNscCs,|j|�}|j|dj|��dS(Nt(RtassertMultiLineEqualtjoin(RttextRtgolden_lines((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pytCompareToGoldenFileSscCs|j||�dS(N(R
(RR!tgolden_text((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pytCompareToGoldenTextWscCs[|jdd�jdd�jdd�jdd�}tjdtj�jd|�}|S(Nse+0se+se-0se-s\.0$R(treplacetretcompilet	MULTILINEtsub(RR!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pytRemoveRedundantZerosZs!(RRRR#R%R+(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRLs			tTextFormatTestcBseZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs�|j�}|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|j|jtj	|��d�dS(	Nl����l����gw��/�^@g�t�QFքDg��‚�6<s

	\'"uüꜟs�repeated_int64: -9223372036854775808
repeated_uint64: 18446744073709551615
repeated_double: 123.456
repeated_double: 1.23e+22
repeated_double: 1.23e-18
repeated_string: "\000\001\007\010\014\n\r\t\013\\\'\""
repeated_string: "\303\274\352\234\237"
(
tTestAllTypestrepeated_int64tappendtrepeated_uint64trepeated_doubletrepeated_stringR%R+R
tMessageToString(Rtmessage_moduletmessage((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintExotichscCsXdtjfd��Y}|j�}|jj|d��|jtj|�d�dS(Nt
UnicodeSubcBseZRS((RR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR7~suüꜟs(repeated_string: "\303\274\352\234\237"
(tsixt	text_typeR-R2R/R%R
R3(RR4R7R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintExoticUnicodeSubclass|scCsG|j�}|jj�}d|_|jtj|dt�d�dS(Ni*tas_one_lines"repeated_nested_message { bb: 42 }(R-trepeated_nested_messagetaddtbbR%R
R3tTrue(RR4R5tmsg((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintNestedMessageAsOneLine�s	cCs|j�}|jjd�|jjd�|jjd�|jjd�|jjd�|jtj|dt�d�dS(NiitGoogletZurichR;sirepeated_int32: 1 repeated_int32: 1 repeated_int32: 3 repeated_string: "Google" repeated_string: "Zurich"(R-trepeated_int32R/R2R%R
R3R?(RR4R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt testPrintRepeatedFieldsAsOneLine�scCs8|j�}d|_|jtj|dt�d�dS(Ns
a
new
lineR;soptional_string: "a\nnew\nline"(R-toptional_stringR%R
R3R?(RR4R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt'testPrintNestedNewLineInStringAsOneLine�s
	cCs�|j�}|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|j|jtj	|dt
��d	�dS(
Nl����l����gw��/�^@g�t�QFքDg��‚�6<s

	\'"uüꜟR;s�repeated_int64: -9223372036854775808 repeated_uint64: 18446744073709551615 repeated_double: 123.456 repeated_double: 1.23e+22 repeated_double: 1.23e-18 repeated_string: "\000\001\007\010\014\n\r\t\013\\\'\"" repeated_string: "\303\274\352\234\237"(R-R.R/R0R1R2R%R+R
R3R?(RR4R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintExoticAsOneLine�scCs?|j�}|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�tj|dtd	t	�}|j�}tj
||�}|j||�|j||�tj|dtd	t�}|j�}tj
||�}|j||�|j||d
||f�dS(Nl����l����gw��/�^@g�t�QFքDg��‚�6<s

	\'"uüꜟR;tas_utf8s	
%s != %s(
R-R.R/R0R1R2R
R3R?tFalsetParsetassertIsR
(RR4R5t	wire_texttparsed_messagetr((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestRoundTripExoticAsOneLine�s.		cCs~|j�}|jjd�tj|dt�}|j|d�|j�}tj||�|j||d||f�dS(NuüꜟRIsrepeated_string: "üꜟ"
s	
%s != %s(	R-R2R/R
R3R?R%RKR
(RR4R5R!RN((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintRawUtf8String�scCs�|j�}d|j_d|j_|jjjd�|jjjd�ddddg}tj|d	d
�}|j	|j
|�dj|��tj|dtd	d
�}|j	|j
|�d
j|��dS(Ng�?g�/_�e�̾i��g⹭�?soptional_float: 1.25s%optional_double: -3.45678901234568e-6srepeated_float: -5642srepeated_double: 7.89e-5tfloat_formats.15gs&payload {{
  {0}
  {1}
  {2}
  {3}
}}
R;spayload {{ {0} {1} {2} {3} }}(
tNestedTestAllTypestpayloadtoptional_floattoptional_doubletrepeated_floatR/R1R
R3R%R+tformatR?(RR4R5tformatted_fieldsttext_message((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintFloatFormat�s&
	cCs/|j�}d|_|jdt|��dS(Ni{sc: 123
(tForeignMessagetcR
R(RR4R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMessageToString�s	cCs�|j�}|jjd}|j}tjt�}tj|||�|jd|j	��|j
�tjt�}tj|�}|j||�|jd|j	��|j
�dS(NRUsoptional_float: 0.0
(R-t
DESCRIPTORtfields_by_nameRUR
t
TextWriterRJt
PrintFieldR
tgetvaluetcloset_Printer(RR4R5tfieldtvaluetouttprinter((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintFields	
cCs�|j�}|jjd}|j}tjt�}tj|||�|jd|j	��|j
�tjt�}tj|�}|j||�|jd|j	��|j
�dS(NRUs0.0(R-R_R`RUR
RaRJtPrintFieldValueR
RcRdRe(RR4R5RfRgRhRi((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintFieldValues	
cCsw|j�}tj|�tj|�}|j�}tj||�|j||�|tkrstj||�ndS(N(	R-RtSetAllFieldsR
R3RKR
RtExpectAllFieldsSet(RR4R5t
ascii_textRN((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseAllFields"s
cCs=|j�}tj|�tj|�}|jd�}|j�}tj||�|j||�|tkr�tj	||�n|j
�tj||�|j||�|tkr�tj	||�ntj
r9|j�}d}tj||�|j|jd�|j
�tj||�|j|jd�ndS(Nsutf-8uoptional_string: "café"ucafé(R-RRmR
R3tencodeRKR
RRntCleartMergeR8tPY2RF(RR4R5RoRNtmsg2R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseAndMergeUtf8-s,

	
cCs�|j�}d}tj||�|jd|jd�|jd|jd�|jd|jd�|jd|jd�|jd|jd	�|jd
|jd�|jd|jd�|jd|jd	�|jd
|jd�dS(NsSrepeated_int64: -9223372036854775808
repeated_uint64: 18446744073709551615
repeated_double: 123.456
repeated_double: 1.23e+22
repeated_double: 1.23e-18
repeated_string: 
"\000\001\007\010\014\n\r\t\013\\\'\""
repeated_string: "foo" 'corge' "grault"
repeated_string: "\303\274\352\234\237"
repeated_string: "\xc3\xbc"
repeated_string: "ü"
l����il����gw��/�^@g�t�QFքDig��‚�6<is

	\'"tfoocorgegraultuüꜟuüi(R-R
RKR
R.R0R1R2(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseExoticHscCs�|j�}d}tj||�|jd|jd�|jd|jd�|jd|jd�|jd|jd�|jd	|jd�dS(
Nsorepeated_int64: 100;
repeated_int64: 200;
repeated_int64: 300,
repeated_string: "one",
repeated_string: "two";
idii�ii,iuoneutwo(R-R
RKR
R.R2(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseTrailingCommasascCs�|j�}d}tj||�|jd|jd�|jd|jd�|jd|jd�|jd|jd�|jd	|jd�dS(
NsRrepeated_int64: [100, 200];
repeated_int64: 300,
repeated_string: ["one", "two"];
idii�ii,iuoneutwo(R-R
RKR
R.R2(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testParseRepeatedScalarShortFormatpscCs�|j�}d}tj||�|jd|jdj�|jd|jdj�|jd|jdj�|jd|jd	j�dS(
Nsyrepeated_nested_message: [{bb: 100}, {bb: 200}],
repeated_nested_message: {bb: 300}
repeated_nested_message [{bb: 400}];
idii�ii,ii�i(R-R
RKR
R<R>(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt#testParseRepeatedMessageShortFormat}scCs<|j�}d}tj||�|j|j�|�dS(NR(R-R
RKR
(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseEmptyText�scCss|j�}d}|jtj��}tj||�WdQX|j|jj�d�|j|jj�d�dS(Nsrepeated_string: "\xc3\xc3"ii(	R-tassertRaisesR
t
ParseErrorRKR
t	exceptiontGetLinet	GetColumn(RR4R5R!te((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseInvalidUtf8�scCs8|j�}d}tj|tjdtj||�dS(Ntfoos?1:1 : Message type "\w+.TestAllTypes" has no field named "foo".(R-R8tassertRaisesRegexR
R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseSingleWord�s
cCs8|j�}d}tj|tjdtj||�dS(Nsunknown_field: 8
sI1:1 : Message type "\w+.TestAllTypes" has no field named "unknown_field".(R-R8R�R
R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseUnknownField�s
cCs8|j�}d}tj|tjdtj||�dS(Nsoptional_nested_enum: BARRsG1:23 : Enum type "\w+.TestAllTypes.NestedEnum" has no value named BARR.(R-R8R�R
R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadEnumValue�scCs8|j�}d}tj|tjdtj||�dS(Nsoptional_int32: borks#1:17 : Couldn't parse integer: bork(R-R8R�R
R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadIntValue�s
cCs�|j�}d}tj||�d}|jd|jd�|j|d|d|jd�|j|d|d	|jd
�|j||d||d|jd�|j||d||d	|jd�|j|d
|jd�dS(Nsrepeated_string: "\xf\x62"
               repeated_string: "\\xf\\x62"
               repeated_string: "\\\xf\\\x62"
               repeated_string: "\\\\xf\\\\x62"
               repeated_string: "\\\\\xf\\\\\x62"
               repeated_string: "\x5cx20"s\sbitxftx62istbiiitx20i(R-R
RKR
R2(RR4R5R!tSLASH((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseStringFieldUnescape�s##cCsK|j�}d}tj||�}|j||�|jd|j�dS(Ns%optional_int32: 42 optional_int32: 67iC(R-R
RsRLR
toptional_int32(RR4R5R!RO((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeDuplicateScalars�s
cCsQ|j�}d}tj||�}|j||k�|jd|jj�dS(NsCoptional_nested_message { bb: 1 } optional_nested_message { bb: 2 }i(R-R
Rst
assertTrueR
toptional_nested_messageR>(RR4R5R!RO((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt&testMergeDuplicateNestedMessageScalars�s
cCsW|j�}d|_|j�}tjtj|�|�|jd|jd��dS(Nitoneof_uint32toneof_field(R-R�R
RKR3R
t
WhichOneof(RR4tmtm2((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseOneof�s
	cCsNdjddg�}|j�}tj||�|jd|jd��dS(Ns
soneof_uint32: 11soneof_string: "foo"toneof_stringR�(R R-R
RsR
R�(RR4tm_stringR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeMultipleOneof�scCsQdjddg�}|j�}|jtjd��tj||�WdQXdS(Ns
soneof_uint32: 11soneof_string: "foo"s is specified along with field (R R-tassertRaisesRegexpR
R~RK(RR4R�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMultipleOneof�s

( RRR6R:RARERGRHRPRQR[R^RjRlRpRvRxRyRzR{R|R�R�R�R�R�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR,es<								
	!								
												t OnlyWorksWithProto2RightNowTestscBsPeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(cCsEtj�}tj|�|j|jtj|dt��d�dS(Ntpointy_bracketss*text_format_unittest_data_pointy_oneof.txt(	RR-RRmR#R+R
R3R?(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllFieldsPointy�s
cCssdj|jd��}tj�}tj||�}|j||�tj�}tj|�|j	||�dS(Ns
s/text_format_unittest_data_oneof_implemented.txt(
R RRR-R
RKRLRRmR
(RR$RNROR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseGolden�s
cCs?tj�}tj|�|j|jtj|��d�dS(Ns/text_format_unittest_data_oneof_implemented.txt(RR-RRmR#R+R
R3(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllFieldss

cCs�tj�}d|_d|_d|_d|j_d|j_|j|j	t
j|dt��d�|j|j	t
j|��d�dS(	Nt115ieioiituse_index_ordersWmy_string: "115"
my_int: 101
my_float: 111
optional_nested_message {
  oo: 0
  bb: 1
}
sWmy_int: 101
my_string: "115"
my_float: 111
optional_nested_message {
  bb: 1
  oo: 0
}
(
RtTestFieldOrderingst	my_stringtmy_inttmy_floatR�tooR>R%R+R
R3R?(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintInIndexOrders			cCsj|jd�}tj�}tj||�}|j||�tj�}tj|�|j||�dS(Ns/text_format_unittest_data_oneof_implemented.txt(	RRR-R
t
MergeLinesRLRRmR
(RtopenedRNROR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeLinesGoldens
cCsj|jd�}tj�}tj||�}|j||�tj�}tj|�|j||�dS(Ns/text_format_unittest_data_oneof_implemented.txt(	RRR-R
t
ParseLinesRLRRmR
(RR�RNROR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseLinesGolden's
cCsztj�}d|jd<d|jd<d|jd<d|jd<d|jd	<d
|jd_|j	t
j|�d�dS(Ni8���i����ii"i!i�i{t123tabciiosHmap_int32_int32 {
  key: -123
  value: -456
}
map_int64_int64 {
  key: -8589934592
  value: -17179869184
}
map_uint32_uint32 {
  key: 123
  value: 456
}
map_uint64_uint64 {
  key: 8589934592
  value: 17179869184
}
map_string_string {
  key: "abc"
  value: "123"
}
map_int32_foreign_message {
  key: 111
  value {
    c: 5
  }
}
ll����ll����ll(RtTestMaptmap_int32_int32tmap_int64_int64tmap_uint32_uint32tmap_uint64_uint64tmap_string_stringtmap_int32_foreign_messageR]R%R
R3(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMap1s




cCs�tj�}x%tjdd!D]}d|j|<qWx+ttjdd!�D]}d|j|<qKWdjd�tjD��}|jtj	|�|�dS(Ni
itdummyiRcss|]}d|fVqdS(s3map_string_string {
  key: "%c"
  value: "dummy"
}
N((t.0tletter((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pys	<genexpr>_s(
RR�tstringtascii_uppercaseR�treversedR R%R
R3(RR5R�tgolden((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMapOrderEnforcementYs(
RRR�R�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR��s					
	
	(tProto2TestscBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs�tj�}tjj}tjj}d|jj|_d|jj|_|j	t
j|�d�tj
�}tj}d|j|_|j	t
j|�d�dS(NiR�s�message_set {
  [protobuf_unittest.TestMessageSetExtension1] {
    i: 23
  }
  [protobuf_unittest.TestMessageSetExtension2] {
    str: "foo"
  }
}
tbarsF[google.protobuf.internal.TestMessageSetExtension3] {
  text: "bar"
}
(RtTestMessageSetContainertTestMessageSetExtension1tmessage_set_extensiontTestMessageSetExtension2tmessage_sett
ExtensionstiRR%R
R3RtTestMessageSettmessage_set_extension3R!(RR5text1text2text((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMessageSetvs		cCs�tjt�}tj�}tjj}tjj}d|jj	|_
d|jj	|_tj||dt
�|j|j�d�|j�dS(NiR�tuse_field_numbers?1 {
  1545008 {
    15: 23
  }
  1547769 {
    25: "foo"
  }
}
(R
RaRJRR�R�R�R�R�R�R�RtPrintMessageR?R%RcRd(RRhR5R�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt testPrintMessageSetByFieldNumber�scCsmtj�}tjj}tjj}d|jj|_d|jj|_|j	t
j|dt�d�dS(NiR�R;s�message_set { [protobuf_unittest.TestMessageSetExtension1] { i: 23 } [protobuf_unittest.TestMessageSetExtension2] { str: "foo" } }(
RR�R�R�R�R�R�R�RR%R
R3R?(RR5R�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMessageSetAsOneLine�scCs�tj�}d}tj||�|jd|jd�|jd|jd�tj�}d}tj||�tjj	}tj
j	}|jd|jj|j
�|jd|jj|j�dS(Ns&repeated_uint64: 1
repeated_uint64: 2
iiis�message_set {
  [protobuf_unittest.TestMessageSetExtension1] {
    i: 23
  }
  [protobuf_unittest.TestMessageSetExtension2] {
    str: "foo"
  }
}
iR�(RR-R
RKR
R0RR�R�R�R�R�R�R�R(RR5R!R�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMessageSet�scCsWtj�}d}tj||dtj��|jtj|dtj��|�dS(Ns�value {
  [type.googleapis.com/google.protobuf.internal.TestAny] {
    [google.protobuf.internal.TestAnyExtension1.extension1] {
      i: 10
    }
  }
}
R	(ttest_extend_anytTestAnyR
RsR	tDefaultR%R3(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestExtensionInsideAnyMessage�sc	Cs6tj�}d}tj||dt�|jd|jd�|jd|jd�tj�}d}tj||dt�tj	j
}tjj
}|jd|jj
|j�|jd|jj
|j�tj�}d	}tj|tjd
tj||�d}tj|tjdtj||dt�dS(
Ns34: 1
repeated_uint64: 2
tallow_field_numberiiis?1 {
  1545008 {
    15: 23
  }
  1547769 {
    25: "foo"
  }
}
iR�s34:1
s>1:1 : Message type "\w+.TestAllTypes" has no field named "34".s1234:1
s@1:1 : Message type "\w+.TestAllTypes" has no field named "1234".(RR-R
RKR?R
R0RR�R�R�R�R�R�R�RR8R�R~(RR5R!R�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMessageByFieldNumber�s4cCs?tj�}tj|�|j|jtj|��d�dS(Ns(text_format_unittest_extensions_data.txt(RtTestAllExtensionsRtSetAllExtensionsR#R+R
R3(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllExtensionss

cCsEtj�}tj|�|j|jtj|dt��d�dS(NR�s/text_format_unittest_extensions_data_pointy.txt(	RR�RR�R#R+R
R3R?(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllExtensionsPointys
cCsadj|jd��}tj�}tj||�tj�}tj|�|j||�dS(Ns
s(text_format_unittest_extensions_data.txt(	R RRR�R
RKRR�R
(RR$RNR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseGoldenExtensionss
cCsXtj�}tj|�tj|�}tj�}tj||�|j||�dS(N(RR�RR�R
R3RKR
(RR5RoRN((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseAllExtensionss
c	Cs�tj�}d}tj||dt�d}|jtj|�|�tj�}d}tj|tj	dtj||dt�tj�}d}tj|tj	dtj||dt�tj�}d}tj|tj	dtj||dt�tj�}d	}tj|tj	d
tj||dt�tj�}d}tj|tj	dtj||dt�tj�}d
}tj||dt�tj
j}tjj}|j
d|jj|j�|j
d|jj|j�dS(Ns�message_set {
  [unknown_extension] {
    i: 23
    bin: "�"    [nested_unknown_ext]: {
      i: 23
      x: x
      test: "test_string"
      floaty_float: -0.315
      num: -inf
      multiline_str: "abc"
          "def"
          "xyz."
      [nested_unknown_ext.ext]: <
        i: 23
        i: 24
        pointfloat: .3
        test: "test_string"
        floaty_float: -0.315
        num: -inf
        long_string: "test" "test2" 
      >
    }
  }
  [unknown_extension]: 5
}
tallow_unknown_extensionsmessage_set {
}
s3message_set {
  [unknown_extension] {
    i:
  }
}
sInvalid field value: }sGmessage_set {
  [unknown_extension] {
    str: "malformed string
  }
}
sInvalid field value: "sSmessage_set {
  [unknown_extension] {
    str: "malformed
 multiline
 string
  }
}
s7message_set {
  [malformed_extension] <
    i: -5
  
}
s5:1 : Expected ">".s)message_set {
  unknown_field: true
  
}
sb2:3 : Message type "proto2_wireformat_unittest.TestMessageSet" has no field named "unknown_field".s�message_set {
  [protobuf_unittest.TestMessageSetExtension1] {
    i: 23
  }
  [protobuf_unittest.TestMessageSetExtension2] {
    str: "foo"
  }
}
iR�(RR�R
RKR?R%R3R8R�R~R�R�R�R
R�R�R�R(RR5R!R�t	malformedR�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt testParseAllowedUnknownExtension"sr					cCsZtj�}d}|jtj��}tj||�WdQX|jt|j�d�dS(Ns#optional_nested_message { "bb": 1 }s/1:27 : Expected identifier or number, got "bb".(	RR-R}R
R~RKR
RR(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadIdentifier�scCsftj�}d}tj|tjdtj||�tj�}tj|tjdtj||�dS(Ns[unknown_extension]: 8
s31:2 : Extension "unknown_extension" not registered.sM1:2 : Message type "protobuf_unittest.TestAllTypes" does not have extensions.(RR�R8R�R
R~RKR-(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadExtension�scCs8tj�}d}tj|tjdtj||�dS(Nsoptional_nested_enum: 100sL1:23 : Enum type "\w+.TestAllTypes.NestedEnum" has no value with number 100.(RR-R8R�R
R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseNumericUnknownEnum�scCs@tj�}d}tj||�|jd|jtj�dS(Nsa[protobuf_unittest.optional_int32_extension]: 42 [protobuf_unittest.optional_int32_extension]: 67iC(RR�R
RsR
R�toptional_int32_extension(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testMergeDuplicateExtensionScalars�s
	cCs8tj�}d}tj|tjdtj||�dS(Nsa[protobuf_unittest.optional_int32_extension]: 42 [protobuf_unittest.optional_int32_extension]: 67s�1:96 : Message type "protobuf_unittest.TestAllExtensions" should not have multiple "protobuf_unittest.optional_int32_extension" extensions.(RR�R8R�R
R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testParseDuplicateExtensionScalars�s
cCs8tj�}d}tj|tjdtj||�dS(NsCoptional_nested_message { bb: 1 } optional_nested_message { bb: 2 }sh1:65 : Message type "protobuf_unittest.TestAllTypes.NestedMessage" should not have multiple "bb" fields.(RR-R8R�R
R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt&testParseDuplicateNestedMessageScalars�s	cCs8tj�}d}tj|tjdtj||�dS(Ns%optional_int32: 42 optional_int32: 67sf1:36 : Message type "protobuf_unittest.TestAllTypes" should not have multiple "optional_int32" fields.(RR-R8R�R
R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseDuplicateScalars�s	cCs`tj�}d}tj|tjdtj||�d}tj|tjdtj||�dS(NsRepeatedGroup: <s1:16 : Expected ">".sRepeatedGroup: {s1:16 : Expected "}".(RR-R8R�R
R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseGroupNotClosed�scCs~tj�}d}tj||�|j|jd��|j�tj�}d}tj||�|j|jd��dS(NsOptionalGroup: {}t
optionalgroupsOptionalGroup: <>(RR-R
RKR�tHasFieldRr(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseEmptyGroup�s
cCs�d}tj�}tj||�|jd|jd�|jd|jd�|jd|jd�|jd|jd�|jd	|j	d
�|jd|j
dj�dS(NsHmap_int32_int32 {
  key: -123
  value: -456
}
map_int64_int64 {
  key: -8589934592
  value: -17179869184
}
map_uint32_uint32 {
  key: 123
  value: 456
}
map_uint64_uint64 {
  key: 8589934592
  value: 17179869184
}
map_string_string {
  key: "abc"
  value: "123"
}
map_int32_foreign_message {
  key: 111
  value {
    c: 5
  }
}
i8���i����ii"i!i�i{R�R�iioll����ll����ll(RR�R
RKR
R�R�R�R�R�R�R](RR!R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMap�s(RRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR�ts*						)			
			z					
						tProto3TestscBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZRS(cCsZtj�}d|_tj�}|jj|�|jtj	|dt
j��d�dS(NR�R	s[any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string"
  }
}
(Rt	OneStringtdataRR�t	any_valuetPackR
R
R3R	R�(Rtpacked_messageR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMessageExpandAnys	cCsstj�}tj�}d|_|jj�j|�d|_|jj�j|�|jt	j
|�d�dS(Ntstring0tstring1s�repeated_any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string0"
  }
}
repeated_any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string1"
  }
}
(RR�RR�R�trepeated_any_valueR=R�R
R
R3(RR�R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt!testPrintMessageExpandAnyRepeated(s		cCs`tj�}d|_tj�}|jj|�tj�}|j	t
j|d|�d�dS(NR�R	sdany_value {
  type_url: "type.googleapis.com/protobuf_unittest.OneString"
  value: "\n\006string"
}
(RR�R�RR�R�R�R	tDescriptorPoolR
R
R3(RR�R5t
empty_pool((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt2testPrintMessageExpandAnyDescriptorPoolMissingType<s	cCsTtj�}d|_tj�}|jj|�|jtj	|dt
�d�dS(NR�R�s[any_value <
  [type.googleapis.com/protobuf_unittest.OneString] <
    data: "string"
  >
>
(RR�R�RR�R�R�R
R
R3R?(RR�R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt'testPrintMessageExpandAnyPointyBracketsIs	cCsTtj�}d|_tj�}|jj|�|jtj	|dt
�d�dS(NR�R;sRany_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string" } }(RR�R�RR�R�R�R
R
R3R?(RR�R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testPrintMessageExpandAnyAsOneLineWs	c	Csftj�}d|_tj�}|jj|�|jtj	|dt
dt
dtj��d�dS(NR�R;R�R	sRany_value < [type.googleapis.com/protobuf_unittest.OneString] < data: "string" > >(
RR�R�RR�R�R�R
R
R3R?R	R�(RR�R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt0testPrintMessageExpandAnyAsOneLinePointyBracketsds	cCsWtj�}tj�}d|_tj|�}tj||�|jd|j�dS(Ni�(RR-toptional_nested_enumR
R3RKR
(RR5tmessage2ttext_string((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestUnknownEnumsss	cCs�tj�}d}tj||�tj�}|jj|�|jd|j	�|j
�tj||�tj�}|jj|�|jd|j	�dS(Ns[any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string"
  }
}
R�(RR�R
RsRR�R�tUnpackR
R�RrRK(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeExpandedAny{s
cCs�tj�}d}tj||�tj�}|jdj|�|jd|j	�|jdj|�|jd|j	�dS(Ns�repeated_any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string0"
  }
}
repeated_any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string1"
  }
}
iR�iR�(
RR�R
RsRR�R�R	R
R�(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeExpandedAnyRepeated�s
cCsUtj�}d}tj||�tj�}|jj|�|jd|j	�dS(Ns[any_value {
  [type.googleapis.com/protobuf_unittest.OneString] <
    data: "string"
  >
}
R�(
RR�R
RsRR�R�R	R
R�(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testMergeExpandedAnyPointyBrackets�scCsHtj�}d}tj||�tj�}|jd|jj�dS(NsYany_value {
  [type.otherapi.com/protobuf_unittest.OneString] {
    data: "string"
  }
}
s-type.otherapi.com/protobuf_unittest.OneString(	RR�R
RsRR�R
R�ttype_url(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeAlternativeUrl�s	c	Csltj�}d}|jtj��)}tj�}tj||d|�WdQX|jt	|j
�d�dS(Ns[any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string"
  }
}
R	s=Type protobuf_unittest.OneString not found in descriptor pool(RR�R}R
R~R	R�RsR
RR(RR5R!R�R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt-testMergeExpandedAnyDescriptorPoolMissingType�scCsUd}tj�}tj||�tj�}|jj|�|jd|j	�dS(Nsdany_value {
  type_url: "type.googleapis.com/protobuf_unittest.OneString"
  value: "\n\006string"
}
R�(
RR�R
RsRR�R�R	R
R�(RR!R5R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeUnexpandedAny�scCsZtj�}d}|jtj��}tj||�WdQX|jt|j�d�dS(NsUany_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string"
s3:11 : Expected "}".(	RR�R}R
R~RsR
RR(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeMissingAnyEndToken�s
(RRR�R�RRRRRR
RRRRRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR�s			
		
								t
TokenizerTestcBs}eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�ZRS(
cTCs�d}tj|j��}|jdfd|jdf|jdfd|jdf|jdfd|jdf|jd	fd|jd
f|jdfd|jdf|jd
fd|jdf|jdfd|jdf|jdfdd|jdfd|jtd�f|jdfd|jtd�f|jdfd|jt	f|jdfd|jt
fd|jdfd|jdf|jdfd|jdf|jdfd|jdf|jdfd|jd f|jd!fd|jd"f|jd#fd|jd$f|jd%fd|jt
f|jd&fd|jt	f|jd'fd|jt	f|jd(fd|jt
f|jd)fd|jt
f|jd*fd|jt	f|jd+fd|jtd�f|jd,fd|jtd-�f|jd.fd|jtd/�fgR}d0}x�|j�s�||}t|t
�rg|j}|j||�|j�nat|d1t�r�tj|d1�r�|jtj|d0���n|j|d1|d0��|d17}qWdS(2Ns�identifier1:"string1"
     

identifier2 : 
 
123  
  identifier3 :'string'
identifiER_4 : 1.1e+2 ID5:-0.23 ID6:'aaaa\'bbbb'
ID7 : "aa\"bb"



 ID8: {A:inf B:-inf C:true D:false}
ID9: 22 ID10: -111111111111111111 ID11: -22
ID12: 2222222222222222222 ID13: 1.23456f ID14: 1.2e+2f false_bool:  0 true_BOOL:t 
 true_bool1:  1 false_BOOL1:f False_bool: False True_bool: True X:iNf Y:-inF Z:nANtidentifier1t:R�tidentifier2i{tidentifier3R�tidentifiER_4g�[@tID5gq=
ףpͿtID6s	aaaa'bbbbtID7saa"bbtID8t{tAtinftBtCtDt}tID9itID10l�����q��{UtID11i��tID12l�c/Y-�vtID13g82�����?tID14g^@t
false_boolt	true_BOOLt
true_bool1tfalse_BOOL1t
False_boolt	True_booltXtYs-inftZtnanii(R
t	Tokenizert
splitlinestConsumeIdentifiert
ConsumeStringtConsumeIntegertConsumeFloattfloattConsumeBoolR?RJtAtEndt
isinstanceRttokenR
t	NextTokentmathtisnanR�(RR!t	tokenizertmethodsR�R�R=((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestSimpleTokenCases�s�
	
& cCsYd
}d}d|d|df}tj|j��}|jd|j��|j|d|j��|j|d|j��|j|j��d}tj|j��}|jd|j��|jd|j��|jt|j��|jt	|j��|j
tj��|j�WdQX|jd|j��|j|j��dS(
Nii?i s-1 %d %di����s
-0 0 0 1.2ig333333�?ll����ll��(
R
R3R4R
R7R�R;R?tTryConsumeIntegerRJR}R~R8(Rt	int64_maxt
uint32_maxR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeAbstractIntegers)s$cCs�d	}d}d|d|df}tj|j��}|jtjtj|�|jtjtj|�|jdtj|��|jtjtj|�|jtjtj|�|j|dtj	|��|jtjtj	|�|j|dtj|��|j
|j��d}tj|j��}|jdtj|��|jdtj|��|jdtj|��|jdtj|��|j
|j��dS(Nii?i s-1 %d %di����s	-0 -0 0 0ill����ll��(R
R3R4R}R~t_ConsumeUint32t_ConsumeUint64R
t
_ConsumeInt32t
_ConsumeInt64R�R;(RRERFR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeIntegersBs2




cCs�d}tj|j��}|jtj|j�d}tj|j��}|jtj|j�d}tj|j��}|jtj|j�d}tj|j��}|jtj|j�d}tj|j��}|jtj|j�dS(Ns	"string1'sstring1"s
"\xt"s
"\"s
"\x"(R
R3R4R}R~tConsumeByteString(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeByteStringbscCs5d}tj|j��}|jtj|j�dS(Ns
not-a-bool(R
R3R4R}R~R:(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeBoolwscCsBtjdj��}|j|j��|jtj|j�dS(Ns# some comment(R
R3R4R�R;R}R~tConsumeComment(RRA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestSkipComment|scCs[tjdj�dt�}|j|j��|jd|j��|j|j��dS(Ns# some commentt
skip_comments(	R
R3R4RJtassertFalseR;R
RPR�(RRA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeComment�s
	cCswd}tj|j�dt�}|jd|j��|j|j��|jd|j��|j|j��dS(Ns # some comment
# another commentRRs# some comments# another comment(	R
R3R4RJR
RPRSR;R�(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeTwoComments�scCs�d}tj|j�dt�}|jtj|j�|jd|j��|j|j	d�|j
�|jtj|j�|jd|j��|j|j
��|jd|j��|j|j
��dS(Nssome_number: 4
# some commentRRtsome_numberRis# some comment(R
R3R4RJR}R~RPR
R5R=R>R7RSR;R�(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeTrailingComment�s
cCsatjdj�dt�}|j|j��|jtdf|j��|j|j��dS(Ns# some commentRR(	R
R3R4RJRSR;R
tConsumeCommentOrTrailingCommentR�(RRA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeLineComment�s	
cCs�d}tj|j�dt�}|jtdf|j��|j|j��|jtdf|j��|j|j��dS(Ns # some comment
# another commentRRs# some comments# another comment(	R
R3R4RJR
RXRSR;R�(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeTwoLineComments�s

cCs�d}tj|j�dt�}|jtj|j�|jd|j��|j|j	d�|j
�|jtj|j�|jd|j��|j|j
��|jtdf|j��|j|j
��dS(Nssome_number: 4  # some commentRRRVRis# some comment(R
R3R4RJR}R~RXR
R5R=R>R7RSR;R?R�(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testConsumeAndCheckTrailingComment�s



cCs�d}tj|j�dt�}|jd|j��|j|jd�|j�|jd|j��|jt	df|j
��|j|j��dS(Ns2some_number: 4  # some comment # not a new commentRRRVRis"# some comment # not a new comment(
R
R3R4RJR
R5R=R>R7R?RXR�R;(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestHashinComment�s

(RRRCRGRLRNRORQRTRURWRYRZR[R\(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR�s	M		 								
	tPrettyPrinterTestcBs5eZd�Zd�Zd�Zd�Zd�ZRS(cCsVd�}|j�}|jj�}d|_|jtj|dtd|�d�dS(NcSs
~~~dS(N(tNone(R5tindentR;((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRi�s	i*R;tmessage_formatters"repeated_nested_message { bb: 42 }(R-R<R=R>R%R
R3R?(RR4RiR5R@((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintNoMatch�s		cs\�fd�}�j�}|jj�}d|_|jtj|dtd|�d�dS(Ncs-~~|j�jjjkr)d|jSdS(NsMy lucky number is %s(R_R-t
NestedMessageR>(R�R_R;(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRi�si*R;R`s1repeated_nested_message { My lucky number is 42 }(R-R<R=R>R%R
R3R?(RR4RiR5R@((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintOneLine�s	cs��fd�}�j�}|jj�}d|_|jtj|dtd|�d�|jtj|dtd|�d�dS(NcsG|j�jjjkrC|r$dndd|}d||jfSdS(Nt s
sMy lucky number is:%s%s(R_R-RbR>R^(R�R_R;tline_deliminator(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRi�si*R;R`s2repeated_nested_message { My lucky number is: 42 }s7repeated_nested_message {
  My lucky number is:
  42
}
(	R-R<R=R>R%R
R3R?RJ(RR4RiR5R@((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintMultiLine�s	csi�fd�}�j�}|jtj|dtd|�d�|jtj|dtd|�d�dS(Ncs#~~|j�jjkrdSdS(NsThe is the message!(R_R-R^(R�R_R;(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRisR;R`sThe is the message!
sThe is the message!(R-R%R
R3RJR?(RR4RiR5((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintEntireMessagescs��fd�}�j�}d|_|jj�}d|_|jj�}d|_|j}d|_|jtj|dt	d|�d�dS(	Ncs-~~|j�jjjkr)d|jSdS(NsMy lucky number is %s(R_R-RbR>R^(R�R_R;(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRisi=i*iciR;R`s�optional_int32: 61 optional_nested_message { My lucky number is 1 } repeated_nested_message { My lucky number is 42 } repeated_nested_message { My lucky number is 99 }(
R-R�R<R=R>R�R%R
R3R?(RR4RiR5R@((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintMultiplePartss					(RRRaRcRfRgRh(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR]�s
				t__main__(#t__doc__t
__author__R?R'R8R�t	unittest2tunittesttImportErrortgoogle.protobuf.internalRtgoogle.protobufRRRRRRR�RRR	R
tTestCaseRRt
ParametersR,R�R�R�RR]Rtmain(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt<module>!sF
�������]PK�\�����*protobuf/internal/descriptor_pool_test.pyonu�[����
���hc@s!dZdZddlZddlZyddlZWnek
rSddlZnXddlmZddlm	Z	ddlm
Z
ddlmZddlm
Z
dd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZdefd��YZdeejfd��YZdeejfd��YZdeejfd��YZdefd��YZdefd��YZ d efd!��YZ!d"efd#��YZ"d$efd%��YZ#d&efd'��YZ$d(efd)��YZ%d*ejfd+��YZ&ed,d-ie!ie d.d/fd0d1fg�d26e!ie d3d4fd5d6fg�d26e!ie d7d8fd9d:fg�d26d;e"d/d2d7�fd<e$d1d=�fg�d>6d;e"d/d2d5�fd<e$d1d?�fd@e#dAd>�fg�dB6d;e"d/d2d0�fdCe#d1dB�fgdDe'�dE6e!ie dFdAfdGdHfg�d26e!ie dIdJfdKdLfg�d26e!ie dMdNfdOdPfg�d26d;e"d/d2dO�fd<e$d1dQ�fg�d>6d;e"d/d2dI�fd<e$d1dR�fd@e#dAd>�fg�dB6d;e"d/d2dF�fdCe#d1dB�fg�dS6�Z(edTd-ie!ie dUdVfdWdXfg�d26e!ie dYdZfd[d\fg�d26e!ie d]d^fd_d`fg�d26d;e"d/d2d]�fd<e$d1da�fg�d>6d;e"d/d2d[�fd<e$d1db�fd@e#dAd>�fg�dB6d;e"d/d2dW�fdCe#d1dB�fgdcdde%dedE�fg�df6dgd,dhgdidhg�Z)e*djkrej+�ndS(ks*Tests for google.protobuf.descriptor_pool.s"matthewtoia@google.com (Matt Toia)i����N(tunittest_import_pb2(tunittest_import_public_pb2(tunittest_pb2(tdescriptor_pb2(tapi_implementation(tdescriptor_pool_test1_pb2(tdescriptor_pool_test2_pb2(tfactory_test1_pb2(tfactory_test2_pb2(tfile_options_test_pb2(tmore_messages_pb2(t
descriptor(tdescriptor_database(tdescriptor_pool(tmessage_factory(tsymbol_databasetDescriptorPoolTestBasecBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs�d}|jj|�}|j|tj�|j||j�|jd|j�|jd|j	�d}|jj|�}|j|tj�|j||j�|jd|j�|jd|j	�dS(Ns,google/protobuf/internal/factory_test1.protosgoogle.protobuf.python.internaltFactory1Messages,google/protobuf/internal/factory_test2.prototFactory2Message(
tpooltFindFileByNametassertIsInstanceRtFileDescriptortassertEqualtnametpackagetassertIntmessage_types_by_name(tselftname1t
file_desc1tname2t
file_desc2((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindFileByNameAscCs*|jt��|jjd�WdQXdS(NsDoes not exist(tassertRaisestKeyErrorRR(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindFileByNameFailurePscCsh|jjd�}|j|tj�|jd|j�|jd|j�|jd|j	�|jjd�}|j|tj�|jd|j�|jd|j�|jd|j	�|jjd�}|j|tj�|jd|j�|jjd	�}|j|tj�|jd|j�|jjd
�}|j|tj�|jd|j�dS(Ns/google.protobuf.python.internal.Factory1Messages,google/protobuf/internal/factory_test1.protosgoogle.protobuf.python.internalRs/google.protobuf.python.internal.Factory2Messages,google/protobuf/internal/factory_test2.protoRs-google.protobuf.python.internal.another_fields>google.protobuf.python.internal.Factory2Message.one_more_fieldsprotobuf_unittest.TestServicesgoogle/protobuf/unittest.proto(
RtFindFileContainingSymbolRRRRRRRR(RRR t
file_desc3t
file_desc4t
file_desc5((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindFileContainingSymbolTs:			
			
			
			
			cCs*|jt��|jjd�WdQXdS(NsDoes not exist(R"R#RR%(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt#testFindFileContainingSymbolFailureysc	Cs�|jjd�}|j|tj�|jd|j�|jd|j�|jd|j	�|j
|j�|jd}|jd|j�|j||j	�|j
d}|jd|j�|j||j	�|j||jdj�|j||jdj�|jjd�}|j|tj�|jd	|j�|jd|j�|j|j	�|jd}|jd
|j�|j||j	�|j
d}|jd|j�|j||j	�|j||jdj�|j||jd
j�|j|jdj�|jd|jdj�|j|jdj�|jd|jdj�|j|jdj�|jd|jdj�|j|jdj�|j
|jdj�|j|jdj�|jd|jdj�|jjd�}|j||�|j|jdj�|jd|jdj�|jdt|j��|jdt|j��|jdt|jdj��xVddgD]H}|j|jd|j|j�|j|j||jdj�q�WdS(Ns/google.protobuf.python.internal.Factory1MessageRitNestedFactory1MessagetNestedFactory1Enumtnested_factory_1_messagetnested_factory_1_enums/google.protobuf.python.internal.Factory2MessageRtNestedFactory2MessagetNestedFactory2Enumtnested_factory_2_messagetnested_factory_2_enumtint_with_defaulti�tdouble_with_defaultg{�G�#@tstring_with_defaultshello worldtbool_with_defaulttenum_with_defaultisEgoogle.protobuf.python.internal.Factory2Message.NestedFactory2Messagetbytes_with_defaultsa�cit	oneof_inttoneof_string(RtFindMessageTypeByNameRRt
DescriptorRRt	full_nametNonetcontaining_typetassertFalsethas_optionstnested_typest
enum_typestfields_by_nametmessage_typet	enum_typetassertIsNonet
assertTruethas_default_valuet
default_valuetlentoneofstoneofs_by_nametfieldstcontaining_oneofR(	Rtmsg1tnested_msg1tnested_enum1tmsg2tnested_msg2tnested_enum2tmsg3R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindMessageTypeByName}s�			


			


		 cCsS|jt|jjd�tj�dkrf|jt|jjd�|jt|jjd�t}nt}|j||jj	d�|j||jj
d�|j||jjd�|j||jjd�|j||jj
d�|j||jjd�|j||jjd�tj�dkr6t}n|j||jjd�dS(Nttcppitpython(R"t	TypeErrorRtFindExtensionByNumberRtTypetFindMethodByNameR#tAttributeErrorR;tFindFieldByNametFindExtensionByNametFindEnumTypeByNametFindOneofByNametFindServiceByNameR%R(Rt
error_type((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindTypeErrors�s 		cCs*|jt��|jjd�WdQXdS(NsDoes not exist(R"R#RR;(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt testFindMessageTypeByNameFailure�scCsx|jjd�}|j|tj�|jd|jdj�|jd|jdj�|j|j	�|jjd�}|j|tj�|jd|jdj�|jd|jdj�|jjd	�}|j|tj�|jd|jd
j�|jd|jdj�|jjd�}|j|tj�|jd|jd
j�|jd|jdj�dS(Ns,google.protobuf.python.internal.Factory1EnumitFACTORY_1_VALUE_0itFACTORY_1_VALUE_1sBgoogle.protobuf.python.internal.Factory1Message.NestedFactory1EnumtNESTED_FACTORY_1_VALUE_0tNESTED_FACTORY_1_VALUE_1s,google.protobuf.python.internal.Factory2EnumtFACTORY_2_VALUE_0tFACTORY_2_VALUE_1sBgoogle.protobuf.python.internal.Factory2Message.NestedFactory2EnumtNESTED_FACTORY_2_VALUE_0tNESTED_FACTORY_2_VALUE_1(
RRbRRtEnumDescriptorRtvalues_by_nametnumberR@RA(Rtenum1RRtenum2RU((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindEnumTypeByName�s2								cCs*|jt��|jjd�WdQXdS(NsDoes not exist(R"R#RRb(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindEnumTypeByNameFailurescCs�t|t�r(tj�dkr(dSn|jjd�}|j|jd�|j|j|j	�|j
|j�|jt
��|jjd�WdQXdS(NRYs:google.protobuf.python.internal.Factory1Message.list_valuet
list_valuesDoes not exist(t
isinstancet#SecondaryDescriptorFromDescriptorDBRR]RR`RRtlabeltLABEL_REPEATEDR@RAR"R#(Rtfield((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindFieldByName
s		cCswt|t�r(tj�dkr(dSn|jjd�}|j|jd�|jt	��|jjd�WdQXdS(NRYs;google.protobuf.python.internal.Factory2Message.oneof_fieldtoneof_fieldsDoes not exist(
RxRyRR]RRcRRR"R#(Rtoneof((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindOneofByNames		cCs�t|t�r(tj�dkr(dSn|jjd�}|j|jd�|jjd�}|j|jd�|j|jd�|j	t
��|jjd�WdQXdS(NRYs>google.protobuf.python.internal.Factory2Message.one_more_fieldtone_more_fields-google.protobuf.python.internal.another_fieldt
another_fieldi�sDoes not exist(RxRyRR]RRaRRRrR"R#R`(Rt	extension((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindExtensionByName%s				cCs�|jjd�}|jjd�}|jd}|jj|�|jjd�}|jd}|jj|�|jj|�}t||g�}|j|t|��|jd�|jj|�}|j|t|��dS(Ns/google.protobuf.python.internal.Factory1Messages/google.protobuf.python.internal.Factory2MessageR�s,google/protobuf/internal/factory_test2.protoR�tunexpected_element(	RR;textensions_by_nametAddExtensionDescriptorRtFindAllExtensionstsetRtappend(Rtfactory1_messagetfactory2_messageR�t
factory_test2R�t
extensionstexpected_extension_numbers((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindAllExtensions7s 				
		

cCs�|jjd�}|jjd�}|jd}|jj|�|jjd�}|jd}|jj|�|jj|d�}|j|jd�|jj|d�}|j|jd�|jt	��|jj|d�}WdQXdS(	Ns/google.protobuf.python.internal.Factory1Messages/google.protobuf.python.internal.Factory2MessageR�s,google/protobuf/internal/factory_test2.protoR�i�i�i��(
RR;R�R�RR\RRR"R#(RR�R�R�R�R�R�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindExtensionByNumberOs 				
		
cCsv|jt��|jjd�WdQX|jt��|jjd�WdQX|jt��|jjd�WdQXdS(Ns-google.protobuf.python.internal.another_fields>google.protobuf.python.internal.Factory2Message.one_more_fields:google.protobuf.python.internal.Factory1Message.list_value(R"R#RR`Ra(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestExtensionsAreNotFieldsfs	
	cCsO|jjd�}|j|jd�|jt��|jjd�WdQXdS(Nsprotobuf_unittest.TestServicesDoes not exist(RRdRR=R"R#(Rtservice((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindServicepscCsLtj�}tj|�|_|j|j�|j|j�|j�dS(N(	RtDescriptorDatabaseR
tDescriptorPoolRtAddtfactory_test1_fdtfactory_test2_fdRW(Rtdb((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestUserDefinedDBvs
cCswt|t�r(tj�dkr(dSntj�|_|jj|jj	��|jj|j
j	��|j�dS(NRY(RxRyRR]R
R�RtAddSerializedFileR�tSerializeToStringR�RW(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestAddSerializedFile}scs��fd�}|tj�tj�jjd�}�j|tj�||�t�t�ryt	j
�dkrydSntjj
tjj�}�jj|��jjd�}||�dS(s:Test the default value of enums which don't start at zero.cs1|jdjdj}�j|tjj�dS(NtDescriptorPoolTest1tnested_enum(RRDRJRRR�tBETA(tfile_descriptorRJ(R(sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt_CheckDefaultValue�s

	s4google/protobuf/internal/descriptor_pool_test1.protoRYN(Rt
DESCRIPTORRtDefaultRRtassertIsRxRyRR]RtFileDescriptorProtot
FromStringt
serialized_pbR�(RR�R�tdescriptor_proto((RsQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestEnumDefaultValue�s
	
			cs��fd���fd�}|tj��tj�}|jtjjtj	j
��|jtjjtj	j
��|jtjjtj	j
��tj
|�j|jtjj	j��}||��dS(s0Check the value returned by non-existent fields.cs$�j||��j||�dS(N(RR(tvaluetexpected_valuet
expected_type(R(sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt_CheckValueAndType�scs�y
t}Wntk
r#t}nXy
t}Wntk
rGt}nX�|jdt��|jd|tf��|jdttf��|j	dttf��|j
tt��|j
d|��|jdt��|j|jt�dS(NiuRX(tlongt	NameErrortinttunicodetstrtoptional_int32toptional_uint64toptional_floattfloattoptional_doublet
optional_booltFalsetbooltoptional_stringtoptional_bytestbytestoptional_nested_enumtFOO(tmsgtint64tunicode_type(R�(sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt_CheckDefaultValues�s 





N(RtTestAllTypesR
R�R�RR�R�RR�R�RRtMessageFactorytGetPrototypeR;R=(RR�Rt
message_class((R�RsQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt!testDefaultValueForCustomMessages�scCsdt|t�r(tj�dkr(dSntjdd�}|jj|�|jj|j	��dS(NRYRssome/file.proto(
RxRyRR]RR�RR�R�R�(Rt	file_desc((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestAddFileDescriptor�scCs�t|t�r(tj�dkr(dSntjjtjj	�}tjjt
jj	�}tjjtjj	�}|jj
|�|jj
|�|jj
|�tj||j�tj||j�dS(NRY(RxRyRR]RR�R�R
R�R�RRRR�t
TEST1_FILEt	CheckFilet
TEST2_FILE(Rtmore_messages_desct
test1_desct
test2_desc((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestComplexNesting�s			(t__name__t
__module__R!R$R)R*RWRfRgRuRvR}R�R�R�R�R�R�R�R�R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR?s,			%		R										
			
	 	&	tDefaultDescriptorPoolTestcBseZd�Zd�ZRS(cCsItj�|_tjjtjj�|_	tjjt
jj�|_dS(N(R
R�RRR�R�RR�R�R�RR�(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pytsetUp�s
		cCs|j|jjd�tj�|j|jjd�tjj�|j|jjd�tjjjd�|j|jj	d�tj
j�|j|jjd�tjjd�|j|jj
d�tjjjd	�|j|jjd
�tjjd�dS(Nsgoogle/protobuf/unittest.protosprotobuf_unittest.TestAllTypess-protobuf_unittest.TestAllTypes.optional_int32R�sprotobuf_unittest.ForeignEnums*protobuf_unittest.optional_int32_extensiontoptional_int32_extensions*protobuf_unittest.TestAllTypes.oneof_fieldR~sprotobuf_unittest.TestServicetTestService(R�RRRR�R;R�R`RDRbtForeignEnumRaR�RcRMRdtservices_by_name(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindMethods�s.

	
	(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s	tCreateDescriptorPoolTestcBseZd�ZRS(cCs�tj�|_tjjtjj�|_	tjjt
jj�|_|jj|j	�|jj|j�|jjtjjt
jj��|jjtjjtjj��|jjtjjtjj��dS(N(R
R�RRR�R�RR�R�R�RR�R�RRR(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s		(R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�sRycBseZd�ZRS(cCs�tjjtjj�|_tjjtjj�|_t	j
�}|j|j�|j|j�|jtjjtjj��|jtjjt
jj��|jtjjtjj��tjd|�|_dS(Nt
descriptor_db(RR�R�RR�R�R�RR�RR�R�RRRR
R�R(RR�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�(s		(R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyRy%st	ProtoFilecBs eZddd�Zd�ZRS(cCs=||_||_||_|p$g|_|p3g|_dS(N(RRtmessagestdependenciestpublic_dependencies(RRRR�R�R�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt__init__;s
			c	Cs�|j|j�}|j|j|j�|j|j|j�g|jD]}|j^qH}|j|j|�g|jD]}|j^qz}|j|j|�x3|jj�D]"\}}|j|d||�q�WdS(N(
RRRRR�R�R�titemst	CheckTypeR>(	RttestRR�tftdependencies_namestpublic_dependencies_namesRtmsg_type((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�CsN(R�R�R>R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�9stEnumTypecBseZd�Zd�ZRS(cCs
||_dS(N(tvalues(RR�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�QscCs|j|}|j||j�dj|j|g�}|j||j�|j||j�|j||j�x�t|j�D]~\}\}}	|j	|}
|j||
j�|j||
j
�|j|	|
j�|j||
j�|j
||j�q�WdS(Nt.(tenum_types_by_nameRRtjoinR=R?tfilet	enumerateR�RqtindexRrttypeRtenum_values_by_name(RR�tmsg_descRR�t	enum_desctexpected_enum_full_nameR�R�Rrt
value_desc((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�Ts
"
(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�Os	tMessageTypecBs eZedd�Zd�ZRS(cCs.||_||_||_|p$g|_dS(N(t	type_dictt
field_listt
is_extendableR�(RR�R�R�R�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�fs			c
Css|dkr4|j|}dj|j|g�}n%|j|}dj|j|g�}|j||j�|j||j�|j||j�|j|j	|�|j|j
|j
�x3|jj�D]"\}}|j
||||�q�Wx<t|j�D]+\}\}}	|	j|||||�qWx<t|j�D]+\}\}}	|	j|||||�q@WdS(NR�(R>RR�Rtnested_types_by_nameR=RRR?R�R�R�R�R�R�R�t
CheckFieldR�(
RR�tcontaining_type_descRR�tdesctexpected_full_nametsubtypeR�R|((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�ms 

""N(R�R�R�R>R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�dst	EnumFieldcBseZd�Zd�ZRS(cCs||_||_||_dS(N(Rrt	type_nameRJ(RRrRRJ((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s		c	Cs=|j|}|j|j}|j||j�dj|j|g�}|j||j�|j||j�|j|j|j�|jt	j
j|j�|jt	j
j
|j�|j|j�|j|j|jj|j�|j|j|jj�|j||j�|j||j�|j||j�dS(NR�(RDR�RRRR�R=R�RrRtFieldDescriptort	TYPE_ENUMR�tCPPTYPE_ENUMtcpp_typeRHRIRqRJR@RAR?RFR�(	RR�R�RR�R�t
field_descR�texpected_field_full_name((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s"


(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s	tMessageFieldcBseZd�Zd�ZRS(cCs||_||_dS(N(RrR(RRrR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s	c	Cs.|j|}|j|j}|j||j�dj|j|g�}|j||j�|j||j�|j|j|j�|jt	j
j|j�|jt	j
j
|j�|j|j�|j||j�|j||j�|j||j�tj�dkr*|jtt|d�ndS(NR�RYRJ(RDR�RRRR�R=R�RrRRtTYPE_MESSAGER�tCPPTYPE_MESSAGERR@RIR?RER�RR]R"tNotImplementedErrortgetattr(	RR�R�RR�R�R	tfield_type_descR
((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s"

(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s	tStringFieldcBseZd�Zd�ZRS(cCs||_||_dS(N(RrRJ(RRrRJ((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s	cCs�|j|}|j||j�dj|j|g�}|j||j�|j||j�|j|j|j�|jtjj	|j
�|jtjj|j�|j
|j�|j|j|j�|j||j�dS(NR�(RDRRR�R=R�RrRRtTYPE_STRINGR�tCPPTYPE_STRINGRRHRIRJR�(RR�R�RR�R�R	R
((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s

(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s	tExtensionFieldcBseZd�Zd�ZRS(cCs||_||_dS(N(Rrt
extended_type(RRrR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s	cCs|j|}|j||j�dj|j|g�}|j||j�|j|j|j�|j||j�|jtjj	|j
�|jtjj|j�|j
|j�|j|j�|j||j�|j||j�|j|j|jj�|j||j�dS(NR�(R�RRR�R=RrR�RRRR�R
RR@RIRHtis_extensiontextension_scopeRERR?R�(RR�R�RR�R�R	R
((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s

(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s	tAddDescriptorTestcBs�eZd�Zejej�dkd�d��Zd�Zejej�dkd�d��Z	ejej�dkd�d��Z
ejej�dkd�d��Zd�Zd	�Z
d
�Zd�ZRS(cCs�tj�}|jtjj�|jd|j|d�j�|j	t
��|j|d�WdQX|jtjjj�|jd|j|d�j�|jd|jd�j
�|jd|j|d�j
�dS(Nsprotobuf_unittest.TestAllTypess,protobuf_unittest.TestAllTypes.NestedMessagesgoogle/protobuf/unittest.proto(R
R�t
AddDescriptorRR�R�RR;R=R"R#t
NestedMessageRRR%(RtprefixR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt_TestMessage�s,
RYs7With the cpp implementation, Add() must be called firstcCs|jd�|jd�dS(NRXR�(R(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestMessages
cCs�tj�}|jtjj�|jd|j|d�j�|j	t
��|j|d�WdQX|jtjjj�|jd|j|d�j�|jd|j
d�j�|jd|j|d�j�dS(Nsprotobuf_unittest.ForeignEnums(protobuf_unittest.ForeignEnum.NestedEnums)protobuf_unittest.TestAllTypes.NestedEnumsgoogle/protobuf/unittest.proto(R
R�tAddEnumDescriptorRR�R�RRbR=R"R#R�t
NestedEnumRRR%(RRR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt	_TestEnums,
cCs|jd�|jd�dS(NRXR�(R (R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestEnum,s
cCs_tj�}|jt��|jd�WdQX|jtj�|jd|jd�j	�dS(Nsprotobuf_unittest.TestService(
R
R�R"R#RdtAddServiceDescriptorRt_TESTSERVICERR=(RR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestService2scCs_tj�}|jtj�|jd|jd�j�|jt	��|j
d�WdQXdS(Nsgoogle/protobuf/unittest.protosprotobuf_unittest.TestAllTypes(R
R�tAddFileDescriptorRR�RRRR"R#R%(RR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFile=s
cCsqtj�}tjj}|jt|j|�tj�}tjj	|�|j
|�|j|j|��dS(N(R
R�RR�RR"R#RR�tCopyToProtoR�RH(RRtproto_file_nameR�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestEmptyDescriptorPoolMs
c	Cs�tj�}tjdddd�}|jjdd�|j|�|j|jd�j	d�|j|j
d�j	d�tjdd�}|jjdd�}|jjddd	d
dtjj
dtjj�|jjdd
�}|jjddd	d�|jjdd�tj�}|j|�|jd|j
d�j	�|jd
|jd
�j	�|jd|jd�j	�dS(NRssome/file.protoRtMessagespackage.Messagessome/filename/container.protot
TopMessagetbbRriR�RztTopEnumtFOREIGN_FOOit
TopService(R
R�RR�REtaddR�RRRR;R|tFieldDescriptorProtot
TYPE_INT32tLABEL_OPTIONALRFR�R�RbRd(RRR�t
file_protot
message_protot
enum_proto((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestCustomDescriptorPoolYs6	
			

	cCs�tj�}d}tjd|�}tj}d|jj|_|j	|�|j
|�}|j�}|jd|j|j�|j
||j��dS(Ns9file_descriptor_options_with_custom_descriptor_pool.protoRtfoo(R
R�RR�R	tfoo_optionstoptionst
Extensionstfoo_nameR�Rt
GetOptionsRR�(RRt	file_nametfile_descriptor_prototextension_idR�R:((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt1testFileDescriptorOptionsWithCustomDescriptorPoolxs	
c
Cs�tj�}|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQXdS(Ni(	R
R�R"R[RRR"R�R%(RR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestAddTypeError�s(R�R�RtunittesttskipIfRR]RR R!R$R&R)R7RARB(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s		
			s4google/protobuf/internal/descriptor_pool_test1.protosgoogle.protobuf.python.internaltALPHAiR�iRtEPSILONitZETAitETAitTHETAiR�tnested_fieldtthetatDeepNestedMessagetbetatdeep_nested_messageiRtnested_messageR�R�tGAMMAtDELTAitIOTAi	tKAPPAi
tLAMBDAitMUitlambdatdeltatDescriptorPoolTest2s4google/protobuf/internal/descriptor_pool_test2.prototNUi
tXIitOMICRONitPIitRHOitSIGMAitsigmatnuR�tdescriptor_pool_testi�tDescriptorPoolTest3R�s,google/protobuf/internal/more_messages.protoR�t__main__(,t__doc__t
__author__tostsyst	unittest2RCtImportErrortgoogle.protobufRRRRtgoogle.protobuf.internalRRRRRR	R
RRR
RRtobjectRtTestCaseR�R�RyR�R�R�RRRRRtTrueR�R�R�tmain(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt<module> s�
��# �
"	PK�\�x'����&protobuf/internal/well_known_types.pyonu�[����
���hc@sdZdZddlZddlmZddlmZddlZddlmZdZdZ	d	Z
d
Zd
Zd	Z
d1Zd
Zdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZd�Zd�Zdefd��YZd�Zd�Zd�Zd�Zd efd!��YZd"�Zd#�Z d$�Z!ej"e#fZ$d%�Z%d&�Z&d'efd(��YZ'ej(j)e'�d)efd*��YZ*ej+j)e*�ied+6ed,6ed-6e*d.6e'd/6ed06Z,dS(2s�Contains well known classes.

This files defines well known classes which need extra maintenance including:
  - Any
  - Duration
  - FieldMask
  - Struct
  - Timestamp
sjieluo@google.com (Jie Luo)i����N(tdatetime(t	timedelta(tFieldDescriptors%Y-%m-%dT%H:%M:%Siʚ;i@Bi�iil�s%tErrorcBseZdZRS(sTop-level module error.(t__name__t
__module__t__doc__(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR<st
ParseErrorcBseZdZRS(s Thrown in case of parsing error.(RRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR@stAnycBs8eZdZddd�Zd�Zd�Zd�ZRS(sClass for Any Message type.stype.googleapis.com/cCspt|�dks"|ddkr>d||jjf|_nd||jjf|_|jd|�|_dS(s5Packs the specified message into current Any message.ii����t/s%s/%ss%s%st
deterministicN(tlent
DESCRIPTORt	full_namettype_urltSerializeToStringtvalue(tselftmsgttype_url_prefixR
((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytPackGs"cCs0|j}|j|�stS|j|j�tS(s7Unpacks the current Any message into specified message.(RtIstFalsetParseFromStringRtTrue(RRt
descriptor((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytUnpackPs
	cCs|jjd�dS(s4Returns the protobuf type name of the inner message.R	i����(Rtsplit(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytTypeNameXscCs|j�|jkS(s6Checks if this Any represents the given protobuf type.(RR
(RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR]sN(RRRtNoneRRRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRDs		t	TimestampcBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZRS(s!Class for Timestamp message type.cCs�|jt}|j|j|t}|t}||t}tddd�t||�}|j�}|ddkr�|dS|ddkr�|d|dS|ddkr�|d	|dS|d
|S(s#Converts Timestamp to RFC 3339 date string format.

    Returns:
      A string converted from timestamp. The string is always Z-normalized
      and uses 3, 6 or 9 fractional digits as required to represent the
      exact time. Example of the return format: '1972-01-01T10:00:20.021Z'
    i�ige��AitZg��.As.%03dZg@�@s.%06dZs.%09dZ(tnanost_NANOS_PER_SECONDtsecondst_SECONDS_PER_DAYRRt	isoformat(RR t	total_secR"tdaystdttresult((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytToJsonStringes

c
CsY|jd�}|dkr-|jd�}n|dkrK|jd�}n|dkrftd��n|d|!}|jd�}|dkr�|}d}n|| }||d	}tj|t�}|td
d	d	�}|j|jt}	t	|�dkrtdj
|���n|r>ttd
|�d�}
nd}
||dkr�t	|�|d	kr7tdj
|���q7n�||}|jd�}|dkr�tdj
|���n|ddkr|	t
|d	|!�dt
||d	�d8}	n1|	t
|d	|!�dt
||d	�d7}	t
|	�|_t
|
�|_dS(sNParse a RFC 3339 date string format to Timestamp.

    Args:
      value: A date string. Any fractional digits (or none) and any offset are
          accepted as long as they fit into nano-seconds precision.
          Example of accepted format: '1972-01-01T10:00:20.021-05:00'

    Raises:
      ParseError: On parsing problems.
    Ri����t+t-s9Failed to parse timestamp: missing valid timezone offset.it.tii�i	sCFailed to parse Timestamp: nanos {0} more than 9 fractional digits.s0.ge��As5Failed to parse timestamp: invalid trailing data {0}.t:s#Invalid timezone offset value: {0}.i<N(tfindtrfindRRtstrptimet_TIMESTAMPFOMATR"R&R#RtformattroundtfloattintR (
RRttimezone_offsett
time_valuetpoint_positiontsecond_valuet
nano_valuetdate_objectttdR"R ttimezonetpos((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytFromJsonString�sN
	
	
41cCs|jtj��dS(s#Get the current UTC into Timestamp.N(tFromDatetimeRtutcnow(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytGetCurrentTime�scCs|jt|jS(s.Converts Timestamp to nanoseconds since epoch.(R"R!R (R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt
ToNanoseconds�scCs|jt|jtS(s/Converts Timestamp to microseconds since epoch.(R"t_MICROS_PER_SECONDR t_NANOS_PER_MICROSECOND(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytToMicroseconds�s
cCs|jt|jtS(s/Converts Timestamp to milliseconds since epoch.(R"t_MILLIS_PER_SECONDR t_NANOS_PER_MILLISECOND(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytToMilliseconds�s
cCs|jS(s*Converts Timestamp to seconds since epoch.(R"(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt	ToSeconds�scCs|t|_|t|_dS(s.Converts nanoseconds since epoch to Timestamp.N(R!R"R (RR ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytFromNanoseconds�s
cCs"|t|_|tt|_dS(s/Converts microseconds since epoch to Timestamp.N(RER"RFR (Rtmicros((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytFromMicroseconds�s
cCs"|t|_|tt|_dS(s/Converts milliseconds since epoch to Timestamp.N(RHR"RIR (Rtmillis((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytFromMilliseconds�s
cCs||_d|_dS(s*Converts seconds since epoch to Timestamp.iN(R"R (RR"((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytFromSeconds�s	cCs!tj|j|jtt��S(sConverts Timestamp to datetime.(RtutcfromtimestampR"R R5R!(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt
ToDatetime�scCsA|tddd�}|j|jt|_|jt|_dS(sConverts datetime to Timestamp.i�iN(RR"R&R#tmicrosecondsRFR (RR'R=((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRA�s(RRRR)R@RCRDRGRJRKRLRNRPRQRSRA(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRbs		:										tDurationcBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZRS(s Class for Duration message type.cCs	t|j|j�|jdks1|jdkrjd}|jtd|jd�}d|jd}n-d}|jt|jd�}|jd}|d|7}|ddkr�|dS|ddkr�|d|dS|d	dkr�|d
|d	S|d|S(s+Converts Duration to string format.

    Returns:
      A string converted from self. The string format will contains
      3, 6, or 9 fractional digits depending on the precision required to
      represent the exact Duration value. For example: "1s", "1.010s",
      "1.000000100s", "-3.100s"
    iR+ge��AR-s%dtsg��.As.%03dsg@�@s.%06dss.%09ds(t_CheckDurationValidR"R R6(RR(R"R ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR)�s 	
cCs9t|�dks"|ddkr:tdj|���ny�|jd�}|dkrqt|d �}d}n{t|| �}|ddkr�tttdj||d!��d	��}n,tttd
j||d!��d	��}t||�||_||_	Wn&t
k
r4tdj|���nXdS(
s?Converts a string to Duration.

    Args:
      value: A string to be converted. The string must end with 's'. Any
          fractional digits (or none) are accepted as long as they fit into
          precision. For example: "1s", "1.01s", "1.0000001s", "-3.100s

    Raises:
      ParseError: On parsing problems.
    ii����RVs'Duration must end with letter "s": {0}.R,iR+s-0{0}ge��As0{0}sCouldn't parse duration: {0}.N(RRR3R/R6R4R5RWR"R t
ValueError(RRR?R"R ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR@s$"	/,
	

cCs|jt|jS(s#Converts a Duration to nanoseconds.(R"R!R (R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRD4scCs!t|jt�}|jt|S(s$Converts a Duration to microseconds.(t_RoundTowardZeroR RFR"RE(RRM((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRG8scCs!t|jt�}|jt|S(s$Converts a Duration to milliseconds.(RYR RIR"RH(RRO((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRJ=scCs|jS(sConverts a Duration to seconds.(R"(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRKBscCs|j|t|t�dS(s!Converts nanoseconds to Duration.N(t_NormalizeDurationR!(RR ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRLFs
cCs |j|t|tt�dS(s"Converts microseconds to Duration.N(RZRERF(RRM((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRNKscCs |j|t|tt�dS(s"Converts milliseconds to Duration.N(RZRHRI(RRO((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRPQscCs||_d|_dS(sConverts seconds to Duration.iN(R"R (RR"((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRQWs	cCs"td|jdt|jt��S(sConverts Duration to timedelta.R"RT(RR"RYR RF(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytToTimedelta\scCs)|j|j|jt|jt�dS(sConverts timedelta to Duration.N(RZR"R&R#RTRF(RR=((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt
FromTimedeltabscCsE|dkr/|dkr/|d7}|t8}n||_||_dS(s"Set Duration by seconds and nanos.iiN(R!R"R (RR"R ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRZgs


	(RRRR)R@RDRGRJRKRLRNRPRQR[R\RZ(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRU�s	 	 										cCsf|tks|tkr1tdj|���n|tksJ|tkrbtdj|���ndS(NsRDuration is not valid: Seconds {0} must be in range [-315576000000, 315576000000].sJDuration is not valid: Nanos {0} must be in range [-999999999, 999999999].(t_DURATION_SECONDS_MAXRR3R!(R"R ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRWqscCs<||}||}|dkr4|dkr4|dS|SdS(s,Truncates the remainder part after division.iiN((RtdividerR(t	remainder((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRY|s


t	FieldMaskcBs\eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
e
d�ZRS(	s!Class for FieldMask message type.cCs:g}x$|jD]}|jt|��qWdj|�S(s;Converts FieldMask to string according to proto3 JSON spec.t,(tpathstappendt_SnakeCaseToCamelCasetjoin(Rtcamelcase_pathstpath((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR)�scCs>|j�x-|jd�D]}|jjt|��qWdS(s;Converts string to FieldMask according to proto3 JSON spec.RaN(tClearRRbRct_CamelCaseToSnakeCase(RRRg((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR@�s
cCs+x$|jD]}t||�s
tSq
WtS(s=Checks whether the FieldMask is valid for Message Descriptor.(Rbt_IsValidPathRR(Rtmessage_descriptorRg((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytIsValidForDescriptor�scCs5|j�x$|jD]}|jj|j�qWdS(s:Gets all direct fields of Message Descriptor to FieldMask.N(RhtfieldsRbRctname(RRktfield((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytAllFieldsFromDescriptor�s
cCst|�}|j|�dS(s:Converts a FieldMask to the canonical form.

    Removes paths that are covered by another path. For example,
    "foo.bar" is covered by "foo" and will be removed if "foo"
    is also in the FieldMask. Then sorts all paths in alphabetical order.

    Args:
      mask: The original FieldMask to be converted.
    N(t_FieldMaskTreetToFieldMask(Rtmaskttree((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytCanonicalFormFromMask�s
cCs>t|�t|�t|�}|j|�|j|�dS(s+Merges mask1 and mask2 into this FieldMask.N(t_CheckFieldMaskMessageRqtMergeFromFieldMaskRr(Rtmask1tmask2Rt((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytUnion�s



cCs^t|�t|�t|�}t�}x!|jD]}|j||�q3W|j|�dS(s/Intersects mask1 and mask2 into this FieldMask.N(RvRqRbt
IntersectPathRr(RRxRyRttintersectionRg((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt	Intersect�s

	cCs&t|�}|j||||�dS(s�Merges fields specified in FieldMask from source to destination.

    Args:
      source: Source message.
      destination: The destination message to be merged into.
      replace_message_field: Replace message field if True. Merge message
          field if False.
      replace_repeated_field: Replace repeated field if True. Append
          elements of repeated field if False.
    N(RqtMergeMessage(Rtsourcetdestinationtreplace_message_fieldtreplace_repeated_fieldRt((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR~�s
(RRRR)R@RlRpRuRzR}RR~(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR`�s					
		cCs�|jd�}|j�}x]|D]U}|jj|�}|dksj|jtjksj|jtj	krnt
S|j}q"W||jkS(s8Checks whether the path is valid for Message Descriptor.R,N(Rtpoptfields_by_nametgetRtlabelRtLABEL_REPEATEDttypetTYPE_MESSAGERtmessage_type(RkRgtpartstlastRnRo((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRj�s

cCsI|j}|jdks*|jjdkrEtdj|j���ndS(s0Raises ValueError if message is not a FieldMask.R`s google/protobuf/field_mask.protosMessage {0} is not a FieldMask.N(RRntfileRXR3R
(tmessageRk((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRv�s
		cCs�g}t}x�|D]�}|j�r=tdj|���n|r�|j�rk|j|j��t}q�tdj|���q|dkr�t}q||7}qW|r�tdj|���ndj|�S(s2Converts a path name from snake_case to camelCase.sYFail to print FieldMask to Json string: Path name {0} must not contain uppercase letters.snFail to print FieldMask to Json string: The character after a "_" must be a lowercase letter in path name {0}.t_sFFail to print FieldMask to Json string: Trailing "_" in path name {0}.R-(	RtisupperRR3tislowerRctupperRRe(t	path_nameR(tafter_underscoretc((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRd�s&
					cCs{g}xe|D]]}|dkr7tdj|���n|j�r`|d7}||j�7}q
||7}q
Wdj|�S(s3Converts a field name from camelCase to snake_case.R�s=Fail to parse FieldMask: Path name {0} must not contain "_"s.R-(RR3R�tlowerRe(R�R(R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRis
	
RqcBsPeZdZdd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	s7Represents a FieldMask in a tree structure.

  For example, given a FieldMask "foo.bar,foo.baz,bar.baz",
  the FieldMaskTree will be:
      [_root] -+- foo -+- bar
            |       |
            |       +- baz
            |
            +- bar --- baz
  In the tree, each leaf node represents a field path.
  cCs#i|_|r|j|�ndS(s"Initializes the tree by FieldMask.N(t_rootRw(Rt
field_mask((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__init__'s	cCs%x|jD]}|j|�q
WdS(sMerges a FieldMask to the tree.N(RbtAddPath(RR�Rg((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRw-scCsb|j}xH|jd�D]7}||kr8i||<n||sFdS||}qW|j�dS(sAdds a field path into the tree.

    If the field path to add is a sub-path of an existing field path
    in the tree (i.e., a leaf node), it means the tree already matches
    the given path so nothing will be added to the tree. If the path
    matches an existing non-leaf node in the tree, that non-leaf node
    will be turned into a leaf node with all its children removed because
    the path matches all the node's children. Otherwise, a new path will
    be added.

    Args:
      path: The field path to add.
    R,N(R�Rtclear(RRgtnodeRn((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�2s	

cCs!|j�t|jd|�dS(s!Converts the tree to a FieldMask.R-N(Rht_AddFieldPathsR�(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRrKs
cCsl|j}xL|jd�D];}||kr/dS||sJ|j|�dS||}qW|j||�dS(s�Calculates the intersection part of a field path with this tree.

    Args:
      path: The field path to calculates.
      intersection: The out tree to record the intersection part.
    R,N(R�RR�tAddLeafNodes(RRgR|R�Rn((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR{Ps	

cCsM|s|j|�nx0|D](}|d|}|j|||�qWdS(s/Adds leaf nodes begin with prefix to this tree.R,N(R�R�(RtprefixR�Rnt
child_path((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�as

cCst|j||||�dS(sCMerge all fields specified by this tree from source to destination.N(t
_MergeMessageR�(RRR�treplace_messagetreplace_repeated((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR~isN(RRRRR�RwR�RrR{R�R~(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRqs					cCs t|t�s|jd�S|S(s#Converts value to str if it is not.sutf-8(t
isinstancetstrtencode(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt_StrConvertqs
cCs�|j}x�|D]�}||}|j|}|dkrWtdj||j���n|r�|jtjks�|j	tj
kr�tdj||j���nt|t||�t||�||�qn|jtjkrb|r�|j
t|��nt||�}	t||�}
|j	tj
krRx1|	D]}|
j�j|�q2Wq�|
j|	�q|j	tj
kr�|r�|j
t|��n|j|�r�t||�jt||��q�qt||t||��qWdS(sDMerge all fields specified by a sub-tree from source to destination.s+Error: Can't find field {0} in message {1}.s[Error: Field {0} in message {1} is not a singular message field and cannot have sub-fields.N(RR�RRXR3R
R�RR�tcpp_typetCPPTYPE_MESSAGER�tgetattrt
ClearFieldR�taddt	MergeFromtextendtHasFieldtsetattr(R�RR�R�R�tsource_descriptorRntchildRotrepeated_sourcetrepeated_destinationtitem((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�{s>	


		

%cCsf|s|jj|�dSxEt|�D]7}|rD|d|}n|}t||||�q'WdS(s7Adds the field paths descended from node to field_mask.NR,(RbRctsortedR�(R�R�R�RnR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR��scCs�|dkrd|_n�t|t�r3||_n�t|tj�rQ||_n�t|t�rl||_	njt|t
�r�|jj�|jj
|�n;t|t�r�|jj�|jj|�ntd��dS(NisUnexpected type(Rt
null_valueR�tboolt
bool_valuetsixtstring_typeststring_valuet
_INT_OR_FLOATtnumber_valuetdicttstruct_valueRhtupdatetlistt
list_valueR�RX(R�R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt_SetStructValue�s

cCs�|jd�}|dkr"|jS|dkr2dS|dkrE|jS|dkrX|jS|dkrk|jS|dkr~|jS|dkr�td��ndS(	NtkindR�R�R�R�R�R�s
Value not set(t
WhichOneofR�RR�R�R�R�RX(R�twhich((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt_GetStructValue�stStructcBs�eZdZgZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�ZRS(
sClass for Struct message type.cCst|j|�S(N(R�Rm(Rtkey((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__getitem__�scCs
||jkS(N(Rm(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__contains__�scCst|j||�dS(N(R�Rm(RR�R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__setitem__�scCs|j|=dS(N(Rm(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__delitem__�scCs
t|j�S(N(RRm(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__len__�scCs
t|j�S(N(titerRm(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__iter__�scCs
|jj�S(N(Rmtkeys(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR��scCsg|D]}||^qS(N((RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytvalues�scCs!g|D]}|||f^qS(N((RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytitems�scCs;|j|jd�s-|j|jj�n|j|jS(sAReturns a list for this key, creating if it didn't exist already.R�(RmR�R�Rh(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytget_or_create_list�scCs;|j|jd�s-|j|jj�n|j|jS(sCReturns a struct for this key, creating if it didn't exist already.R�(RmR�R�Rh(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytget_or_create_structscCs5x.|j�D] \}}t|j||�q
WdS(N(R�R�Rm(Rt
dictionaryR�R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�	s(RRRt	__slots__R�R�R�R�R�R�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR��s											t	ListValuecBs_eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZRS(
s!Class for ListValue message type.cCs
t|j�S(N(RR�(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�scCst|jj�|�dS(N(R�R�R�(RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRcscCs"x|D]}|j|�qWdS(N(Rc(Rtelem_seqR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�s
cCst|jj|��S(s&Retrieves item by the specified index.(R�R�R�(Rtindex((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�scCst|jj|�|�dS(N(R�R�R�(RR�R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�!scCs|j|=dS(N(R�(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�$sccs*x#tt|��D]}||VqWdS(N(trangeR(Rti((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�'scCs |jj�j}|j�|S(sAAppends and returns a struct value as the next value in the list.(R�R�R�Rh(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt
add_struct+s
cCs |jj�j}|j�|S(s?Appends and returns a list value as the next value in the list.(R�R�R�Rh(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytadd_list2s
(RRRR�RcR�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�s								sgoogle.protobuf.Anysgoogle.protobuf.Durationsgoogle.protobuf.FieldMasksgoogle.protobuf.ListValuesgoogle.protobuf.Structsgoogle.protobuf.Timestampi�Q(-Rt
__author__tcollectionsRRR�tgoogle.protobuf.descriptorRR2R!RIRFRHRER#R]t	ExceptionRRtobjectRRRURWRYR`RjRvRdRiRqR�R�R�t
integer_typesR5R�R�R�R�tMutableMappingtregisterR�tMutableSequencetWKTBASES(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt<module>'sX��		N					W	
	)	
		2)PK�\�	�v�r�rprotobuf/internal/encoder.pyonu�[����
���hc@sydZdZddlZddlZddlmZdZeZd�Zd�Z	d�Z
d	�Zd
�Zd�Z
ee	�ZZZee�ZZee	ej�ZZe
d�ZZZe
d
�ZZZe
d�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$e#�Z%e$�Z&d�Z'd�Z(d�Z)d�Z*d�Z+d�Z,e)ej-e&e	�Z.Z/Z0e)ej-e%e�Z1Z2e*ej-e%eej�Z3Z4e+ej5d�Z6e+ej7d�Z8e+ej5d�Z9e+ej7d �Z:e,ej5d!�Z;e,ej7d"�Z<d#�Z=d$�Z>d%�Z?d&�Z@d'�ZAd(�ZBd)�ZCdS(*s�Code for encoding protocol message primitives.

Contains the logic for encoding every logical protocol field type
into one of the 5 physical wire types.

This code is designed to push the Python interpreter's performance to the
limits.

The basic idea is that at startup time, for every field (i.e. every
FieldDescriptor) we construct two functions:  a "sizer" and an "encoder".  The
sizer takes a value of this field's type and computes its byte size.  The
encoder takes a writer function and a value.  It encodes the value into byte
strings and invokes the writer function to write those strings.  Typically the
writer function is the write() method of a BytesIO.

We try to do as much work as possible when constructing the writer and the
sizer rather than when calling them.  In particular:
* We copy any needed global functions to local variables, so that we do not need
  to do costly global table lookups at runtime.
* Similarly, we try to do any attribute lookups at startup time if possible.
* Every field's tag is encoded to bytes at startup, since it can't change at
  runtime.
* Whatever component of the field size we can compute at startup, we do.
* We *avoid* sharing code if doing so would make the code slower and not sharing
  does not burden us too much.  For example, encoders for repeated fields do
  not just call the encoders for singular fields in a loop because this would
  add an extra function call overhead for every loop iteration; instead, we
  manually inline the single-value encoder into the loop.
* If a Python function lacks a return statement, Python actually generates
  instructions to pop the result of the last statement off the stack, push
  None onto the stack, and then return that.  If we really don't care what
  value is returned, then we can save two instructions by returning the
  result of the last statement.  It looks funny but it helps.
* We assume that type and bounds checking has happened at a higher level.
s kenton@google.com (Kenton Varda)i����N(twire_formatg�cCs�|dkrdS|dkr dS|dkr0dS|dkr@dS|d	krPd
S|dkr`dS|d
krpdS|dkr�dS|dkr�dSdS(s#Compute the size of a varint value.iii�?ii��ii���il��il���il���il����il����i	i
((tvalue((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_VarintSizeRs&cCs�|dkrdS|dkr dS|dkr0dS|dkr@dS|d	krPd
S|dkr`dS|d
krpdS|dkr�dS|dkr�dS|dkr�dSdS(s*Compute the size of a signed varint value.ii
iii�?ii��ii���il��il���il���il����il����i	((R((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SignedVarintSize`s*cCsttj|d��S(sQReturns the number of bytes required to serialize a tag with this field
  number.i(RRtPackTag(tfield_number((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_TagSizeoscs�fd�}|S(s�A sizer which uses the function compute_value_size to compute the size of
  each value.  Typically compute_value_size is _VarintSize.csgt|��|r1t����fd�}|S|rM��fd�}|S��fd�}|SdS(Ncs9d}x|D]}|�|�7}q
W|�|��S(Ni((Rtresulttelement(tcompute_value_sizetlocal_VarintSizettag_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytPackedFieldSize�s
cs5�t|�}x|D]}|�|�7}qW|S(N(tlen(RRR(R	R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytRepeatedFieldSize�s
cs��|�S(N((R(R	R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt	FieldSize�s(RR(Rtis_repeatedt	is_packedRRR(R	(R
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
SpecificSizer�s((R	R((R	sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SimpleSizer~scs��fd�}|S(s�Like SimpleSizer, but modify_value is invoked on each value before it is
  passed to compute_value_size.  modify_value is typically ZigZagEncode.cspt|��|r4t�����fd�}|S|rS���fd�}|S���fd�}|SdS(Ncs?d}x$|D]}|��|��7}q
W|�|��S(Ni((RRR(R	R
tmodify_valueR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s
cs;�t|�}x$|D]}|��|��7}qW|S(N(R
(RRR(R	RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s
cs���|��S(N((R(R	RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s(RR(RRRRRR(R	R(R
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s((R	RR((R	RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_ModifiedSizer�scs�fd�}|S(sWLike _SimpleSizer except for a fixed-size field.  The input is the size
  of one value.csut|��|r1t����fd�}|S|rT����fd�}|S����fd�}|SdS(Ncs"t|��}|�|��S(N(R
(RR(R
Rt
value_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�scst|��S(N(R
(R(telement_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�scs�S(N((R(t
field_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s(RR(RRRRRR(R(RRR
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s

((RR((RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_FixedSizer�siiicsTt|��t�t�|r7���fd�}|S���fd�}|SdS(s#Returns a sizer for a string field.csN�t|�}x7|D]/}�|jd��}|�|�|7}qW|S(Nsutf-8(R
tencode(RRRtl(R
t	local_lenR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�s

cs'�|jd��}��|�|S(Nsutf-8(R(RR(R
RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR�sN(RRR
(RRRRR((R
RRsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytStringSizer�scsTt|��t�t�|r7���fd�}|S���fd�}|SdS(s"Returns a sizer for a bytes field.csE�t|�}x.|D]&}�|�}|�|�|7}qW|S(N(R
(RRRR(R
RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRs

cs�|�}��|�|S(N((RR(R
RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRsN(RRR
(RRRRR((R
RRsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
BytesSizer�scs@t|�d�|r)�fd�}|S�fd�}|SdS(s"Returns a sizer for a group field.ics5�t|�}x|D]}||j�7}qW|S(N(R
tByteSize(RRR(R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRs
cs�|j�S(N(R(R(R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRsN(R(RRRRR((RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
GroupSizerscsHt|��t�|r.��fd�}|S��fd�}|SdS(s$Returns a sizer for a message field.csE�t|�}x.|D]&}|j�}|�|�|7}qW|S(N(R
R(RRRR(R
R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR+s

cs|j�}��|�|S(N(R(RR(R
R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR3sN(RR(RRRRR((R
RsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageSizer$scsJtd�dtd�t|�td��t���fd�}|S(s�Returns a sizer for extensions of MessageSet.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  iiics|j�}��|�|S(N(R(RR(R
tstatic_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRLs(RR(RR((R
R"sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageSetItemSizer=s
!
cs7|j�t|jtt�����fd�}|S(s Returns a sizer for a map field.cs`d}xS|D]K}||}�jd|d|�}|�|�7}�r
|j�q
q
W|S(NitkeyR(t_concrete_classR(t	map_valuettotalR$Rt	entry_msg(tis_message_mapt
message_sizertmessage_type(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyR_s

(R+R!tnumbertFalse(tfield_descriptorR)R((R)R*R+sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMapSizerWs	cCs
d�}|S(sBReturn an encoder for a basic varint value (does not include tag).cSs_|d@}|dL}x5|rK|tjd|B��|d@}|dL}qW|tj|��S(Niii�(tsixtint2byte(twriteRtunused_deterministictbits((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeVarintws

	
((R5((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_VarintEncoderts		cCs
d�}|S(sKReturn an encoder for a basic signed varint value (does not include
  tag).cSsx|dkr|d7}n|d@}|dL}x5|rd|tjd|B��|d@}|dL}q0W|tj|��S(Niii@iii�l(R0R1(R2RR3R4((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeSignedVarint�s


	
((R7((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SignedVarintEncoder�s	cCs&g}t|j|t�dj|�S(s�Encode the given integer as a varint and return the bytes.  This is only
  called at startup time so it doesn't need to be fast.t(t
_EncodeVarinttappendtTruetjoin(Rtpieces((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_VarintBytes�scCstjttj||���S(sCEncode the given tag and return the bytes.  Only called at startup.(R0tbinary_typeR?RR(Rt	wire_type((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytTagBytes�scs���fd�}|S(s_Return a constructor for an encoder for fields of a particular type.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      encode_value:  A function which encodes an individual value, e.g.
        _EncodeVarint().
      compute_value_size:  A function which computes the size of an individual
        value, e.g. _VarintSize().
  cs�|r:t|tj��t�����fd�}|S|ret|�����fd�}|St|�����fd�}|SdS(Ncsf|��d}x|D]}|�|�7}qW�|||�x|D]}�|||�qHWdS(Ni((R2Rt
deterministictsizeR(R	tencode_valuetlocal_EncodeVarintt	tag_bytes(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodePackedField�s


cs/x(|D] }|���|||�qWdS(N((R2RRCR(RERG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeRepeatedField�s

cs|���|||�S(N((R2RRC(RERG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeField�s
(RBRtWIRETYPE_LENGTH_DELIMITEDR:(RRRRHRIRJ(R	RERA(RFRGsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytSpecificEncoder�s((RARER	RL((R	RERAsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_SimpleEncoder�scs����fd�}|S(s�Like SimpleEncoder but additionally invokes modify_value on every value
  before passing it to encode_value.  Usually modify_value is ZigZagEncode.cs�|r=t|tj��t������fd�}|S|rkt|������fd�}|St|������fd�}|SdS(Ncsr|��d}x$|D]}|��|��7}qW�|||�x$|D]}�|�|�|�qNWdS(Ni((R2RRCRDR(R	RERFRRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRH�s


cs5x.|D]&}|���|�|�|�qWdS(N((R2RRCR(RERRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s

cs |���|�|�|�S(N((R2RRC(RERRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s
(RBRRKR:(RRRRHRIRJ(R	RERRA(RFRGsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRL�s((RARER	RRL((R	RERRAsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_ModifiedEncoder�scs(tj������fd�}|S(s�Return a constructor for an encoder for a fixed-width field.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      format:  The format string to pass to struct.pack().
  cs�tj�|rFt|tj��t������fd�}|S|rtt|������fd�}|St|������fd�}|SdS(NcsL|���|t|��|�x!|D]}|��|��q+WdS(N(R
(R2RRCR(tformatRFtlocal_struct_packRGR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRHs

cs2x+|D]#}|��|��|��qWdS(N((R2RR3R(RORPRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRIs

cs|��|��|��S(N((R2RR3(RORPRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJs
(tstructtpackRBRRKR:(RRRRHRIRJ(RORRA(RFRPRGsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRLs	(RQtcalcsize(RARORL((RORRAsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_StructPackEncoder�scsktj����dkr'd��n(�dkr?d��ntd�������fd�}|S(sqReturn a constructor for an encoder for float fields.

  This is like StructPackEncoder, but catches errors that may be due to
  passing non-finite floating-point values to struct.pack, and makes a
  second attempt to encode those values.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      format:  The format string to pass to struct.pack().
  icSsR|tkr|d�n5|tkr2|d�n||krK|d�n�dS(Ns�s��s�(t_POS_INFt_NEG_INF(R2R((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytEncodeNonFiniteOrRaise+s


icSsR|tkr|d�n5|tkr2|d�n||krK|d�n�dS(Ns�s�s�(RURV(R2R((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRW6s


sGCan't encode floating-point values that are %d bytes long (only 4 or 8)cs�tj�|rIt|tj��t�������fd�}|S|rzt|�������fd�}|St|�������fd�}|SdS(Ncsq|���|t|��|�xF|D]>}y|��|��Wq+tk
rh�||�q+Xq+WdS(N(R
tSystemError(R2RRCR(RWRORFRPRGR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRHHs


csWxP|D]H}|��y|��|��Wqtk
rN�||�qXqWdS(N(RX(R2RR3R(RWRORPRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRIUs


csF|��y|��|��Wntk
rA�||�nXdS(N(RX(R2RR3(RWRORPRG(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ_s


(RQRRRBRRKR:(RRRRHRIRJ(RWRORRA(RFRPRGsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRLCs	
(RQRSt
ValueError(RARORL((RWRORRAsD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt_FloatingPointEncoders


$s<Is<Qs<is<qs<fs<dcs�d�d�|rFt|tj��t�����fd�}|S|rwt|tj�����fd�}|St|tj�����fd�}|SdS(s'Returns an encoder for a boolean field.sscsR|���|t|�|�x+|D]#}|r@|��q'|��q'WdS(N(R
(R2RRCR(t
false_byteRFRGt	true_byte(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRH�s


cs<x5|D]-}|��|r*|��q|��qWdS(N((R2RR3R(R[RGR\(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s



cs$|��|r|��S|��S(N((R2RR3(R[RGR\(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s

N(RBRRKR:tWIRETYPE_VARINT(RRRRHRIRJ((R[RFRGR\sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytBoolEncoder�scsZt|tj��t�t�|r=���fd�}|S���fd�}|SdS(s&Returns an encoder for a string field.csNxG|D]?}|jd�}|���|�|�|�||�qWdS(Nsutf-8(R(R2RRCRtencoded(RFRttag(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s


cs9|jd�}|���|�|�|�||�S(Nsutf-8(R(R2RRCR_(RFRR`(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s
N(RBRRKR:R
(RRRRIRJ((RFRR`sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
StringEncoder�scsZt|tj��t�t�|r=���fd�}|S���fd�}|SdS(s%Returns an encoder for a bytes field.cs?x8|D]0}|���|�|�|�||�qWdS(N((R2RRCR(RFRR`(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s

cs*|���|�|�|�||�S(N((R2RRC(RFRR`(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s
N(RBRRKR:R
(RRRRIRJ((RFRR`sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytBytesEncoder�scsZt|tj��t|tj��|r@��fd�}|S��fd�}|SdS(s%Returns an encoder for a group field.cs9x2|D]*}|��|j||�|��qWdS(N(t_InternalSerialize(R2RRCR(tend_tagt	start_tag(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s

cs$|��|j||�|��S(N(Rc(R2RRC(RdRe(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s
N(RBRtWIRETYPE_START_GROUPtWIRETYPE_END_GROUP(RRRRIRJ((RdResD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytGroupEncoder�scsNt|tj��t�|r4��fd�}|S��fd�}|SdS(s'Returns an encoder for a message field.csEx>|D]6}|���||j�|�|j||�qWdS(N(RRc(R2RRCR(RFR`(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRI�s

cs0|���||j�|�|j||�S(N(RRc(R2RRC(RFR`(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ�s
N(RBRRKR:(RRRRIRJ((RFR`sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageEncoder�scsvdjtdtj�tdtj�t|�tdtj�g��tdtj��t����fd�}|S(s�Encoder for extensions of MessageSet.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  R9iiics:|���||j�|�|j||�|��S(N(RRc(R2RRC(t	end_bytesRFtstart_bytes(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJs
(	R=RBRRfR]R?RKRgR:(RRJ((RjRFRksD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pytMessageSetItemEncoders	cs4|j�t|jtt����fd�}|S(s�Encoder for extensions of MessageSet.

  Maps always have a wire format like this:
    message MapEntry {
      key_type key = 1;
      value_type value = 2;
    }
    repeated MapEntry map = N;
  cs_|rt|j��n|}x:|D]2}�jd|d||�}�|||�q%WdS(NR$R(tsortedtkeysR%(R2RRCt
value_keysR$R((tencode_messageR+(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyRJ5s
(R+RiR,R-(R.RJ((RpR+sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt
MapEncoder&s	(Dt__doc__t
__author__RQR0tgoogle.protobuf.internalRRURVRRRRRRt
Int32Sizert
Int64Sizert	EnumSizertUInt32SizertUInt64SizertZigZagEncodetSInt32SizertSInt64SizertFixed32Sizert
SFixed32Sizert
FloatSizertFixed64Sizert
SFixed64SizertDoubleSizert	BoolSizerRRR R!R#R/R6R8R:t_EncodeSignedVarintR?RBRMRNRTRZR]tInt32EncodertInt64EncodertEnumEncodert
UInt32Encodert
UInt64Encodert
SInt32Encodert
SInt64EncodertWIRETYPE_FIXED32tFixed32EncodertWIRETYPE_FIXED64tFixed64EncodertSFixed32EncodertSFixed64EncodertFloatEncodert
DoubleEncoderR^RaRbRhRiRlRq(((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/encoder.pyt<module>Asn						!													
	)	"	&	R	%					 PK�\9��_�_�$protobuf/internal/python_message.pyonu�[����
���hc@s!dZdZddlmZddlZddlZddlZddlZddlm	Z	ddlm
Z
ddlmZddlmZdd	lm
Z
dd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZejZdZdefd��YZd�Zd�Zd�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,d#�Z-d$�Z.d%�Z/d&�Z0d'�Z1d(�Z2d)�Z3d*�Z4d+Z5d,Z6d-�Z7d.�Z8d/�Z9d0�Z:d1�Z;d2�Z<d3�Z=d4�Z>d5�Z?d6�Z@d7�ZAd8�ZBd9�ZCd:�ZDd;�ZEd<�ZFd=�ZGd>�ZHd?�ZId@�ZJdA�ZKdB�ZLdC�ZMdDeNfdE��YZOdFeOfdG��YZPdHeNfdI��YZQdS(Js
Contains a metaclass and helper functions used to create
protocol message classes from Descriptor objects at runtime.

Recall that a metaclass is the "type" of a class.
(A class is to a metaclass what an instance is to a class.)

In this case, we use the GeneratedProtocolMessageType metaclass
to inject all the useful functionality into the classes
output by the protocol compiler at compile-time.

The upshot of all this is that the real implementation
details for ALL pure-Python protocol buffers are *here in
this file*.
s#robinson@google.com (Will Robinson)i����(tBytesION(tapi_implementation(t
containers(tdecoder(tencoder(tenum_type_wrapper(tmessage_listener(t
type_checkers(twell_known_types(twire_format(t
descriptor(tmessage(ttext_formatsgoogle.protobuf.AnytGeneratedProtocolMessageTypecBs&eZdZdZd�Zd�ZRS(sQMetaclass for protocol message classes created at runtime from Descriptors.

  We add implementations for all methods described in the Message class.  We
  also create properties to allow getting/setting all fields in the protocol
  message.  Finally, we create slots to prevent users from accidentally
  "setting" nonexistent fields in the protocol message, which then wouldn't get
  serialized / deserialized properly.

  The protocol compiler currently uses this metaclass to create protocol
  message classes at runtime.  Clients can also manually create their own
  classes at runtime, as in this example:

  mydescriptor = Descriptor(.....)
  factory = symbol_database.Default()
  factory.pool.AddDescriptor(mydescriptor)
  MyProtoClass = factory.GetPrototype(mydescriptor)
  myproto_instance = MyProtoClass()
  myproto.foo_field = 23
  ...
  t
DESCRIPTORcCs~|tj}|jtjkr9|tj|jf7}nt||�t||�tt|�}|j||||�}|S(sCustom allocation for runtime-generated class types.

    We override __new__ because this is apparently the only place
    where we can meaningfully set __slots__ on the class we're creating(?).
    (The interplay between metaclasses and slots is not very well-documented).

    Args:
      name: Name of the class (ignored, but required by the
        metaclass protocol).
      bases: Base classes of the class we're constructing.
        (Should be message.Message).  We ignore this field, but
        it's required by the metaclass protocol
      dictionary: The class dictionary of the class we're
        constructing.  dictionary[_DESCRIPTOR_KEY] must contain
        a Descriptor object describing this protocol message
        type.

    Returns:
      Newly-allocated class.
    (	R
t_DESCRIPTOR_KEYt	full_nameRtWKTBASESt&_AddClassAttributesForNestedExtensionst	_AddSlotstsupert__new__(tclstnametbasest
dictionaryR
t
superclasst	new_class((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRis


cCs�|tj}i|_|jrP|j�jrPtj|�df|jtj	<nx|j
D]}t||�qZW||_t
||�t||�t||�t||�t|�t||�t||�tt|�}|j|||�dS(s�Here we perform the majority of our work on the class.
    We add enum getters, an __init__ method, implementations
    of all Message methods, and properties for all fields
    in the protocol type.

    Args:
      name: Name of the class (ignored, but required by the
        metaclass protocol).
      bases: Base classes of the class we're constructing.
        (Should be message.Message).  We ignore this field, but
        it's required by the metaclass protocol
      dictionary: The class dictionary of the class we're
        constructing.  dictionary[_DESCRIPTOR_KEY] must contain
        a Descriptor object describing this protocol message
        type.
    N(R
Rt_decoders_by_tagthas_optionst
GetOptionstmessage_set_wire_formatRtMessageSetItemDecodertNonetMESSAGE_SET_ITEM_TAGtfieldst_AttachFieldHelperst_concrete_classt_AddEnumValuest_AddInitMethodt_AddPropertiesForFieldst_AddPropertiesForExtensionst_AddStaticMethodst_AddMessageMethodst_AddPrivateHelperMethodsRt__init__(RRRRR
tfieldR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR-�s"
		"	






(t__name__t
__module__t__doc__RRR-(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR
Ns	cCs|S(sReturns the name of the public property attribute which
  clients can use to get and (in some cases) set the value
  of a protocol message field.

  Args:
    proto_field_name: The protocol message field name, exactly
      as it appears (or would appear) in a .proto file.
  ((tproto_field_name((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
_PropertyName�scCs�t|t�s"td|��n|jsAtd|j��n|js`td|j��n|j|jk	r�td|j|jj|jjf��ndS(s0Verify that the given extension handle is valid.s3HasExtension() expects an extension handle, got: %ss"%s" is not an extension.s""%s" is missing a containing_type.sKExtension "%s" extends message type "%s", but this message is of type "%s".N(t
isinstancet_FieldDescriptortKeyErrortis_extensionRtcontaining_typeR(Rtextension_handle((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_VerifyExtensionHandle�s
			c	Cs)ddddddddd	g	|d
<dS(sAdds a __slots__ entry to dictionary, containing the names of all valid
  attributes for this message type.

  Args:
    message_descriptor: A Descriptor instance describing this message type.
    dictionary: Class dictionary to which we'll add a '__slots__' entry.
  t_cached_byte_sizet_cached_byte_size_dirtyt_fieldst_unknown_fieldst_is_present_in_parentt	_listenert_listener_for_childrent__weakref__t_oneofst	__slots__N((tmessage_descriptorR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�scCsI|joH|jjoH|jj�joH|jtjkoH|jtj	kS(N(
R7R8RRRttypeR5tTYPE_MESSAGEtlabeltLABEL_OPTIONAL(R.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_IsMessageSetExtension�s
	cCs.|jtjko-|jjo-|jj�jS(N(RFR5RGtmessage_typeRRt	map_entry(R.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_IsMapFieldscCs |jjd}|jtjkS(Ntvalue(RKtfields_by_nametcpp_typeR5tCPPTYPE_MESSAGE(R.t
value_type((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_IsMessageMapField
scs��jtjk��o'tj�j�}|s9t}ng�jjdkrf�j	o`�j
�j}n:�j	o��j
�jd�o��j
�jtk}|}t
����r�tj��}tj�t���}nqt��rtj�j�}tj�j�}n>tj�j�j�|�}tj�j�j�|�}|�_|�_t���_����fd�}|tj�jt��r�tj�j�r�|tjt�ndS(Ntproto2tpackedcs�tj�j|�}�j}|tjkrHtj��rHtj}nd}�j
dk	rf�}n�r�t��}tj
�t��|�}n%tj|�j�|��j�}||f�j|<dS(N(RtTagBytestnumberRFR5t	TYPE_ENUMRtSupportsOpenEnumst
TYPE_INT32R!tcontaining_oneofRSRt
MapDecodert_GetInitializeDefaultForMaptTYPE_TO_DECODERt_default_constructorR(twiretypet	is_packedt	tag_bytestdecode_typetoneof_descriptortis_message_mapt
field_decoder(Rtfield_descriptortis_map_entrytis_repeated(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
AddDecoder4s"		
( RHR5tLABEL_REPEATEDR	tIsTypePackableRFtFalseR8tsyntaxRRRUtHasFieldRMRt
MapEncodertMapSizerRSRJtMessageSetItemEncoderRWtMessageSetItemSizerRtTYPE_TO_ENCODERt
TYPE_TO_SIZERt_encodert_sizert _DefaultValueConstructorForFieldR_tFIELD_TYPE_TO_WIRE_TYPEtWIRETYPE_LENGTH_DELIMITEDtTrue(RRgtis_packableRathas_packed_falset
field_encodertsizerRj((RRgRhRisK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR$sB				

		cCs4|j}x$|j�D]\}}|||<qWdS(N(textensions_by_nametitems(R
Rtextension_dicttextension_nametextension_field((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRUs	cCs^xW|jD]L}t||jtj|��x'|jD]}t||j|j�q6Wq
WdS(sSets class-level attributes for all enum fields defined in this message.

  Also exporting a class-level object that can name enum values.

  Args:
    descriptor: Descriptor object for this message type.
    cls: Class we're constructing for this message type.
  N(t
enum_typestsetattrRRtEnumTypeWrappertvaluesRW(R
Rt	enum_typet
enum_value((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR&\s	cs��jtjkr(td�j��n�jj}tj|d��|d�t	��rv���fd�}|Stj������fd�}|SdS(Ns&map_entry set on non-repeated field %stkeyRNcstj|j�j��j�S(N(Rt
MessageMapRARK(R(R.tkey_checkertvalue_field(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakeMessageMapDefaulttscstj|j���j�S(N(Rt	ScalarMapRARK(R(R.R�t
value_checker(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakePrimitiveMapDefault{s(
RHR5Rkt
ValueErrorRRKRORtGetTypeCheckerRS(R.ROR�R�((R.R�R�R�sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR]ks
cs�t��rt��S�jtjkr��jrV�jgkrVtd�j��n�jtj	kr��j
��fd�}|Stj����fd�}|Sn�jtj	kr��j
���fd�}|S�fd�}|S(s�Returns a function which returns a default value for a field.

  Args:
    field: FieldDescriptor object for this field.

  The returned function has one argument:
    message: Message instance containing this field, or a weakref proxy
      of same.

  That function in turn returns a default value for this field.  The default
    value may refer back to |message| via a weak reference.
  s/Repeated field default value not empty list: %scstj|j�j�S(N(RtRepeatedCompositeFieldContainerRARK(R(R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakeRepeatedMessageDefault�scstj|j��S(N(RtRepeatedScalarFieldContainerRA(R(ttype_checker(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakeRepeatedScalarDefault�scs>�j�}|j�jdk	r0t|��n|j�|S(N(R%t_SetListenerR[R!t_OneofListenerRA(Rtresult(R.RK(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakeSubMessageDefault�s

cs�jS(N(t
default_value(R(R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakeScalarDefault�s(
RMR]RHR5Rkthas_default_valueR�R�RPRQRKRR�(R.R�R�R�R�((R.RKR�sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRx�s&
		cCs�tj�d}t|j�dkrYt|�tkrYtdt|�||f�}ntjt|�|tj�d�dS(sCRe-raise the currently-handled TypeError with the field name added.is%s for field %s.%siN(	tsystexc_infotlentargsRFt	TypeErrortstrtsixtreraise(tmessage_namet
field_nametexc((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_ReraiseTypeErrorWithFieldName�s'"cs:d����fd�}d|_d|_||_dS(sAdds an __init__ method to cls.cSsXt|tj�rTy|j|jSWqTtk
rPtd|j|f��qTXn|S(sConvert a string or integer enum value to an integer.

    If the value is a string, it is converted to the enum value in
    enum_type with the same name.  If the value is not a string, it's
    returned as-is.  (No conversion or bounds-checking is done.)
    s Enum type %s: unknown label "%s"(R4R�tstring_typestvalues_by_nameRWR6R�R(R�RN((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_GetIntegerEnumValue�s
c	s�d|_t|�dk|_i|_i|_d|_t|_tj	�|_
t|�|_xs|j
�D]e\}}t�|�}|dkr�td�j|f��n|dkr�qmn|jtjkr�|j|�}|jtjkr�t|�rFt|�r6x3|D]}||j||�qWq�|j|�q�x�|D]8}t|t�rr|j|�qM|j�j|�qMWnG|jtjkr�g|D]}�|j |�^q�}n|j!|�||j|<qm|jtjkrs|j|�}|}t|t�r.|j"j#|�}ny|j|�Wn!tk
rbt$�j|�nX||j|<qm|jtjkr��|j |�}nyt%|||�Wqmtk
r�t$�j|�qmXqmWdS(Nis,%s() got an unexpected keyword argument '%s'((&R;R�R<R=RCR>RmR?tmessage_listener_modtNullMessageListenerR@t	_ListenerRAR�t_GetFieldByNameR!R�RRHR5RkR_RPRQRMRSt	MergeFromtupdateR4tdicttaddtCPPTYPE_ENUMR�textendRKR%R�R�(	tselftkwargsR�tfield_valueR.tcopyR�tvaltnew_val(R�RE(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytinit�s`					

%


N(R!R0R1R-(RERR�((R�REsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR'�s
	=		cCs@y|j|SWn*tk
r;td|j|f��nXdS(s�Returns a field descriptor by field name.

  Args:
    message_descriptor: A Descriptor describing all fields in message.
    field_name: The name of the field to retrieve.
  Returns:
    The field descriptor associated with the field name.
  s&Protocol message %s has no "%s" field.N(ROR6R�R(RER�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�s
	
cCsCx|jD]}t||�q
W|jr?td��|_ndS(s=Adds properties for all fields in this protocol message type.cSs
t|�S(N(t_ExtensionDict(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt<lambda>/tN(R#t_AddPropertiesForFieldt
is_extendabletpropertyt
Extensions(R
RR.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR('s	cCs{|jj�d}t|||j�|jtjkrHt||�n/|jtj	krjt
||�n
t||�dS(s#Adds a public property for a protocol message field.
  Clients can use this property to get and (in the case
  of non-repeated scalar fields) directly set the value
  of a protocol message field.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  t
_FIELD_NUMBERN(RtupperR�RWRHR5Rkt_AddPropertiesForRepeatedFieldRPRQt*_AddPropertiesForNonRepeatedCompositeFieldt'_AddPropertiesForNonRepeatedScalarField(R.Rt
constant_name((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�2scsv�j�t��}�fd�}d|_d�|_�fd�}d�}t||t||d|��dS(sAdds a public property for a "repeated" protocol message field.  Clients
  can use this property to get the value of the field, which will be either a
  _RepeatedScalarFieldContainer or _RepeatedCompositeFieldContainer (see
  below).

  Note that when clients add values to these containers, we perform
  type-checking in the case of repeated scalar fields, and we also set any
  necessary "has" bits as a side-effect.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  csI|jj��}|dkrE�j|�}|jj�|�}n|S(N(R=tgetR!R_t
setdefault(R�R�(R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytgetter\s
sGetter for %s.cstd���dS(NsIAssignment not allowed to repeated field "%s" in protocol message object.(tAttributeError(R�t	new_value(R2(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytsetteross/Magic attribute generated for "%s" proto field.tdocN(RR3R!R0R1R�R�(R.Rt
property_nameR�R�R�((R.R2sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�Ks		

c	s��j}t|�}tj����j�t�}�jjdk}��fd�}d	|_	d||_
|o}�j����fd���jr���fd�}n�}d	|_	d||_
d|}t||t
||d|��d	S(
s�Adds a public property for a nonrepeated, scalar protocol message field.
  Clients can use this property to get and directly set the value of the field.
  Note that when the client sets the value of a field by using this property,
  all necessary "has" bits are set as a side-effect, and we also perform
  type-checking.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  tproto3cs|jj���S(N(R=R�(R�(R�R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��ssGetter for %s.csY�j|�}�r2|r2|jj�d�n
||j�<|jsU|j�ndS(N(t
CheckValueR=tpopR!R<t	_Modified(R�R�(tclear_when_set_to_defaultR.R�(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytfield_setter�s

	cs�||�|j��dS(N(t_UpdateOneofState(R�R�(R.R�(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s
sSetter for %s.s/Magic attribute generated for "%s" proto field.R�N(RR3RR�R�tsetR8RnR!R0R1R[R�R�(	R.RR2R�tvalid_valuest	is_proto3R�R�R�((R�R�R.R�R�sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�ws$				
		

csv�j�t��}�fd�}d|_d�|_�fd�}d�}t||t||d|��dS(sNAdds a public property for a nonrepeated, composite protocol message field.
  A composite field is a "group" or "message" field.

  Clients can use this property to get the value of the field, but cannot
  assign to the property directly.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  csI|jj��}|dkrE�j|�}|jj�|�}n|S(N(R=R�R!R_R�(R�R�(R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s
sGetter for %s.cstd���dS(NsJAssignment not allowed to composite field "%s" in protocol message object.(R�(R�R�(R2(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��ss/Magic attribute generated for "%s" proto field.R�N(RR3R!R0R1R�R�(R.RR�R�R�R�((R.R2sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s
		

cCs�|j}x=|j�D]/\}}|j�d}t|||j�qW|jdk	r�|jj}|j||_|j	||_	ndS(s=Adds properties for all fields in this protocol message type.R�N(
R�R�R�R�RWtfileR!tpoolt_extensions_by_numbert_extensions_by_name(R
RR�R�R�R�R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR)�s	cs@�fd�}t|��_�fd�}t|��_dS(Ncs3�j|_�jjjj|�t�|�dS(N(RR8R�R�tAddExtensionDescriptorR$(R9(R(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytRegisterExtension�scs��}|j|�|S(N(tMergeFromString(tsR(R(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
FromString�s	
(tstaticmethodR�R�(RR�R�((RsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR*�scCsM|djtjkr$t|d�S|djtjkrE|djStSdS(s�Given a (FieldDescriptor, value) tuple from _fields, return true if the
  value should be included in the list returned by ListFields().iiN(RHR5RktboolRPRQR?R{(titem((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
_IsPresent�s
cCsd�}||_dS(s Helper for _AddMessageMethods().cSsEg|jj�D]}t|�r|^q}|jdd��|S(NR�cSs|djS(Ni(RW(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�R�(R=R�R�tsort(R�R�t
all_fields((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
ListFields	s.N(R�(RERR�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddListFieldsMethods	s:Protocol message has no non-repeated submessage field "%s"s/Protocol message has no non-repeated field "%s"cs�|jdk}|rtnt�i�x^|jD]S}|jtjkrOq1n|rw|jtjkrw|j	rwq1n|�|j
<q1W|s�x!|jD]}|�|j
<q�Wn���fd���|_dS(s Helper for _AddMessageMethods().R�cs�y�|}Wn!tk
r1t�|��nXt|tj�rwy�||j|j�SWq�tk
rstSXnD|jt	j
kr�|jj|�}|dk	o�|jS||jkSdS(N(R6R�R4tdescriptor_modtOneofDescriptorRCRRmRPR5RQR=R�R!R?(R�R�R.RN(Rot	error_msgthassable_fields(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRo(s

N(
Rnt_Proto3HasErrort_Proto2HasErrorR#RHR5RkRPRQR[RtoneofsRo(RERR�R.toneof((RoR�R�sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddHasFieldMethods
cs�fd�}||_dS(s Helper for _AddMessageMethods().csy�j|}Wnrtk
r�y4�j|}||jkrP|j|}ndSWq�tk
r�td�j|f��q�XnX||jkr�t|j|d�r�|j|j�n|j|=|jj	|j
d�|kr�|j|j
=q�n|j�dS(Ns(Protocol message %s() has no "%s" field.tInvalidateIterators(
ROR6toneofs_by_nameRCR�RR=thasattrR�R�R[R!R�(R�R�R.(RE(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
ClearField?s$



N(R�(RERR�((REsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddClearFieldMethod=s!cCsd�}||_dS(s Helper for _AddMessageMethods().cSs7t||�||jkr)|j|=n|j�dS(N(R:R=R�(R�R9((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytClearExtensiones

N(R�(RR�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddClearExtensionMethodcs	cCsd�}||_dS(s Helper for _AddMessageMethods().cSs}t||�|jtjkr5td|j��n|jtjkrl|jj	|�}|dk	ok|jS||jkSdS(Ns"%s" is repeated.(R:RHR5RkR6RRPRQR=R�R!R?(R�R9RN((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytHasExtensionqs
N(R(RR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddHasExtensionMethodos	
cCs�ddlm}|j�}|j}|s/dS|jd�d}|jj|�}|dkrddS|j|�}|�}|j	|j
�|S(stUnpacks Any message and returns the unpacked message.

  This internal method is different from public Any Unpack method which takes
  the target message as argument. _InternalUnpackAny method does not have
  target message type and need to find the message type in descriptor pool.

  Args:
    msg: An Any message to be unpacked.

  Returns:
    The unpacked message.
  i����(tsymbol_databaset/N(tgoogle.protobufRtDefaultttype_urlR!tsplitR�tFindMessageTypeByNametGetPrototypetParseFromStringRN(tmsgRtfactoryRt	type_nameR
t
message_classR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_InternalUnpackAny}s		cCsd�}||_dS(s Helper for _AddMessageMethods().cSs�t|tj�s%|j|jkr)tS||kr9tS|jjtkr|t|�}t|�}|r||r|||kSn|j	�|j	�ks�tSt
|j�}|j�t
|j�}|j�||kS(N(
R4tmessage_modtMessageRRmR{Rt_AnyFullTypeNameRR�tlistR>R�(R�tothertany_atany_btunknown_fieldstother_unknown_fields((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__eq__�s"


N(R(RERR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddEqualsMethod�s	cCsd�}||_dS(s Helper for _AddMessageMethods().cSs
tj|�S(N(RtMessageToString(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__str__�sN(R(RERR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
_AddStrMethod�s	cCsd�}||_dS(s Helper for _AddMessageMethods().cSs
tj|�S(N(RR(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__repr__�sN(R(RERR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddReprMethod�s	cCsd�}||_dS(s Helper for _AddMessageMethods().cSstj|dt�jd�S(Ntas_utf8sutf-8(RRR{tdecode(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__unicode__�sN(R#(tunused_message_descriptorRR#((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddUnicodeMethod�s	cCsIytj|}|||�SWn$tk
rDtjd|��nXdS(s Returns the number of bytes needed to serialize a non-repeated element.
  The returned byte count includes space for tag information and any
  other additional space associated with serializing value.

  Args:
    value: Value we're serializing.
    field_number: Field number of this value.  (Since the field number
      is stored as part of a varint-encoded tag, this has an impact
      on the total bytes required to serialize the value).
    field_type: The type of the field.  One of the TYPE_* constants
      within FieldDescriptor.
  sUnrecognized field type: %dN(RtTYPE_TO_BYTE_SIZE_FNR6RtEncodeError(RNtfield_numbert
field_typetfn((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_BytesForNonRepeatedElement�s



cCsd�}||_dS(s Helper for _AddMessageMethods().cSs�|js|jSd}|j}|j�jrg|jdj|j�}||jdj|j�7}ndx-|j	�D]\}}||j|�7}qtWx1|j
D]&\}}|t|�t|�7}q�W||_t|_t|j
_|S(NiR�RN(R<R;RRRLRORwR�RNR�R>R�RmRAtdirty(R�tsizeR
RgR�Rbtvalue_bytes((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytByteSize�s		 		N(R/(RERR/((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddByteSizeMethod�s	cCsd�}||_dS(s Helper for _AddMessageMethods().c[sPg}|j�sCtjd|jjdj|j��f��n|j|�S(Ns)Message %s is missing required fields: %st,(t
IsInitializedRR'RRtjointFindInitializationErrorstSerializePartialToString(R�R�terrors((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytSerializeToStrings(N(R7(RERR7((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddSerializeToStringMethods	cCs+d�}||_dd�}||_dS(s Helper for _AddMessageMethods().c[s&t�}|j|j|�|j�S(N(Rt_InternalSerializetwritetgetvalue(R�R�tout((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR5s	cSs�|dkrtj�}nt|�}|j}|j�jr||jdj||j	|�|jdj||j
|�n^x-|j�D]\}}|j|||�q�Wx+|jD] \}}||�||�q�WdS(NR�RN(
R!Rt)IsPythonDefaultSerializationDeterministicR�RRRLRORvR�RNR�R>(R�twrite_bytest
deterministicR
RgR�RbR.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytInternalSerializes	


N(R5R!R9(RERR5R@((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt"_AddSerializePartialToStringMethods		csad�}||_tj�tj�|j�|jdk�����fd�}||_dS(s Helper for _AddMessageMethods().cSs�t|�}y1|j|d|�|kr<tjd��nWnJttfk
retjd��n%tjk
r�}tj|��nX|S(NisUnexpected end-group tag.sTruncated message.(R�t_InternalParseRtDecodeErrort
IndexErrorR�tstructterror(R�t
serializedtlengthte((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�8sR�cs|j�|j}|j}x�||kr�||�\}}�j|d�\}}	|dkr�|}
�||||�}|dkr�|S�s�tj�r�|s�g}|_n|j|||
|!f�n|}q||||||�}|	r|j|	�qqW|S(Ni����(NN(	R�R=R>R�R!Rt&GetPythonProto3PreserveUnknownsDefaulttappendR�(R�tbuffertpostendt
field_dicttunknown_field_listRbtnew_posRft
field_desctvalue_start_pos(tdecoders_by_tagR�t
local_ReadTagtlocal_SkipField(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
InternalParseLs,
			N(R�RtReadTagt	SkipFieldRRnRB(RERR�RW((RTR�RURVsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddMergeFromStringMethod6s	
				cseg|jD]}|jtjkr
|^q
�d�fd�}||_�fd�}||_dS(s[Adds the IsInitialized and FindInitializationError methods to the
  protocol message class.cs`xf�D]^}||jks?|jtjkr|j|jr|dk	ra|j|j��ntSqWx�t	|jj
��D]�\}}|jtjkr|jtjkr|j
jr�|j
j�jr�qnx|D]8}|j�s�|dk	r|j|j��ntSq�WqX|jrX|j�rX|dk	rQ|j|j��ntSqqWtS(sChecks if all required fields of a message are set.

    Args:
      errors:  A list which, if provided, will be populated with the field
               paths of all missing required fields.

    Returns:
      True iff the specified message has all required fields set.
    N(R=RPR5RQR?R!R�R4RmRR�RHRkRKRRRLR2R{(R�R6R.RNtelement(trequired_fields(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR2ns.

"
cs�g}x3�D]+}|j|j�s
|j|j�q
q
Wxw|j�D]i\}}|jtjkrI|jr�d|j}n	|j}t	|�r�t
|�r�xX|D]M}||}d||f}|j�}|g|D]}	||	^q�7}q�Wq�q�|jtj
krxx�tt|��D]M}
||
}d||
f}|j�}|g|D]}	||	^qZ7}q$Wq�|d}|j�}|g|D]}	||	^q�7}qIqIW|S(s�Finds required fields which are not initialized.

    Returns:
      A list of strings.  Each string is a path to an uninitialized field from
      the top-level message, e.g. "foo.bar[5].baz".
    s(%s)s%s[%s].s%s[%d].t.(RoRRKR�RPR5RQR7RRMRSR4RHRktrangeR�(R�R6R.RNRR�R[tprefixt
sub_errorsRFti(R\(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR4�s6
		

(
(
(N(R#RHR5tLABEL_REQUIREDR!R2R4(RERR.R2R4((R\sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddIsInitializedMethodgs'	,cs4tj�tj����fd�}|�_dS(Ncszt|��s1td�j|jjf��n|j�|j}x�|jj�D]�\}}|j�kr�|j|�}|dkr�|j
|�}|||<n|j|�qT|j�kr|j
r>|j|�}|dkr|j
|�}|||<n|j|�q>qT||j|<|jrT|j|�qTqTW|jrv|js`g|_n|jj|j�ndS(NsLParameter to MergeFrom() must be instance of same class: expected %s got %s.(R4R�R/t	__class__R�R=R�RHR�R!R_R�RPR?R[R�R>R�(R�RR#R.RNR�(RQRkR(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s6
	
	

			(R5RkRQR�(RR�((RQRkRsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddMergeFromMethod�s		%cs�fd�}||_dS(Ncswy�j|}Wn!tk
r4td|��nX|jj|d�}|dk	ro|j|j�ro|jSdSdS(sDReturns the name of the currently set field inside a oneof, or None.s)Protocol message has no oneof "%s" field.N(R�R6R�RCR�R!RoR(R�t
oneof_nameR.tnested_field(RE(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
WhichOneof�s
(Rh(RERRh((REsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddWhichOneofMethod�scCsd�}||_dS(NcSst|�d|j�fS(N((RFt__getstate__(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
__reduce__s(Rk(RRk((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddReduceMethods	cCs)i|_d|_i|_|j�dS(N((R=R>RCR�(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_Clear
s			cCsyg|_xi|j�D][\}}|jtjkr|jtjkrdx%|D]}|j�qMWqq|j�qqWdS(N(R>R�RPR5RQRHRktDiscardUnknownFields(R�R.RNtsub_message((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_DiscardUnknownFieldss	
cCs+|dkrtj�|_n	||_dS(N(R!R�R�R@(R�tlistener((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�scCs�t||�t||�t||�|jrGt|�t|�nt||�t||�t||�t	||�t
||�t||�t||�t
||�t||�t|�t||�t|�t|_t|_t|_dS(s3Adds implementations of all Message methods to cls.N(R�R�R�R�RRRRR R%R0R8RARZRcReRiRlRmtClearRpRnR�(RER((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR+$s*


	













		cCs1d�}d�}||_||_||_dS(s5Adds implementation of private helper methods to cls.cSs;|js7t|_t|j_t|_|jj�ndS(swSets the _cached_byte_size_dirty bit to true,
    and propagates this to our listener iff this was a state change.
    N(R<R{RAR,R?R@tModified(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRsAs
				cSsE|jj|j|�}||k	rA|j|=||j|j<ndS(s�Sets field as the active field in its containing oneof.

    Will also delete currently active field in the oneof, if it is different
    from the argument. Does not mark the message as modified.
    N(RCR�R[R=(R�R.tother_field((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�Ps
N(R�tSetInParentR�(RERRsR�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR,>s
				R�cBs eZdZd�Zd�ZRS(s0MessageListener implementation that a parent message registers with its
  child message.

  In order to support semantics like:

    foo.bar.baz.qux = 23
    assert foo.HasField('bar')

  ...child objects must have back references to their parents.
  This helper class is at the heart of this support.
  cCs=t|tj�r||_ntj|�|_t|_dS(s�Args:
      parent_message: The message whose _Modified() method we should call when
        we receive Modified() messages.
    N(R4tweakreft	ProxyTypet_parent_message_weakreftproxyRmR,(R�tparent_message((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR-ns	cCs6|jr
dSy|jj�Wntk
r1nXdS(N(R,RxR�tReferenceError(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRs�s	
(R/R0R1R-Rs(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�`s	R�cBs eZdZd�Zd�ZRS(sCSpecial listener implementation for setting composite oneof fields.cCs#tt|�j|�||_dS(s�Args:
      parent_message: The message whose _Modified() method we should call when
        we receive Modified() messages.
      field: The descriptor of the field being set in the parent message.
    N(RR�R-t_field(R�RzR.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR-�scCsBy*|jj|j�tt|�j�Wntk
r=nXdS(sEAlso updates the state of the containing oneof in the parent message.N(RxR�R|RR�RsR{(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRs�s

(R/R0R1R-Rs(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s		R�cBsVeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	s�Dict-like container for supporting an indexable "Extensions"
  field on proto instances.

  Note that in all cases we expect extension handles to be
  FieldDescriptors.
  cCs
||_dS(sMextended_message: Message instance for which we are the Extensions dict.
    N(t_extended_message(R�textended_message((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR-�scCs�t|j|�|jjj|�}|dk	r5|S|jtjkr\|j|j�}nV|j	tj
kr�|jj�}y|j
|jj�Wq�tk
r�q�Xn|jS|jjj||�}|S(s8Returns the current value of the given extension handle.N(R:R}R=R�R!RHR5RkR_RPRQRKR%R�RAR{R�R�(R�R9R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__getitem__�s 
cCs�t||j�stS|jj�}|jj�}g|D]}|jr;|^q;}g|D]}|jr]|^q]}||kS(N(R4RdRmR}R�R7(R�Rt	my_fieldstother_fieldsR.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�s""cCs||kS(N((R�R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__ne__�scCstd��dS(Nsunhashable object(R�(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__hash__�scCs�t|j|�|jtjks4|jtjkrJtd|j��nt	j
|�}|j|�|jj|<|jj
�dS(slIf extension_handle specifies a non-repeated, scalar extension
    field, sets the value of that field.
    sKCannot assign to extension "%s" because it is a repeated or composite type.N(R:R}RHR5RkRPRQR�RRR�R�R=R�(R�R9RNR�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__setitem__�scCs|jjj|d�S(s�Tries to find a known extension with the specified name.

    Args:
      name: Extension full name.

    Returns:
      Extension field descriptor.
    N(R}R�R�R!(R�R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_FindExtensionByNames	cCs|jjj|d�S(s�Tries to find a known extension with the field number.

    Args:
      number: Extension field number.

    Returns:
      Extension field descriptor.
    N(R}R�R�R!(R�RW((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_FindExtensionByNumbers	(R/R0R1R-RRR�R�R�R�R�(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s		!	
				(RR1t
__author__tioRRER�RvR�tgoogle.protobuf.internalRRRRRRR�RRR	RR
R�RRRtFieldDescriptorR5RRFR
R3R:RRJRMRSR$RR&R]RxR�R'R�R(R�R�R�R�R)R*R�R�R�R�R�R�RRRRRR R%R+R0R8RARZRcReRiRlRmRpR�R+R,tobjectR�R�R�(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt<module>1s�	k							C				7		T				,	8	,				
	*	&			(								 	1	_	,							".PK�\%aȃ��(protobuf/internal/text_encoding_test.pyonu�[����
���hc@s�dZyddlZWnek
r5ddlZnXddlmZddddgZd
ejfd��YZe	dkr�ej
�ndS(s(Tests for google.protobuf.text_encoding.i����N(t
text_encodingsfoo\rbar\nbaz\tsfoo
bar
baz	s"\'full of \"sound\" and \"fury\"\'s'full of "sound" and "fury"'ssigni\\fying\\ nothing\\ssigni\fying\ nothing\s\010\t\n\013\014\rs	\t\n\rs	

tTextEncodingTestCasecBseZd�Zd�ZRS(cCs\xUtD]M\}}}|j|tj|dt��|j|tj|dt��qWdS(Ntas_utf8(tTEST_VALUEStassertEqualRtCEscapetFalsetTrue(tselftescapedtescaped_utf8t	unescaped((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/text_encoding_test.pyttestCEscape9s
		cCsPxItD]A\}}}|j|tj|��|j|tj|��qWdS(N(RRRt	CUnescape(RR	R
R((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/text_encoding_test.pyt
testCUnescape@s(t__name__t
__module__RR(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/text_encoding_test.pyR8s	t__main__(sfoo\rbar\nbaz\tsfoo\rbar\nbaz\tsfoo
bar
baz	(s"\'full of \"sound\" and \"fury\"\'s"\'full of \"sound\" and \"fury\"\'s'full of "sound" and "fury"'(ssigni\\fying\\ nothing\\ssigni\\fying\\ nothing\\ssigni\fying\ nothing\(s\010\t\n\013\014\rs	\t\n\rs	

(t__doc__t	unittest2tunittesttImportErrortgoogle.protobufRRtTestCaseRRtmain(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/text_encoding_test.pyt<module> s(
	PK�\���u�-�-)protobuf/internal/unknown_fields_test.pycnu�[����
���hc@sMdZdZyddlZWnek
r;ddlZnXddlmZddlmZddlmZddl	m
Z
ddl	mZdd	l	mZdd
l	m
Z
ddl	mZddl	mZdd
l	mZejZd�Zdefd��YZdefd��YZdefd��YZedkrIej�ndS(sJTest for preservation of unknown fields in the pure Python implementation.s!bohdank@google.com (Bohdan Koval)i����N(tunittest_mset_pb2(tunittest_pb2(tunittest_proto3_arena_pb2(tapi_implementation(tencoder(tmessage_set_extensions_pb2(tmissing_enum_values_pb2(t	test_util(ttesting_refleaks(t
type_checkerscCs4tjtj�dko'tj�dkd�|�S(Ntcppis7Addtional test for pure python involved protect members(tunittesttskipIfRtTypetVersion(tfunc((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt(SkipCheckUnknownFieldIfCppImplementation;s!tUnknownFieldsTestcBsYeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	cCsftjj|_tj�|_tj|j�|jj�|_tj	�|_
|j
j|j�dS(N(RtTestAllTypest
DESCRIPTORt
descriptort
all_fieldsRtSetAllFieldstSerializeToStringtall_fields_datatTestEmptyMessaget
empty_messagetParseFromString(tself((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pytsetUpCscCs)|jj�}|j||jk�dS(N(RRt
assertTrueR(Rtdata((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt
testSerializeKscCs^tj�}|j|j�|r>|j|j|j��n|jdt|j���dS(Ni(RRRRtassertEqualRtlen(Rtpreservetmessage((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pytexpectSerializeProto3Rs
cCsFtj�}|j|�tj|�|j|�tj|�dS(N(Rt&GetPythonProto3PreserveUnknownsDefaultR%t&SetPythonProto3PreserveUnknownsDefault(Rtdefault_preserve((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestSerializeProto3Zs
cCs&|j|jj�|jj��dS(N(R!RtByteSizeR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestByteSizedscCs#|jdt|jj���dS(Ni(R!R"Rt
ListFields(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestListFieldsgscCs�tj�}|jj�}d|_tj�}d|_|j�|_	|j�}tj
�}|j|�|j�}tj�}|j|�|j||�dS(Ni���i90(
Rt
RawMessageSettitemtaddttype_idRtTestMessageSetExtension1tiRR$tTestMessageSettMergeFromStringR!(RtrawR/tmessage1t
serializedtprototreserializedtnew_raw((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt1testSerializeMessageSetWireFormatUnknownExtensionks		

cCsltj�}|j|j�|j|j|�|jjd�|j|jj��|j	|j|�dS(Ntoptional_string(
RRRRR!RRt
ClearFieldRtassertNotEqual(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt
testEquals�scCs�|jj�|jd|jj��tj�}tj�}d|_|jj|j��|j	j
�j|j��|jd|jj��|jd|j	dj��|j�|jd|jj��|jd|j	dj��dS(Nttdiscardi(RtDiscardUnknownFieldsR!RRRR=toptional_nested_messageRtrepeated_nested_messageR0R?(RR$t
other_message((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestDiscardUnknownFields�s"
		


(t__name__t
__module__RR R%R)R+R-R<R@RG(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRAs				
					tUnknownFieldsAccessorsTestcBsMeZd�Zd�Zed��Zd�Zd�Zd�Zd�Z	RS(cCsftjj|_tj�|_tj|j�|jj�|_tj	�|_
|j
j|j�dS(N(RRRRRRRRRRRR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyR�sc
Cs�|jj|}tj|j}tj|j|�}i}x\|jj	D]N\}}||krHt
jj|d}	|	|dt
|�|j|�qHqHW|j|||�dS(Ni(Rtfields_by_nameR	tFIELD_TYPE_TO_WIRE_TYPEttypeRtTagBytestnumberRt_unknown_fieldsRRt_decoders_by_tagR"RR!(
Rtnametexpected_valuetfield_descriptort	wire_typet	field_tagtresult_dictt	tag_bytestvaluetdecoder((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pytCheckUnknownField�s&cCs�|jd|jj�|jd|jj�|jd|jj�|jd|jj�|jd|jj�|jd|jj�|jd|jj�dS(Ntoptional_nested_enumtrepeated_nested_enumtoptional_int32toptional_fixed32toptional_fixed64R=t
optionalgroup(	R[RR\R]R^R_R`R=Ra(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestCheckUnknownFieldValue�s	
	
	
	
	
	
	cCs9tj�}|j|j�|j|j�|j�dS(N(RRtCopyFromRR!RR(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestCopyFrom�scCs�tj�}d|_d|_tj�}|j|j��|jd�d|_d|_tj�}|j|j��|j	|�|j|j��|j
|jd�|j
|jd�|j
|jd�dS(NiiR^ii(RRR^toptional_uint32RRRR>toptional_int64t	MergeFromR!(RR$tsourcetdestination((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt
testMergeFrom�s		
		
cCs*|jj�|j|jj�d�dS(NRA(RtClearR!R(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt	testClear�s
cCs9tj�}|j|j�|j|j�|j�dS(N(RtTestEmptyMessageWithExtensionsRRR!R(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownExtensions�s(
RHRIRR[RRbRdRjRlRn(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRJ�s					tUnknownEnumValuesTestcBsVeZd�Zd�Zd�Zd�Zd�Zd�Zed��Z	d�Z
RS(cCs�tjj|_tj�|_tjj|j_|jjjtjjtjj	g�|jj
jtjjtjj	g�|jj�|_tj
�|_|jj|j�dS(N(RtTestEnumValuesRRR$tZEROR\R]textendtONEtpacked_nested_enumRtmessage_datatTestMissingEnumValuestmissing_messageR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyR�s		c
Cs�|jj|}tj|j}tj|j|�}i}x\|jj	D]N\}}||krHt
jj|d}	|	|dt
|�|j|�qHqHW|j|||�dS(Ni(RRKR	RLRMRRNRORwRPRRpRQR"R$R!(
RRRRSRTRURVRWRXRYRZ((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyR[s	&cCsKtj�}d|_tj�}|j|j��|j|jd�dS(Ntblahi(Rt
JustStringtdummyRpRRR!R\(Rtjust_stringtmissing((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt!testUnknownParseMismatchEnumValue$s
	cCsk|j|jjd��|j|jjd�|jj�}|jjd�|j|jj�|�dS(NR\i(tassertFalseRwtHasFieldR!R\RR>(RR8((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownEnumValue1s
cCs|jg|jj�dS(N(R!RwR](R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownRepeatedEnumValue9scCs|jg|jj�dS(N(R!RwRt(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownPackedEnumValue<scCsF|jd|jj�|jd|jj�|jd|jj�dS(NR\R]Rt(R[R$R\R]Rt(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt!testCheckUnknownFieldValueForEnum?s	
	
	cCs9tj�}|j|jj��|j|j|�dS(N(RRpRRwRR!R$(Rtnew_message((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt
testRoundTripHs(RHRIRR[R}R�R�R�RR�R�(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRo�s			
				t__main__(t__doc__t
__author__t	unittest2RtImportErrortgoogle.protobufRRRtgoogle.protobuf.internalRRRRRRR	tBaseTestCaseRRRJRoRHtmain(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt<module>!s,
		`\QPK�\ڡ^^"protobuf/internal/message_test.pycnu�[����
���hc@s�dZdZddlZddlZddlZddlZddlZddlZddlZddl	Z	yddl
ZWnek
r�ddlZnXye
Wnek
r�d�Z
nXddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZej r�e!Z"nd�Z#d�Z$d�Z%d�Z&ej'Z'ej(defdef�de'fd��Y�Z)de'fd��YZ*de'fd��YZ+d e'fd!��YZ,d"e'fd#��YZ-ej.ej/�d$kp�ej0d%d&fkd'�d(e'fd)��Y�Z1e2d*kr�ej3�ndS(+s�Tests python protocol buffers against the golden message.

Note that the golden messages exercise every known field type, thus this
test ends up exercising and verifying nearly all of the parsing and
serialization code in the whole library.

TODO(kenton):  Merge with wire_format_test?  It doesn't make a whole lot of
sense to call this a test of the "message" module, which only declares an
abstract interface.
s!gps@google.com (Gregory P. Smith)i����NcCs||k||kS(N((txty((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt<lambda>>t(tmap_proto2_unittest_pb2(tmap_unittest_pb2(tunittest_pb2(tunittest_proto3_arena_pb2(tdescriptor_pb2(tdescriptor_pool(tmessage_factory(ttext_format(tapi_implementation(tencoder(tpacked_field_test_pb2(t	test_util(ttesting_refleaks(tmessage(t_parameterizedcCs
||kS(N((tval((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytisnanVscCst|�ot|d�S(Ni(R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytisinfYscCst|�o|dkS(Ni(R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytIsPosInf\scCst|�o|dkS(Ni(R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytIsNegInf^st_proto2t_proto3tMessageTestc
Bs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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,d+�Z-d,�Z.d-�Z/dFe1d.d/d0d1e2�gie3�g
Z4d2�Z5d3�Z6d4�Z7d5�Z8d6�Z9d7�Z:d8�Z;d9e<fd:��YZ=d;�Z>d<�Z?d=�Z@d>�ZAd?�ZBd@�ZCdA�ZDdB�ZEdC�ZFdD�ZGdE�ZHRS(GcCsvtj�dkr"|jd�ntjd�}|jt��}|jj|�WdQX|j	dt
|j��dS(Ntpythons�Skipping testBadUtf8String, currently only the python api implementation raises UnicodeDecodeError when a string field contains bad utf-8.tbad_utf8_stringsTestAllTypes.optional_string(RtTypetskipTestRtGoldenFileDatatassertRaisestUnicodeDecodeErrortTestAllTypest
FromStringtassertIntstrt	exception(tselftmessage_modulet
bad_utf8_datatcontext((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestBadUtf8StringjscCs�|tkrtjd�}ntjd�}|j�}|j|�|tkretj||�n|j||j��tj	|�}|j||j��dS(Nt golden_message_oneof_implementedtgolden_message_proto3(
RRRR"tParseFromStringtExpectAllFieldsSettassertEqualtSerializeToStringtcopytdeepcopy(R'R(tgolden_datatgolden_messagetgolden_copy((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestGoldenMessagets
cCs�tjd�}|j�}|j|�|j�}tj|�|j||�|j||j��tj|�}|j||j��dS(Ntgolden_packed_fields_message(	RRtTestPackedTypesR.tSetAllPackedFieldsR0R1R2R3(R'R(R4R5tall_setR6((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestGoldenPackedMessage�s

c	Cs*|j�}|jt|jd�|jt|jd�tjdd�}tj�dkr�|jt	j
��}|j|�WdQX|jdt|j
��n�tjdt��r}tjd�|j|�t|�dks�t�t|d	jt�st�|jd
t|d	j	��WdQXdS(Nit0iiRsUnexpected end-group tag.trecordtalwaysi����s4Unexpected end-group tag: Not all data was converted(R"R t	TypeErrorR#t	ExceptionR
tTagBytesRRRtDecodeErrorR0R%R&twarningstcatch_warningstTruetsimplefiltertlentAssertionErrort
issubclasstcategorytRuntimeWarning(R'R(tmsgtend_tagR*tw((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestParseErrors�s

	cs�d}|j�}|jjddddg�|j||jdd��|j||jdt��|j||jdt��dtfd��Y�d	t	f�fd
��Y}|j
���|jd|��WdQXdS(Ns5�
One string�
Two string�
Red string�Blue strings
One strings
Two strings
Red stringsBlue stringt
deterministictBadArgErrorcBseZRS((t__name__t
__module__(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRR�stBadArgcs&eZ�fd�Z�fd�ZRS(cs
���dS(N((R'(RR(sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt__nonzero__�scs
���dS(N((R'(RR(sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt__bool__�s(RSRTRVRW((RR(sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRU�s(R"trepeated_stringtextendR0R1tNonetFalseRFRAtobjectR (R'R(R4R5RU((RRsI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestDeterminismParameters�s"	
			cCsZtjd�}|j�}|j|�tj|�}tj|�}|j||�dS(NR5(RRR"R.tpickletdumpstloadsR0(R'R(R4R5tpickled_messagetunpickled_message((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPickleSupport�s
cCs�|tkrd}nd}|j�}|j|�|jt|j��|jt|j��|jt|jd��|jt|jd��|j	||j
��dS(Ns]�a�����s ]�a�����i(RR"R.t
assertTrueRtoptional_floattoptional_doubletrepeated_floattrepeated_doubleR0R1(R'R(R4R5((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPositiveInfinity�s	
cCs�|tkrd}nd}|j�}|j|�|jt|j��|jt|j��|jt|jd��|jt|jd��|j	||j
��dS(Ns]��a������s ]��a������i(RR"R.RdRReRfRgRhR0R1(R'R(R4R5((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestNegativeInfinity�s	
cCsd}|j�}|j|�|jt|j��|jt|j��|jt|jd��|jt|jd��|j�}|j�}|j|�|jt|j��|jt|j��|jt|jd��|jt|jd��dS(Ns]�a�����i(	R"R.RdRReRfRgRhR1(R'R(R4R5t
serializedR((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestNotANumber�s

cCsmd}|j�}|j|�|jt|jd��|jt|jd��|j||j��dS(Ns����i(R9R.RdRtpacked_floatt
packed_doubleR0R1(R'R(R4R5((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPositiveInfinityPackeds
cCsmd}|j�}|j|�|jt|jd��|jt|jd��|j||j��dS(Ns�����i(R9R.RdRRmRnR0R1(R'R(R4R5((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestNegativeInfinityPackeds
cCs�d}|j�}|j|�|jt|jd��|jt|jd��|j�}|j�}|j|�|jt|jd��|jt|jd��dS(Ns����i(R9R.RdRRmRnR1(R'R(R4R5RkR((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestNotANumberPacked%s

cCs�|j�}tjdd�}||_|j|j��|j|j|k�dtjdd�}||_|j|j��|j|j|k�||_|j|j��|j|j|k�||_|j|j��|j|j|k�tjdd�}||_|j|j��|j|j|k�dtjdd�}||_|j|j��|j|j|k�||_|j|j��|j|j|k�||_|j|j��|j|j|k�dS(Niig�?i����(R"tmathtpowReR.R1Rd(R'R(RtkMostPosExponentNoSigBitstkMostPosExponentOneSigBittkMostNegExponentNoSigBitstkMostNegExponentOneSigBit((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtremeFloatValues3s:		

		

cCs�|j�}tjdd�}||_|j|j��|j|j|k�dtjdd�}||_|j|j��|j|j|k�||_|j|j��|j|j|k�||_|j|j��|j|j|k�tjdd�}||_|j|j��|j|j|k�dtjdd�}||_|j|j��|j|j|k�||_|j|j��|j|j|k�||_|j|j��|j|j|k�dS(Nii�g�?i���(R"RrRsRfR.R1Rd(R'R(RRtRuRvRw((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtremeDoubleValues`s:		

		

cCs/|j�}d|_|jt|�d�dS(Ng@soptional_float: 2.0
(R"ReR0R%(R'R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestFloatPrinting�s	cCsW|j�}d|_tjdkr=|jt|�d�n|jt|�d�dS(Ng^!�7ݚ�?is%optional_double: 0.12345678912345678
s optional_double: 0.123456789123
(i(R"Rftsystversion_infoR0R%(R'R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestHighPrecisionFloatPrinting�s
	cCsR|j�}tj|�|j�}|j|j��|jt|�d�dS(NR(R"RtSetAllNonLazyFieldstTestEmptyMessageR.R1R0R%(R'R(t	populatedtempty((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestUnknownFieldPrinting�s

cCs|j�}|jjdd�|jjdd�|jjdd�|jjdd�|jddddgg|jD]}|j^qw�|jddddggt|j�D]}|j^q��|jddddgg|jddd�D]}|j^q��dS(Ntbbiiiii����(R"trepeated_nested_messagetaddR0R�treversed(R'R(RMtm((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt testRepeatedNestedFieldIteration�s &cCs�|j�}|jjd�|jjd�|jjd�|jj�|j|jdd�|j|jdd�|j|jdd�|jt|j�tdddg��|jjd�|jjd�|jjd�|jj�|j|jdd�|j|jdd�|j|jdd�|jjd�|jjd	�|jjd
�|jj�|j|jdd�|j|jdd
�|j|jdd	�|jt|j�tddd
g��|j	jd�|j	jd	�|j	jd
�|j	j�|j|j	dd�|j|j	dd
�|j|j	dd	�|jt|j	�tdd
d	g��dS(s7Check some different types with the default comparator.iiiig�������?g�������?g333333�?tatctbuaubucN(
R"trepeated_int32tappendtsortR0R%RgtassertAlmostEqualRXtrepeated_bytes(R'R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt0testSortingRepeatedScalarFieldsDefaultComparator�s@
(

(
cCs |j�}|jjd�|jjd�|jjd�|jjdt�|j|jdd�|j|jdd�|j|jdd�|jjd�|jjd	�|jjd
�|jjdt�|j|jdd
�|j|jdd	�|j|jdd�dS(s2Check some different types with custom comparator.i����i����i����tkeyiiitaaaR�R�N(R"R�R�R�tabsR0RXRH(R'R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt/testSortingRepeatedScalarFieldsCustomComparator�scCsM|j�}d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_|jjdtjd��|j|jd	jd�|j|jdjd�|j|jdjd�|j|jdjd�|j|jdjd�|j|jdjd�|jt|j�d
�dS(sECheck passing a custom comparator to sort a repeated composite field.iiiiiiR�R�is0[bb: 1
, bb: 2
, bb: 3
, bb: 4
, bb: 5
, bb: 6
]N(	R"R�R�R�R�toperatort
attrgetterR0R%(R'R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt2testSortingRepeatedCompositeFieldsCustomComparator�s cCsC|j�}d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_|jjdd	��|jdddddddgg|jD]}|j^q��|j�}|j�|j|�|jdddddddgg|jD]}|j^q)�d
S(sECheck passing a custom comparator to sort a repeated composite field.iii
i!iii
R�cSs|jdS(Ni
(R�(tz((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR
RN(	R"R�R�R�R�R0R1tCleartMergeFromString(R'R(Rtntpb((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt(testSortingRepeatedCompositeFieldsStable�s$ 

cCs�|j�}tjd�}d�}d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_|jjd	|�|jg|jD]}|j^q�ddddddg�|jjd	|d
t�|jg|jD]}|j^qddddddg�t	j
dkrEdS|jjd|�|jg|jD]}|j^qhddddddg�|jjd
|d
t�|jg|jD]}|j^q�ddddddg�dS(sECheck sorting a repeated composite field using list.sort() arguments.R�cSst|j|j�S(N(tcmpR�(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRRiiiiiiR�treverseNt
sort_functionR�(i(R"R�R�R�R�R�R�R0RFR{R|(R'R(Rtget_bbtcmp_bbtk((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt'testRepeatedCompositeFieldSortArgumentss.	""""cCsf|j�}|jjd�|jjd�|jjd�|jjdt�|jt|j�dddg�|jjdtdt�|jt|j�dddg�tj	dkr7d�}|jjd|�|jt|j�dddg�|jjd	|dt�|jt|j�dddg�n|j
jd
�|j
jd�|j
jd�|j
jdt�|jt|j
�ddd
g�|j
jdtdt�|jt|j
�d
ddg�tj	dkrbd
�}|j
jd|�|jt|j
�ddd
g�|j
jd	|dt�|jt|j
�d
ddg�ndS(s9Check sorting a scalar field using list.sort() arguments.i����i����i����R�R�icSstt|�t|��S(N(R�R�(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR>RR�R�R�R�R�cSstt|�t|��S(N(R�RH(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRLRN(i(i(R"R�R�R�R�R0tlistRFR{R|RXRH(R'R(Rtabs_cmptlen_cmp((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt$testRepeatedScalarFieldSortArguments2s6""	"%""	"cCs�|j�}|j�}|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_tjdkr�dS||k}|j|jk}|jt	||�d�|jt	|j|j�d�|jt	|jdddg�d�|jt	|j|j�d�|j
t��t	|j|j�WdQXdS(Niiii(i(R"R�R�R�R�R�R{R|R0R�R R@(R'R(tm1tm2t_((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedFieldsComparableRs2%cCs<|j�}|j|jtj�|j|jtj�dS(N(R"tassertIsInstanceR�tcollectionstMutableSequenceR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedFieldsAreSequencesuscCsV|j�}|jt��t|j�WdQX|jt��t|j�WdQXdS(N(R"R R@thashR�R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedFieldsNotHashable{s
cCs9|j�}|jjjg�|j|jd��dS(Ntpayload(tNestedTestAllTypesR�R�RYRdtHasField(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt$testRepeatedFieldInsideNestedMessage�scCs't||�|j|j|��dS(s�Make sure that a nested message object exists.

    As soon as a nested message attribute is accessed, it will be present in the
    _fields dict, without being marked as actually being set.
    N(tgetattrtassertFalseR�(R'RMt	attribute((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytensureNestedMessageExists�s
cCs<|j�}|jt|jd�|jt|jd�dS(Ntno_such_oneof_fieldi(R"R t
ValueErrort
WhichOneofRA(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt testOneofGetCaseNonexistingField�scCs�|j�}|jd|jd��|j|jd��d|_|jd|jd��|j|jd��|j|jd��d|_	|jd|jd��|j|jd��|j|jd��dS(Ntoneof_fieldtoneof_uint32itoneof_stringR(
R"tassertIsRZR�R�R�R�R0RdR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofDefaultValues�s		cCs�|j�}|jd|jd��d|_|jd|jd��|j|jd��d|_|jd|jd��|j	|jd��|j|jd��|j
|jd|jd��|j|jd��|j	|jd��|j
j|jd|jd��|j|jd��|j	|jd��d|j
_|jd|jd��|j	|jd��|j|jd��d|_|jd|jd��|j	|jd��|j|jd��dS(	NR�iR�ufooR�toneof_nested_messageR�toneof_bytes(
R"R�RZR�R�R0RdR�R�R�R�R�R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofSemantics�s2		
	cCsU|j�}d|_|j|d�|jd|jd��|jd|j�dS(NiR�R�R�(R"R�R�R0R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt!testOneofCompositeFieldReadAccess�s
	cCs|j�}|jd|jd��|tkrJ|j|jd��nd|_|jd|jd��|tkr�|j	|jd��nd|_
|jd|jd��|jd�|jd|jd��|tkr�|j|jd��ndS(NR�iR�R�R�(R"R�RZR�RR�R�R�R0RdR�t
ClearField(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofWhichOneof�s		
cCsz|j�}d|_|jd�|tkrG|j|jd��n|j|jd��|jd|jd��dS(NiR�R�(	R"R�R�RR�R�R�RZR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofClearField�s	
cCsz|j�}d|_|jd�|tkrG|j|jd��n|j|jd��|jd|jd��dS(NiR�R�(	R"R�R�RR�R�R�RZR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofClearSetField�s	
cCs�|j�}d|_|j|d�|jd�|jd|j�|tkrj|j|jd��n|j|jd��|jd|jd��dS(NiR�R�R�(	R"R�R�R�R0RRdR�R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofClearUnsetField�s	
cCsQ|j�}d|_|j�}|j|j��|jd|jd��dS(NiR�R�(R"R�R.R1R0R�(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofDeserializes
	cCsK|j�}d|_|j�}|j|�|jd|jd��dS(NiR�R�(R"R�tCopyFromR0R�(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofCopyFroms
	
cCs�|j�}d|j_|j�}d|j_d|jj_|j|�|jd|jjd��|jd|jjjd��dS(NiR�R�R�R�(R�R�R�R�tchildt	MergeFromR0R�(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofNestedMergeFroms
cCs�|j�}d|jj_d|jjj_|j�}d|j_|j|�|jd|jjd��|jd|jjjd��dS(Niii
R�R�(	R�R�R�R�R�R�R�R0R�(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofMessageMergeFroms
		cCs8|jd|jj��}|jd|jd��dS(NR�R�(R"t
NestedMessageR0R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofNestedMessageInit$s	cCs[|j�}d|_|j�|j|jd��d|_|jd|jd��dS(NiR�R�R�(R"R�R�tassertIsNoneR�R�R0(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofClear)s	
	cCs5|j�}td�|_|j|jtj�dS(smAssigning a byte string to a string field should result
    in the value being converted to a Unicode string.RN(R"R%toptional_stringR�tsixt	text_type(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt"testAssignByteStringToUnicodeField1scCs�|j�}|jjd�|jtd�tt|j��!}|jt|j�t|��d|jj�_|jtd�tt|j��!}|jt|j�t|��dS(s|It should be possible to use long-valued indicies in slices

    This didn't used to work in the v2 C++ implementation.
    iiiN(	R"R�R�tlongRHR0R�R�R�(R'R(R�tsl((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestLongValuedSlice8s%%c	Cs�|j�}|jt��'}|jjd�td�D��WdQX|jt��'}|jjd�td�D��WdQXdS(s5This didn't use to work in the v2 C++ implementation.css|]}tVqdS(N(R�(t.0ti((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pys	<genexpr>Msi
Ncss|]}tVqdS(N(R�(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pys	<genexpr>Ps(R"R t	NameErrorR�RYtrangetrepeated_nested_enum(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt$testExtendShouldNotSwallowExceptionsIs&	igRucCs}|j�}|jg|j�x4tjD])}|jj|�|jg|j�q)W|jjg�|jg|j�dS(s,Test no-ops extending repeated int32 fields.N(R"tassertSequenceEqualR�RtFALSY_VALUESRY(R'R(R�tfalsy_value((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendInt32WithNothingTscCs}|j�}|jg|j�x4tjD])}|jj|�|jg|j�q)W|jjg�|jg|j�dS(s,Test no-ops extending repeated float fields.N(R"R�RgRR�RY(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendFloatWithNothingascCs}|j�}|jg|j�x4tjD])}|jj|�|jg|j�q)W|jjg�|jg|j�dS(s-Test no-ops extending repeated string fields.N(R"R�RXRR�RY(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendStringWithNothingnscCs�|j�}|jg|j�|jjdg�|jdg|j�|jjddg�|jdddg|j�|jjddg�|jdddddg|j�dS(s7Test extending repeated int32 fields with python lists.iiiiiN(R"R�R�RY(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendInt32WithPythonList{scCs�|j�}|jg|j�|jjdg�|jdg|j�|jjddg�|jdddg|j�|jjddg�|jdddddg|j�dS(s7Test extending repeated float fields with python lists.gg�?g@g@g@N(R"R�RgRY(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendFloatWithPythonList�scCs�|j�}|jg|j�|jjdg�|jdg|j�|jjddg�|jdddg|j�|jjddg�|jdddddg|j�dS(s8Test extending repeated string fields with python lists.Rt11t22t33t44N(R"R�RXRY(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendStringWithPythonList�scCsO|j�}|jg|j�|jjd�|jdddg|j�dS(sDTest extending repeated string fields with characters from a string.tabcR�R�R�N(R"R�RXRY(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendStringWithString�stTestIterablecBs5eZdZdd�Zd�Zd�Zd�ZRS(s�This iterable object mimics the behavior of numpy.array.

    __nonzero__ fails for length > 1, and returns bool(item[0]) for length == 1.

    cCs|p	g|_dS(N(t_list(R'tvalues((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt__init__�scCsLt|j�}|dkrtS|dkr<t|jd�Std��dS(NiisTruth value is ambiguous.(RHR�R[tboolR�(R'tsize((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRV�scCs
t|j�S(N(RHR�(R'((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt__len__�scCs
|jj�S(N(R�t__iter__(R'((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR��sN(RSRTt__doc__RZR�RVR�R�(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR��s
		cCs�|j�}|jg|j�|jjtjg��|jg|j�|jjtjdg��|jdg|j�|jjtjddg��|jdddg|j�|jjtjddg��|jdddddg|j�dS(s3Test extending repeated int32 fields with iterable.iiiiiN(R"R�R�RYRR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendInt32WithIterable�scCs�|j�}|jg|j�|jjtjg��|jg|j�|jjtjdg��|jdg|j�|jjtjddg��|jdddg|j�|jjtjddg��|jdddddg|j�dS(s3Test extending repeated float fields with iterable.gg�?g@g@g@N(R"R�RgRYRR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendFloatWithIterable�scCs�|j�}|jg|j�|jjtjg��|jg|j�|jjtjdg��|jdg|j�|jjtjddg��|jdddg|j�|jjtjddg��|jdddddg|j�dS(s4Test extending repeated string fields with iterable.Rt1t2t3t4N(R"R�RXRYRR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendStringWithIterable�scCsitj�dks$tj�dkr(dS|j�}|jtj��}tj|jtj	�WdQXdS(Ntcppi(
RRtVersionR"R R^tPickleErrorR_R�tHIGHEST_PROTOCOL(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt!testPickleRepeatedScalarContainer�scCs|j�}|jj�dS(s?Exercise a scenario that has led to segfaults in the past.
    N(R"R�R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt'testSortEmptyRepeatedCompositeContainer�scCs5|j�}|jt��}|jd�WdQXdS(sBUsing HasField on a repeated field should raise an exception.
    R�N(R"R R�R�(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestHasFieldOnRepeatedField�scCs�|j�}|jt��}|jj�WdQX|jjtd��|jd|jj��|jd|jjd��|jd|jjd��|jddg|j�dS(Niiiiii(R"R t
IndexErrorR�tpopRYR�R0(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedScalarFieldPop�scCs|j�}|jt��}|jj�WdQX|jt��}|jjd�WdQXx,td�D]}|jj�}||_qfW|j	d|jj�j�|j	d|jjd�j�|j	d|jjd�j�|j	ddgg|jD]}|j^q��dS(NR=iiiiii(
R"R RR�R
R@R�R�R�R0(R'R(R�R�R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedCompositeFieldPops
cCs~|j�}x?td�D]1}|jj||�|jj�}||_qW|j|j|j�|j|j|j�dS(Ni(	R"R�R�tinsertR�R�R�R�R0(R'R(R�R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedCompareWithSelfs
cCsM|j�}|jj�}|j}|jj�}|j|jjd�dS(swA case that lead to a segfault when a message detached from its parent
    container has itself a child container.
    iN(R�trepeated_childR�R�R0R�toptional_int32(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestReleasedNestedMessagess
	cCs�|j�}|jt��g|_WdQX|jjd�tj�dkro|jt��g|_WdQXn|jt��g|_WdQXdS(NiR(R"R tAttributeErrorR�R�RRR@(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestSetRepeatedComposite(sN(IRSRTR+R7R<RPR]RcRiRjRlRoRpRqRxRyRzR}R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RZR[t	bytearraytsetR�R�R�R�R�R�R�R�R\R�R�R�RR	R
RRRRRR(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRes�	
				$											-	-					(					 	#								#										
							*	
	
	
					
	
	
				
				
t
Proto2TestcBsYeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	cCs\tj�}|j|jd��|j|jd��|j|jd��|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|jd|j�|jt|j	�|jd|j
j�d|_t|_	d|j
_|j|jd��|j|jd��|j|jd��d|_t
|_	d	|j
_|j|jd��|j|jd��|j|jd��|jd�|jd�|jd�|j|jd��|j|jd��|j|jd��|jd|j�|jt|j	�|jd|j
j�dS(
NRt
optional_booltoptional_nested_messagetfield_doesnt_existR�R�iii(RR"R�R�R R�R0RR[RRR�RdRFR�(R'R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestFieldPresence:sD				


cCs]tj�}|jt��}d|_WdQX|jt|jjd�|jjd�d|jd<|jt��d|jd<WdQXtj�}d|_|jjd�|j�}tj�}|j	|�|j
|jd��|jd|j�|jdt
|j��|j�|j	|j��|jd|j�|jd|jd�dS(	s:Assigning an invalid enum number is not allowed in proto2.i��Niii@�i��ttoptional_nested_enumi(RR"R R�RR�R�RR1R.R�R�R0RHR�(R'R�R�R�Rktm3((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestAssignInvalidEnumjs*
	

cCs@tj�}d|jd<|jt��d|jd<WdQXdS(Nii{i(RtTestEnumMaptknown_map_fieldR R�tunknown_map_field(R'R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestUnknownEnumMap�s
cCs&tj�}|jtt|d�dS(Nt
Extensions(RR"R RR�(R'RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtensionsErrors�scCs�tjd�}tj�}|j|�tj�}tj|�|j||�|j||j��tj	|�}|j||j��dS(NR5(
RRRtTestAllExtensionsR.tSetAllExtensionsR0R1R2R3(R'R4R5R;R6((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestGoldenExtensions�s

cCs�tjd�}tj�}|j|�tj�}tj|�|j||�|j||j��tj	|�}|j||j��dS(NR8(
RRRtTestPackedExtensionsR.tSetAllPackedExtensionsR0R1R2R3(R'R4R5R;R6((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestGoldenPackedExtensions�s

cCsmtjdd�}tj|�}tj|�}|j||�|j|jd�|jtj	|j
�dS(NR�i(RtTestRequiredR^R_R`R0R�R RtEncodeErrorR1(R'R5RaRb((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPickleIncompleteProto�scCs`tj�tj�tj�g}d|d_d|d_d|d_d|d_tj�}d|_d|_d|_tjj�}|jj|�|j	j|�|j
j|�|jj|�|jj|�|j
j�jj|d�|j
j�jj|d�|j
j�jj|d�|jj�jj|d�|jj�jj|d�|jj�jj|d�|j�}tj�}|j|�|j|j|�|j|j|�|j|jj|�|j|jtjj|�|jt|j�d�|jt|j�d�|jt|jtjj�d�dS(scCheck the merge behavior when a required or optional field appears
    multiple times in the input.iiiithelloN(RR"Rtoptional_int64R�tTestParsingMergetRepeatedFieldsGeneratortfield1RYtfield2tfield3text1text2tgroup1R�R�tgroup2R1R.R0trequired_all_typestoptional_all_typest
optionalgrouptoptional_group_all_typesR%toptional_extRHtrepeated_all_typest
repeatedgrouptrepeated_ext(R'tmessagestmerged_messaget	generatortdatat
parsing_merge((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestParsingMerge�sJ		



			

cCsKtjddddddddd	id
d6did
d6didddidd6idd6gddtjjgdddd�}|j|tj�|jd|j�|jd|j�|jd|j�|jd|j�|jd
|j	j
�|j|jtjj�|jd
|jj
�|j|jd��|j|jtj��|jtjj|j�|jdt|j��|jd|jdj
�|jd|jdj
�|jdt|j��|jtjj|jd�|jtjj|jd�|jd|j�|jd|j�|j|jd��|jdt|j��|jd|j�tjdd �}|jtjj|j�|jt��tjdid!d"6�WdQX|jt��tjdid#d6�WdQX|jt��tjdd$�WdQX|jt��tjdd�WdQXdS(%NRidtoptional_fixed32i�Reg�r@toptional_bytesRR=i�R�Ri�R�toptional_foreign_messageRtBAZRAiXi�R�tFOOt
default_int32i R�RiiiR1i*uBAZitINVALID_NESTED_FIELDtINVALID_VALUE_TYPEt
INVALID_LABEL( RR"tBARR�R0RRIReRJR=R�RR�R�RdR�RKtForeignMessageRLRRHRAR�RMRNR�R�Rgt
default_int64R R�R@(R'R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPythonicInit�sl	


	



		(RSRTRR R$R&R)R,R/RHRU(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR8s	0							1t
Proto3TestcBs(eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!RS( cCsRt|�}x/|D]'\}}|j|||�||=qW|ji|�dS(N(tdictR0(R'tmap_itert
dict_valueR�tv((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytassertMapIterEquals+s
cCsrtj�}|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|j|jd��|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|jd	|j�|jd	|j�|jd
|j	�|jt
|j�|jd	|jj
�d	|j_
|j|jd��d|_d|_d
|_	t|_d|j_
|jd�|jd�|jd�|jd�|jd�|jd	|j�|jd	|j�|jd
|j	�|jt
|j�|jd	|jj
�dS(NRReR�RRRR�R�iRig�������?R�i(RR"R R�R�R�R0RReR�R[RRR�RdRFR�(R'R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR5sL				




cCs�tj�}d|_|jd|j�|jjd�|jd|jd�d|jd<|jd|jd�|j�}tj�}|j|�|jd|j�|jd|jd�dS(sCAssigning an unknown enum value is allowed and preserves the value.i��i��Tii��tN(RR"RR0R�R�R1R.(R'R�RkR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestAssignUnknownEnumns	

cCstj�}|jd|jk�|jd|jk�|jd|jk�|jd
|jk�|jd|jk�|jt|j	k�|jd|j
k�|jd|jk�|jd|jk�|j
d|jd�|j
d|jd�|j
d|jd�|j
d|jd�|j
d	|jd�|jt|jdt��|j
t|j	t�|jt|j	tt��|j
d
|j
d�|j
d
|jd�|j
d|jd�|jd|jk�|jd|jk�|jd|jk�|jd|jk�|jd|jk�|jt|j	k�|jd|j
k�|jd|jk�|jd|jk�|j|j
dtj�|jt��|j
dWdQX|jt��d|j
kWdQXdS(Ni����ii!i{R�ioixigRll����lll����lll����l(RtTestMapR�tmap_int32_int32tmap_int64_int64tmap_uint32_uint32tmap_uint64_uint64tmap_int32_doubleR[t
map_bool_booltmap_string_stringtmap_int32_bytestmap_int32_enumR0Rdt
isinstancetfloatR�R�R�R�R R@(R'RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestScalarMapDefaults�sFcCs�tj�}|j|jjd��|jd|jjdd��|j|jjd��d|jd<|jd|jjd��|jd|jjd��|jt��|jjd�WdQX|j|jjd��|jd|jjdd��|jd}|j	||jjd��t
j�dkrd|jt��|jjd�WdQXn|jd|jjd��dS(Nii
iRR(
RR]R�R^tgetR0R R@tmap_int32_foreign_messageR�RRRZ(R'RMtsubmsg((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
testMapGet�s"

c
Cs�tj�}|jdt|j��|jd|jk�d|jd<d|jd<d|jd	<d|jd<d
|j	d<d|j
d<d
|jd<t|j
t<d|jd<d|jd	<|jg|j��|jdt|j��|jt��d
|jd	<WdQX|jdt|j��|jt��d	|jd
<WdQX|j�}tj�}|j|�|jt��d
|jd	<WdQX|jt��d	|jd
<WdQX|jd|jd�|jd|jd�|jd|jd	�|jd|jd�|jd
|j	d�|jd|j
d�|jd
|jd�|jt|j
t�|jd|jd�|jd|jd	�tj�dkr�|jdt|j��ndS(Niii8���i����ii"i!i�i{g333333�?gffffff
@it123R�ixRs{-123: -456}ll����ll����llll����ll����ll(RR]R0RHR^R�R_R`Ratmap_int32_floatRbRdRFRcRftFindInitializationErrorsR R@R1R.R�RRR%(R'RMRktmsg2((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
testScalarMap�sP










	cCsVtj�}d|jd<d|jd<|j|j�d�|jd|j��dS(NiRis
r
(RR]R^RdR0tByteSizeR1(R'RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapEntryAlwaysSerializeds

	cCs�tj�}d}|jd�}||j|<t|jj��d\}}|j||�|j||�|j|tj	�|j|tj	�dS(Nuሴtutf8i(
RR]tencodeRdR�titemsR0R�R�R�(R'RMtunicode_objt	bytes_objR�tvalue((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt testStringUnicodeConversionInMaps
cCs�tj�}|jdt|j��|jd|jk�|jd|jjd�|jdt|j��|jd|j�|jd|j�|jdt|j��|jt	��|jdWdQX|jt
��|jd|jd<WdQX|jdt|j��|j�}tj�}|j|�|jdt|j��|jd|j�|jd|j�|jdt|j��t
j�dkr�|jd	tt|j���ndS(
Niii{i8���iRni�Ri(RR]R0RHRkR�t
get_or_createR$R R@R�R1R.RRR%(R'RMRkRq((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMessageMap&s0
	cCs�tj�}d|jdj_|jd=d|jdj_|jdt|j��d|jdj_|jdt|j��|j�}tj�}|j|�ddg}x|D]}|j|=q�WdS(Nii(	RR]tmap_int32_all_typesRR�R0RHR1R.(R'RMRkRqtkeysR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestNestedMessageMapItemDeleteOs


cCs�tj�}d|jd<|j�}d|jd<|j|j�|d�d|jd_|j�}d|jd_|j|j�|d�dS(Nii�i(RR]R^RsR0RkR�(R'RMR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapByteSize`s

cCs�tj�}d|jd<d|jd<d|jd<d|jd_d	|jd
_tj�}d|jd<d|jd
<d|jd
_d|jd
_|jd
}|j|�|jd|jd�|jd|jd�|jd|jd�|jd|jd
�|jd|jdj�|jd	|jd
j�|j	|jd
j
d��tj�dkr�|jd|j�ni}x8|jD]-}|j	||k�|j|j||<q�W|jidd6d	d
6|�|jd=|j	d|jk�|jd
=|j	d
|jk�tj�dkr\|j
t��|jd=WdQXn |j
t��|jd=WdQXdS(Ni"iiNi8i!iiioi
i�i7iciXiitdRR(RR]R^R_RkR�R�R�R0R�R�RRR R@tKeyError(R'RMRqt
old_map_valuetas_dictR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
testMergeFromlsH








cCs6tj�}|jtd��|jd�WdQXdS(NsWParameter to MergeFrom\(\) must be instance of same class: expected .*TestMap got int\.i(RR]tassertRaisesRegexpR@R�(R'RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMergeFromBadType�s

cCs6tj�}|jtd��|jd�WdQXdS(Ns[Parameter to [A-Za-z]*From\(\) must be instance of same class: expected .*TestMap got int\.i(RR]R�R@R�(R'RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestCopyFromBadType�s

cCs�tj�}td�|jtd�<td	�|jtd�<td�|jtd�<td�|jtd
�<|j�}tj�}|j|�|j	d|jd�|j	d|jd�|j	d|jd�|j	d|jd�dS(Ni8���i����ii"i!i�i{ll����ll����llll����ll����ll(
RR]R�R^R_R`RaR1R.R0(R'RMRkRq((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestIntegerMapWithLongs�s
cCs�tj�}d|jjd<|j�}tj�}|j|�|j||�d|jjd<|j�}|j|�|j||�|jjj�|j�}|j|�|j||�dS(Ni�i{i�ix(RtTestMapSubmessagettest_mapR^R1R.R0tclear(R'RMRkRq((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapAssignmentCausesPresence�s


cCstj�}d|jjd_|j�}tj�}|j|�|j||�d|jjd_|j�}|j|�|j||�|jjdj|jjd�|j�}|j|�|j||�|jjj	�|j�}|j|�|j||�dS(Nii{iix(
RR�R�RkR�R1R.R0R�R�(R'RMRkRq((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt-testMapAssignmentCausesPresenceForSubmessages�s&



cCs�tj�}t|j�}t|j�}d|jd<d|jd_|jt��x|D]}q^WWdQX|jt��x|D]}q�WWdQXdS(NRnR�i(RR]titerRdRkR�R tRuntimeError(R'RMtstring_string_itertint32_foreign_iterR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestModifyMapWhileIterating�s



cCs�tj�}|jd}|j||jd�|j|tj�d|_|j�}tj�}|j	|�|j
d|jdj�|jt��tj�|jd<WdQXdS(NioiiX(
RR]RkR�R�RRSR�R1R.R0R R�(R'RMRlRkRq((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestSubmessageMaps
	
cCs�tj�}x*|jj�D]\}}|jt�qWd|jd<d|jd<d|jd<|jdt|j��idd6dd6dd6}|j|jj�|�dS(Niiiii(	RR]R^RwRdR[R0RHR[(R'RMR�RZt
matching_dict((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapIterations


c
s�tjdkr�tj�}d|jd<d|jd<d|jd<d|jd<|j}�jdt|��tj�}|j|j���fd�}||j	�|j
��||j�|j��||j
�|j���jd|jd���jd|jd	���jd|jd���jd
|jd���jdt|��|j�\}}�jd||��jdt|��|j��jd
t|���jt��|j�WdQX�jd
|jd���jdt|��|j|j��jdt|���jt��|j|j|j�WdQX�jt��|jd
�WdQX�jt��|jdd
�WdQXndS(Niiiiii
ics8�jt|�|d��jt|�|d�dS(Nii(R0tnextR�(tseqtiterator(R'(sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
CheckItems9si�iiRzi(i(R{R|RR]R^R0RHR.R1Rwt	iteritemsRtiterkeysR�t
itervaluesRjRZR
tpopitemR�R R�t
setdefaulttupdateR@(R'RMt	map_int32RqR�R�Rz((R'sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPython2Map-sJ



	
cCstj�}d|jd<d|jd<d|jd<d|jd<d|jd<|jj�}|jj�}|j||�dS(NRt
local_init_opttrainable_variablest	variablestinit_opt	summaries(RR]RdRwR0(R'RMtitems1titems2((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapItems]s




cCs�d}tj�}d|jd<d|jd<d|jd<d|jd	<d
|jd<d
|jd<d
|jd<d|jd<d|jd<|j||jdt��dS(Ns�r
init_opdr

item1er

item2fr

item3gr
item4QQr

local_init_opar
	summarieser
trainable_variablesbr
	variablescR�R�R�R�R�R�R�R�teR�titem1tftitem2tgtitem3tQQtitem4RQ(RR]RdR0R1RF(R'R4RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt!testMapDeterministicSerializationls	








cCsttj�}d|jd<d|jd<d|jd<|jj�}~idd6dd6dd6}|j||�dS(Niiiii(RR]R^RwR[(R'RMtitR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapIterationClearMessage�s


cCs�tjdidd6dd6�}|jd|jd�|jd|jd�tjditjdd�d6�}|jd|jdj�dS(	NR^iiiiRkR�i(RR]R0R^RRSRkR�(R'RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapConstruction�s 	cCs�tj�}|j}d|d<d|d<d|d<|jd�|jd|j��idd6dd6dd6}|j|j�|�dS(NiiiiiR^R(RR]R^R�R0R1R[Rw(R'RMt	int32_mapR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapValidAfterFieldCleared�s	



cCsbtj�}|j}d|d_|jd�|jd|j��|jd|j�k�dS(NiiRkR(	RR]RkR�R�R0R1RdR(R'RMtint32_foreign_message((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt$testMessageMapValidAfterFieldCleared�s	

cCs�tj�}t|j�}|jd�|jt��x|D]}q?WWdQXt|j�}|jd�|jt��x|D]}q�WWdQXdS(NR^Rk(RR]R�R^R�R R�Rk(R'RMR�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt"testMapIterInvalidatedByClearField�s




cCs�tj�}|jdt|j��d|jd<|jdt|j��|jt��|jd=WdQX|jd=|jdt|j��|jt��|jd=WdQXdS(NiiiiiXi (RR]R0RHR^R R�R~(R'RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
testMapDelete�s

cCshtj�}|j|jtj�|j|jtj�|j|jtj�|j|jtj�dS(N(RR]R�R^R�tMappingtMutableMappingRk(R'RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapsAreMapping�scCs\tj�}d|jd<|j|j|j�|j|j|j�|j|jd�dS(Ni8���i����i(RR]R^R0RktassertNotEqual(R'RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapsCompare�s

cCsVtj�}d|jd<d|jd<d|jd_|jdt|j���dS(NRnR�i@i#itfooi(	RR]RdR^tmap_string_foreign_messageR�R0RHRp(R'RM((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt(testMapFindInitializationErrorsSmokeTest�s


("RSRTR[RR\RiRmRrRtR{R}R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRV(s@	
	9		0		=			)			<									0							
				tValidTypeNamesTestcBseZd�Zd�ZRS(cs�tt|��jd�d�d|d|f}|jt�fd�|D��d�|f��jd�}|d}dj|d �}t|d	|g�dS(
Nt'isRepeated%sContainersRepeated%sFieldContainerc3s|]}�j|�VqdS(N(tendswith(R�RZ(ttp_name(sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pys	<genexpr>ss%r does end with any of %rt.i����tfromlist(R%ttypetsplitRdtanytjoint
__import__(R'RMt	base_nametvalid_namestpartst
class_nametmodule_name((R�sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytassertImportFromName�s

cCs6tj�}|j|jd�|j|jd�dS(NtScalart	Composite(RR"R�R�R�(R'R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestTypeNamesCanBeImported
s(RSRTR�R�(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR��s	
tPackedFieldTestcBs#eZd�Zd�Zd�ZRS(cCs�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|j	jd�|j
jd�|jjd�|jjd�|j
jt�|jjd�dS(Nig�?(R�R�trepeated_int64trepeated_uint32trepeated_uint64trepeated_sint32trepeated_sint64trepeated_fixed32trepeated_fixed64trepeated_sfixed32trepeated_sfixed64RgRht
repeated_boolRFR�(R'R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
setMessagescCs9tj�}|j|�d}|j||j��dS(NsH
"*2:BJRZ�?b�?jr(RR9R�R0R1(R'RR4((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPackedFields"s
cCs9tj�}|j|�d}|j||j��dS(Ns: (0=AMQ]�?a�?hp(RtTestUnpackedTypesR�R0R1(R'RR4((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestUnpackedFields5s
(RSRTR�R�R�(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR�s		Riis;explicit tests of the C++ implementation for PY27 and abovetOversizeProtosTestcBs2eZed��Zd�Zd�Zd�ZRS(cCscd}tj�}tj�}tj||�|j|�tj|�j	|j
d��|_dS(Ns�
      name: "f/f.msg2"
      package: "f"
      message_type {
        name: "msg1"
        field {
          name: "payload"
          number: 1
          label: LABEL_OPTIONAL
          type: TYPE_STRING
        }
      }
      message_type {
        name: "msg2"
        field {
          name: "field"
          number: 1
          label: LABEL_OPTIONAL
          type: TYPE_MESSAGE
          type_name: "msg1"
        }
      }
    sf.msg2(R	tDescriptorPoolRtFileDescriptorProtoRtParsetAddR
tMessageFactorytGetPrototypetFindMessageTypeByNamet	proto_cls(tclst	file_desctpooltdesc((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
setUpClassNs
cCs8|j�|_dd|jj_|jj�|_dS(NR�ii@iiii(R�tptfieldR�R1tp_serialized(R'((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytsetUpqscCsmddlm}|t�|j�}y|j|j�Wn,tjk
rh}|jt	|�d�nXdS(Ni����(tSetAllowOversizeProtossError parsing message(
tgoogle.protobuf.pyext._messageR�R[R�R.R�RRCR0R%(R'R�tqR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestAssertOversizeProtovs
cCsYddlm}|t�|j�}|j|j�|j|jjj	|jj	�dS(Ni����(R�(
R�R�RFR�R.R�R0R�R�R�(R'R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestSucceedOversizeProtos

(RSRTtclassmethodR�R�R�R�(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR�Is#			t__main__(4R�t
__author__R�R2RrR�R^R�R{RDt	unittest2tunittesttImportErrorR�R�tgoogle.protobufRRRRRR	R
Rtgoogle.protobuf.internalRR
RRRRRtPY3tintR�RRRRtBaseTestCasetNamedParametersRRRVR�R�tskipIfRR|R�RStmain(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt<module>)st


								��������9	:PK�\�bQ|
|
(protobuf/internal/api_implementation.pyonu�[����
���hc@s�dZddlZddlZddlZy#ddlmZejZeZ	Wne
k
rldZeZ	nXedkr�ed��nedkr-y2ddl
mZes�e
d��n[d	ZWq-e
k
r)ydd
lmZ[Wq*e
k
r%e	r&ejddkr"d	Zq"q&q*Xq-Xnedkr?dnd
Zejde�Zedkrld
Zndejkr�ed
kr�ejd�dZnejdd�Zedkr�eded��nee�Zyddl
mZeZWne
k
reZnXd�Zd�Zd�Zed
krvy&ddlmZd�Z d�Z!Wq�e
k
rrq�Xnea"d�Z d�Z!dS(sLDetermine which implementation of the protobuf API is used in this process.
i����N(t_api_implementationis%api_version=1 is no longer supported.i(t_use_fast_cpp_protoss2_use_fast_cpp_protos import succeeded but was Nonei(tuse_pure_pythonitpythontcppt&PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATIONtPyPys\PyPy does not work yet with cpp protocol buffers. Falling back to the python implementation.t.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSIONt2s=unsupported PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION: "s" (supported versions: 2)(t(enable_deterministic_proto_serializationcCstS(N(t_implementation_type(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pytType�scCstS(N(t_implementation_version(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pytVersion�scCstS(N(t)_python_deterministic_proto_serialization(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyt)IsPythonDefaultSerializationDeterministic�s(t_messagecCs
tj�S(N(Rt&GetPythonProto3PreserveUnknownsDefault(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyR�scCstj|�dS(N(Rt&SetPythonProto3PreserveUnknownsDefault(tpreserve((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyR�scCstS(N(t(_python_proto3_preserve_unknowns_default(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyR�scCs
|adS(N(R(R((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyR�s(#t__doc__tostwarningstsystgoogle.protobuf.internalRtapi_versiont_api_versiontTruet'_proto_extension_modules_exist_in_buildtImportErrortFalset
ValueErrortgoogle.protobufRRtversion_infot_default_implementation_typetgetenvR
tversiontwarnt_implementation_version_strtintRR	RRR
Rtgoogle.protobuf.pyextRRRR(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyt<module> sv	





			
	


				

	PK�\�/�&protobuf/internal/wire_format_test.pyonu�[����
���hc@s�dZdZyddlZWnek
r;ddlZnXddlmZddlmZdej	fd��YZ
edkr�ej�ndS(	s.Test for google.protobuf.internal.wire_format.s#robinson@google.com (Will Robinson)i����N(tmessage(twire_formattWireFormatTestcBs>eZd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsod}d}|j|d>|Btj||��tj}|jtj||d�|jtj||d�dS(Ni�
iiii����(tassertEqualRtPackTagtassertRaisesRtEncodeError(tselftfield_numberttag_typeR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyttestPackTag/s	cCs�xfd	D]^}xUtd�D]G}tjtj||��\}}|j||�|j||�qWqW|jttjd�|jttjd�|jttjd�|jttjt��dS(
Niiii�iitabcg(iiii�i(	trangeRt	UnpackTagRRRt	TypeErrortNonetobject(Rtexpected_field_numbertexpected_wire_typeRt	wire_type((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyt
testUnpackTag:s
cCs"tj}|jd|d��|jd|d��|jd|d��|jd|d��|jd|d��|jd|d	��|jd
|d��|jd|d
��|jd|d��|jt|d�|jt|d�|jt|d�|jt|t��dS(Niii����iii����il��i���l��i�l����l����l����l����tabcdg(RtZigZagEncodeRRRRR(RtZ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyttestZigZagEncodeHs	cCs"tj}|jd|d��|jd|d��|jd|d��|jd|d��|jd|d��|jd|d	��|jd
|d��|jd|d
��|jd|d��|jt|d�|jt|d�|jt|d�|jt|t��dS(Nii����iii����iii���l��i�l��l����l����l����l����Rg(RtZigZagDecodeRRRRR(RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyttestZigZagDecodeYs	c
Csfx_d	d
ddfD]K\}}||}|||�}|j||d|||||f�qWdS(
Niiiii�iisFbyte_size_fn: %s, field_number: %d, value: %r
Expected: %d, Actual: %d(ii(ii(i�i(ii(R(Rtbyte_size_fntvaluetexpected_value_sizeRt	tag_bytest
expected_sizetactual_size((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pytNumericByteSizeTestHelperjs
c6CsTtjddgtjddgtjddgtjddgtjddgtjddgtjddgtjddgtjddgtjddgtjddgtjtjdgtjddgtjddgtjddgtjtjdgtjddgtjddgtjddgtjd	dgtjd
dgtjddgtjddgtjddgtjddgtjddgtjd	dgtjd
dgtjddgtjddgtj	dd
gtj	tjd
gtj
ddgtj
tjdgtjdd
gtjtjd
gtjtj
d
gtjddgtjtjdgtjtjdgtjdd
gtjdd
gtjdd
gtjddgtjddgtjddgtjtdgtjtdgtjddgtjddgtjddgtjtjdgg4}x|D]}|j|�q4WxitjtjfD]U}|jd|dd��|jd|dd��|jd|ddd��q^W|jdtjddjd���dtfd��Y}d}|d|�}|jd|tjd|��|jd
|tjd|��|jd|jtjd|��|jd|jtjd|��d|_|jd
|jtjd|��d|_|j|jdtj d|��d|_|j|jdtj d|��|j|jdtj d|��|j!t"j#tjdd�dS(Niiii�ii����i
ii����i?i����i@iigge��Age��Riii�tasТестsutf-8tMockMessagecBseZd�Zd�ZRS(cSs
||_dS(N(t	byte_size(RR$((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyt__init__�scSs|jS(N(R$(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pytByteSize�s(t__name__t
__module__R%R&(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyR#�s	R$iil	($Rt
Int32ByteSizet
Int64ByteSizetUInt32ByteSizet
UINT32_MAXtUInt64ByteSizet
UINT64_MAXtSInt32ByteSizetSInt64ByteSizetFixed32ByteSizetFixed64ByteSizetSFixed32ByteSizet	INT32_MINt	INT32_MAXtSFixed64ByteSizet	INT64_MINt	INT64_MAXt
FloatByteSizetDoubleByteSizetBoolByteSizetFalsetTruetEnumByteSizeR!tStringByteSizet
BytesByteSizeRtdecodeRt
GroupByteSizeR$tMessageByteSizetMessageSetItemByteSizeRRR(RtNUMERIC_ARGStargsRR#tmessage_byte_sizetmock_message((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyttestByteSizeFunctionsts�
!

			(R'R(R
RRRR!RI(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyR-s					
t__main__(
t__doc__t
__author__t	unittest2tunittesttImportErrortgoogle.protobufRtgoogle.protobuf.internalRtTestCaseRR'tmain(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyt<module> s
�PK�\��}N��-protobuf/internal/service_reflection_test.pycnu�[����
���hc@s�dZdZyddlZWnek
r;ddlZnXddlmZddlmZddlmZdej	fd��YZ
ed	kr�ej�ndS(
s6Tests for google.protobuf.internal.service_reflection.spetar@google.com (Petar Petrov)i����N(tunittest_pb2(tservice_reflection(tservicetFooUnitTestcBseZd�Zd�ZRS(c
s3dtjfd��Y}dtjfd��Y}d�_dtjfd��Y}d�_�fd�}|�}|�}|�}|j|tj�|��j	d|j
��j	d�j�d|_
tjj�}|j|j
d	|tj�|��j|j|j
d	�tjk��j|j|j
d	�tjk��j	d
|j
��j	d�j�dtjfd��Y}	|	�}d|_
|j|tj�|��j	d|j
��j	t|j�d|_
|j|j
d	|tj�|��j	d|j
��j	t|j�dS(
NtMockRpcChannelcBseZd�ZRS(cSs)||_||_||_||�dS(N(tmethodt
controllertrequest(tselfRRRtresponsetcallback((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyt
CallMethod3s			(t__name__t
__module__R(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyR2stMockRpcControllercBseZd�ZRS(cSs
||_dS(N(tfailure_message(Rtmsg((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyt	SetFailed:s(RR
R(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyR9st	MyServicecBseZRS((RR
(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyR?scs
|�_dS(N(tcallback_response(R	(R(sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyt
MyCallbackDssMethod Foo not implemented.isMethod Bar not implemented.t
MyServiceImplcBseZd�Zd�ZRS(cSs
t|_dS(N(tTruet
foo_called(Rtrpc_controllerRtdone((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pytFoo]scSs
t|_dS(N(Rt
bar_called(RRRR((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pytBar_s(RR
RR(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyR\s	(Rt
RpcChannelt
RpcControllertNoneRRtTestServiceRt
FooRequesttassertEqualRt
GetDescriptorRtmethodst
BarRequestt
assertTruetGetRequestClasstGetResponseClasstBarResponseRRR(
RRRRRRtchanneltsrvctservice_descriptorR((RsT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyttestService1sF						
	

	
			cs�dtjfd��Y}d�_�fd�}|�}tj|�}d}d}�jtjj�|j��|j|||��j	�jtj
��j||j��j||j��j|j�j
d|j�dS(NRcBseZd�ZRS(cSs,||_||_||_||��dS(N(RRR(RRRRtresponse_classR
((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyRps			(RR
R(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyRoscs
|�_dS(N(R(R	(R(sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyRysRRi(RRRRRtTestService_StubR"R#RtassertIsInstancetFooResponseRRR$R(RRRR*tstubRR((RsT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyttestServiceStubns		
(RR
R-R3(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyR/s	=t__main__(
t__doc__t
__author__t	unittest2tunittesttImportErrortgoogle.protobufRRRtTestCaseRRtmain(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/service_reflection_test.pyt<module> s
_PK�\\���ff0protobuf/internal/more_extensions_dynamic_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/more_extensions_dynamic.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf.internal import more_extensions_pb2 as google_dot_protobuf_dot_internal_dot_more__extensions__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/more_extensions_dynamic.proto',
  package='google.protobuf.internal',
  syntax='proto2',
  serialized_pb=_b('\n6google/protobuf/internal/more_extensions_dynamic.proto\x12\x18google.protobuf.internal\x1a.google/protobuf/internal/more_extensions.proto\"\x1f\n\x12\x44ynamicMessageType\x12\t\n\x01\x61\x18\x01 \x01(\x05:J\n\x17\x64ynamic_int32_extension\x12).google.protobuf.internal.ExtendedMessage\x18\x64 \x01(\x05:z\n\x19\x64ynamic_message_extension\x12).google.protobuf.internal.ExtendedMessage\x18\x65 \x01(\x0b\x32,.google.protobuf.internal.DynamicMessageType:\x83\x01\n\"repeated_dynamic_message_extension\x12).google.protobuf.internal.ExtendedMessage\x18\x66 \x03(\x0b\x32,.google.protobuf.internal.DynamicMessageType')
  ,
  dependencies=[google_dot_protobuf_dot_internal_dot_more__extensions__pb2.DESCRIPTOR,])


DYNAMIC_INT32_EXTENSION_FIELD_NUMBER = 100
dynamic_int32_extension = _descriptor.FieldDescriptor(
  name='dynamic_int32_extension', full_name='google.protobuf.internal.dynamic_int32_extension', index=0,
  number=100, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DYNAMIC_MESSAGE_EXTENSION_FIELD_NUMBER = 101
dynamic_message_extension = _descriptor.FieldDescriptor(
  name='dynamic_message_extension', full_name='google.protobuf.internal.dynamic_message_extension', index=1,
  number=101, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_DYNAMIC_MESSAGE_EXTENSION_FIELD_NUMBER = 102
repeated_dynamic_message_extension = _descriptor.FieldDescriptor(
  name='repeated_dynamic_message_extension', full_name='google.protobuf.internal.repeated_dynamic_message_extension', index=2,
  number=102, type=11, cpp_type=10, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)


_DYNAMICMESSAGETYPE = _descriptor.Descriptor(
  name='DynamicMessageType',
  full_name='google.protobuf.internal.DynamicMessageType',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='google.protobuf.internal.DynamicMessageType.a', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=132,
  serialized_end=163,
)

DESCRIPTOR.message_types_by_name['DynamicMessageType'] = _DYNAMICMESSAGETYPE
DESCRIPTOR.extensions_by_name['dynamic_int32_extension'] = dynamic_int32_extension
DESCRIPTOR.extensions_by_name['dynamic_message_extension'] = dynamic_message_extension
DESCRIPTOR.extensions_by_name['repeated_dynamic_message_extension'] = repeated_dynamic_message_extension
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

DynamicMessageType = _reflection.GeneratedProtocolMessageType('DynamicMessageType', (_message.Message,), dict(
  DESCRIPTOR = _DYNAMICMESSAGETYPE,
  __module__ = 'google.protobuf.internal.more_extensions_dynamic_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.DynamicMessageType)
  ))
_sym_db.RegisterMessage(DynamicMessageType)

google_dot_protobuf_dot_internal_dot_more__extensions__pb2.ExtendedMessage.RegisterExtension(dynamic_int32_extension)
dynamic_message_extension.message_type = _DYNAMICMESSAGETYPE
google_dot_protobuf_dot_internal_dot_more__extensions__pb2.ExtendedMessage.RegisterExtension(dynamic_message_extension)
repeated_dynamic_message_extension.message_type = _DYNAMICMESSAGETYPE
google_dot_protobuf_dot_internal_dot_more__extensions__pb2.ExtendedMessage.RegisterExtension(repeated_dynamic_message_extension)

# @@protoc_insertion_point(module_scope)
PK�\��Osii(protobuf/internal/proto_builder_test.pyonu�[����
���hc@s�dZyddlmZWn!ek
r=ddlmZnXyddlZWnek
rmddlZnXddlmZddlm	Z	ddlm
Z
ddlmZdejfd	��YZ
ed
kr�ej�ndS(s(Tests for google.protobuf.proto_builder.i����(tOrderedDictN(tdescriptor_pb2(tdescriptor_pool(t
proto_builder(ttext_formattProtoBuilderTestcBs,eZd�Zd�Zd�Zd�ZRS(cCsCtdtjjfdtjjfg�|_t|j�|_dS(Ntfootbar(RRtFieldDescriptorProtot
TYPE_INT64tTYPE_STRINGtordered_fieldstdictt_fields(tself((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pytsetUp3scCsPtj|jdd�}|�}d|_d|_|jdtj|��dS(s&Test that we can create a proto class.t	full_names0net.proto2.python.public.proto_builder_test.Testi90tasdfsbar: "asdf"
foo: 12345
N(RtMakeSimpleProtoClassR
RRtassertMultiLineEqualRtMessageToString(Rt	proto_clstproto((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pyttestMakeSimpleProtoClass:s					cCsPtj|jdd�}|�}d|_d|_|jdtj|��dS(sBTest that the field order is maintained when given an OrderedDict.Rs7net.proto2.python.public.proto_builder_test.OrderedTesti90Rsfoo: 12345
bar: "asdf"
N(RRRRRRRR(RRR((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pyttestOrderedFieldsEs					cCsbtj�}tj|jddd|�}tj|jddd|�}|j|j|j�dS(s%Test that the DescriptorPool is used.Rs0net.proto2.python.public.proto_builder_test.TesttpoolN(RtDescriptorPoolRRR
tassertIst
DESCRIPTOR(RRt
proto_cls1t
proto_cls2((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pyttestMakeSameProtoClassTwicePs				(t__name__t
__module__RRRR(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pyR1s			t__main__(t__doc__tcollectionsRtImportErrortordereddictt	unittest2tunittesttgoogle.protobufRRRRtTestCaseRR tmain(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pyt<module> s

-PK�\L��""+protobuf/internal/file_options_test_pb2.pycnu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zdd
lmZejddd
dddded�dejg�ZdZejddddddddddddddd ed!dd"dd#dd$dd%ed&dd'dd(e�Zejdd)dd*d+dd(ed$dd,ejdd-dd.dddddd/dd/ddd ed!ed0�jd1�d"dd#dd$dd%ed&dd'dd(e�gd2gd3gd4gd'dd5eddd6gd7gd8d9d:d;�Zeejd)<eejd<eje�e	jd)ejfe d<ed=d>��Z!ej"e!�ee_#ej$j%e�dS(?i����NiicCs|S(N((tx((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/file_options_test_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/file_options_test_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames0google/protobuf/internal/file_options_test.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbs�
0google/protobuf/internal/file_options_test.protogoogle.protobuf.python.internal google/protobuf/descriptor.proto"

FooOptions
foo_name (	:a
foo_options.google.protobuf.FileOptions��9 (2+.google.protobuf.python.internal.FooOptionstdependenciesi,�-tfoo_optionst	full_names+google.protobuf.python.internal.foo_optionstindextnumberttypeitcpp_typei
tlabelithas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfilet
FooOptionss*google.protobuf.python.internal.FooOptionstfilenametfieldstfoo_names3google.protobuf.python.internal.FooOptions.foo_namei	Rsutf-8t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiwtserialized_endi�t
DESCRIPTORt
__module__s.google.protobuf.internal.file_options_test_pb2(&tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbt'google_dot_protobuf_dot_descriptor__pb2tFileDescriptorR,tFOO_OPTIONS_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRt
Descriptortdecodet_FOOOPTIONStmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR tRegisterMessageRtFileOptionstRegisterExtension(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/file_options_test_pb2.pyt<module>sl%					



	PK�\�����*protobuf/internal/descriptor_pool_test.pycnu�[����
���hc@s!dZdZddlZddlZyddlZWnek
rSddlZnXddlmZddlm	Z	ddlm
Z
ddlmZddlm
Z
dd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZdefd��YZdeejfd��YZdeejfd��YZdeejfd��YZdefd��YZdefd��YZ d efd!��YZ!d"efd#��YZ"d$efd%��YZ#d&efd'��YZ$d(efd)��YZ%d*ejfd+��YZ&ed,d-ie!ie d.d/fd0d1fg�d26e!ie d3d4fd5d6fg�d26e!ie d7d8fd9d:fg�d26d;e"d/d2d7�fd<e$d1d=�fg�d>6d;e"d/d2d5�fd<e$d1d?�fd@e#dAd>�fg�dB6d;e"d/d2d0�fdCe#d1dB�fgdDe'�dE6e!ie dFdAfdGdHfg�d26e!ie dIdJfdKdLfg�d26e!ie dMdNfdOdPfg�d26d;e"d/d2dO�fd<e$d1dQ�fg�d>6d;e"d/d2dI�fd<e$d1dR�fd@e#dAd>�fg�dB6d;e"d/d2dF�fdCe#d1dB�fg�dS6�Z(edTd-ie!ie dUdVfdWdXfg�d26e!ie dYdZfd[d\fg�d26e!ie d]d^fd_d`fg�d26d;e"d/d2d]�fd<e$d1da�fg�d>6d;e"d/d2d[�fd<e$d1db�fd@e#dAd>�fg�dB6d;e"d/d2dW�fdCe#d1dB�fgdcdde%dedE�fg�df6dgd,dhgdidhg�Z)e*djkrej+�ndS(ks*Tests for google.protobuf.descriptor_pool.s"matthewtoia@google.com (Matt Toia)i����N(tunittest_import_pb2(tunittest_import_public_pb2(tunittest_pb2(tdescriptor_pb2(tapi_implementation(tdescriptor_pool_test1_pb2(tdescriptor_pool_test2_pb2(tfactory_test1_pb2(tfactory_test2_pb2(tfile_options_test_pb2(tmore_messages_pb2(t
descriptor(tdescriptor_database(tdescriptor_pool(tmessage_factory(tsymbol_databasetDescriptorPoolTestBasecBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs�d}|jj|�}|j|tj�|j||j�|jd|j�|jd|j	�d}|jj|�}|j|tj�|j||j�|jd|j�|jd|j	�dS(Ns,google/protobuf/internal/factory_test1.protosgoogle.protobuf.python.internaltFactory1Messages,google/protobuf/internal/factory_test2.prototFactory2Message(
tpooltFindFileByNametassertIsInstanceRtFileDescriptortassertEqualtnametpackagetassertIntmessage_types_by_name(tselftname1t
file_desc1tname2t
file_desc2((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindFileByNameAscCs*|jt��|jjd�WdQXdS(NsDoes not exist(tassertRaisestKeyErrorRR(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindFileByNameFailurePscCsh|jjd�}|j|tj�|jd|j�|jd|j�|jd|j	�|jjd�}|j|tj�|jd|j�|jd|j�|jd|j	�|jjd�}|j|tj�|jd|j�|jjd	�}|j|tj�|jd|j�|jjd
�}|j|tj�|jd|j�dS(Ns/google.protobuf.python.internal.Factory1Messages,google/protobuf/internal/factory_test1.protosgoogle.protobuf.python.internalRs/google.protobuf.python.internal.Factory2Messages,google/protobuf/internal/factory_test2.protoRs-google.protobuf.python.internal.another_fields>google.protobuf.python.internal.Factory2Message.one_more_fieldsprotobuf_unittest.TestServicesgoogle/protobuf/unittest.proto(
RtFindFileContainingSymbolRRRRRRRR(RRR t
file_desc3t
file_desc4t
file_desc5((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindFileContainingSymbolTs:			
			
			
			
			cCs*|jt��|jjd�WdQXdS(NsDoes not exist(R"R#RR%(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt#testFindFileContainingSymbolFailureysc	Cs�|jjd�}|j|tj�|jd|j�|jd|j�|jd|j	�|j
|j�|jd}|jd|j�|j||j	�|j
d}|jd|j�|j||j	�|j||jdj�|j||jdj�|jjd�}|j|tj�|jd	|j�|jd|j�|j|j	�|jd}|jd
|j�|j||j	�|j
d}|jd|j�|j||j	�|j||jdj�|j||jd
j�|j|jdj�|jd|jdj�|j|jdj�|jd|jdj�|j|jdj�|jd|jdj�|j|jdj�|j
|jdj�|j|jdj�|jd|jdj�|jjd�}|j||�|j|jdj�|jd|jdj�|jdt|j��|jdt|j��|jdt|jdj��xVddgD]H}|j|jd|j|j�|j|j||jdj�q�WdS(Ns/google.protobuf.python.internal.Factory1MessageRitNestedFactory1MessagetNestedFactory1Enumtnested_factory_1_messagetnested_factory_1_enums/google.protobuf.python.internal.Factory2MessageRtNestedFactory2MessagetNestedFactory2Enumtnested_factory_2_messagetnested_factory_2_enumtint_with_defaulti�tdouble_with_defaultg{�G�#@tstring_with_defaultshello worldtbool_with_defaulttenum_with_defaultisEgoogle.protobuf.python.internal.Factory2Message.NestedFactory2Messagetbytes_with_defaultsa�cit	oneof_inttoneof_string(RtFindMessageTypeByNameRRt
DescriptorRRt	full_nametNonetcontaining_typetassertFalsethas_optionstnested_typest
enum_typestfields_by_nametmessage_typet	enum_typetassertIsNonet
assertTruethas_default_valuet
default_valuetlentoneofstoneofs_by_nametfieldstcontaining_oneofR(	Rtmsg1tnested_msg1tnested_enum1tmsg2tnested_msg2tnested_enum2tmsg3R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindMessageTypeByName}s�			


			


		 cCsS|jt|jjd�tj�dkrf|jt|jjd�|jt|jjd�t}nt}|j||jj	d�|j||jj
d�|j||jjd�|j||jjd�|j||jj
d�|j||jjd�|j||jjd�tj�dkr6t}n|j||jjd�dS(Nttcppitpython(R"t	TypeErrorRtFindExtensionByNumberRtTypetFindMethodByNameR#tAttributeErrorR;tFindFieldByNametFindExtensionByNametFindEnumTypeByNametFindOneofByNametFindServiceByNameR%R(Rt
error_type((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindTypeErrors�s 		cCs*|jt��|jjd�WdQXdS(NsDoes not exist(R"R#RR;(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt testFindMessageTypeByNameFailure�scCsx|jjd�}|j|tj�|jd|jdj�|jd|jdj�|j|j	�|jjd�}|j|tj�|jd|jdj�|jd|jdj�|jjd	�}|j|tj�|jd|jd
j�|jd|jdj�|jjd�}|j|tj�|jd|jd
j�|jd|jdj�dS(Ns,google.protobuf.python.internal.Factory1EnumitFACTORY_1_VALUE_0itFACTORY_1_VALUE_1sBgoogle.protobuf.python.internal.Factory1Message.NestedFactory1EnumtNESTED_FACTORY_1_VALUE_0tNESTED_FACTORY_1_VALUE_1s,google.protobuf.python.internal.Factory2EnumtFACTORY_2_VALUE_0tFACTORY_2_VALUE_1sBgoogle.protobuf.python.internal.Factory2Message.NestedFactory2EnumtNESTED_FACTORY_2_VALUE_0tNESTED_FACTORY_2_VALUE_1(
RRbRRtEnumDescriptorRtvalues_by_nametnumberR@RA(Rtenum1RRtenum2RU((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindEnumTypeByName�s2								cCs*|jt��|jjd�WdQXdS(NsDoes not exist(R"R#RRb(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindEnumTypeByNameFailurescCs�t|t�r(tj�dkr(dSn|jjd�}|j|jd�|j|j|j	�|j
|j�|jt
��|jjd�WdQXdS(NRYs:google.protobuf.python.internal.Factory1Message.list_valuet
list_valuesDoes not exist(t
isinstancet#SecondaryDescriptorFromDescriptorDBRR]RR`RRtlabeltLABEL_REPEATEDR@RAR"R#(Rtfield((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindFieldByName
s		cCswt|t�r(tj�dkr(dSn|jjd�}|j|jd�|jt	��|jjd�WdQXdS(NRYs;google.protobuf.python.internal.Factory2Message.oneof_fieldtoneof_fieldsDoes not exist(
RxRyRR]RRcRRR"R#(Rtoneof((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindOneofByNames		cCs�t|t�r(tj�dkr(dSn|jjd�}|j|jd�|jjd�}|j|jd�|j|jd�|j	t
��|jjd�WdQXdS(NRYs>google.protobuf.python.internal.Factory2Message.one_more_fieldtone_more_fields-google.protobuf.python.internal.another_fieldt
another_fieldi�sDoes not exist(RxRyRR]RRaRRRrR"R#R`(Rt	extension((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindExtensionByName%s				cCs�|jjd�}|jjd�}|jd}|jj|�|jjd�}|jd}|jj|�|jj|�}t||g�}|j|t|��|jd�|jj|�}|j|t|��dS(Ns/google.protobuf.python.internal.Factory1Messages/google.protobuf.python.internal.Factory2MessageR�s,google/protobuf/internal/factory_test2.protoR�tunexpected_element(	RR;textensions_by_nametAddExtensionDescriptorRtFindAllExtensionstsetRtappend(Rtfactory1_messagetfactory2_messageR�t
factory_test2R�t
extensionstexpected_extension_numbers((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindAllExtensions7s 				
		

cCs�|jjd�}|jjd�}|jd}|jj|�|jjd�}|jd}|jj|�|jj|d�}|j|jd�|jj|d�}|j|jd�|jt	��|jj|d�}WdQXdS(	Ns/google.protobuf.python.internal.Factory1Messages/google.protobuf.python.internal.Factory2MessageR�s,google/protobuf/internal/factory_test2.protoR�i�i�i��(
RR;R�R�RR\RRR"R#(RR�R�R�R�R�R�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindExtensionByNumberOs 				
		
cCsv|jt��|jjd�WdQX|jt��|jjd�WdQX|jt��|jjd�WdQXdS(Ns-google.protobuf.python.internal.another_fields>google.protobuf.python.internal.Factory2Message.one_more_fields:google.protobuf.python.internal.Factory1Message.list_value(R"R#RR`Ra(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestExtensionsAreNotFieldsfs	
	cCsO|jjd�}|j|jd�|jt��|jjd�WdQXdS(Nsprotobuf_unittest.TestServicesDoes not exist(RRdRR=R"R#(Rtservice((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindServicepscCsLtj�}tj|�|_|j|j�|j|j�|j�dS(N(	RtDescriptorDatabaseR
tDescriptorPoolRtAddtfactory_test1_fdtfactory_test2_fdRW(Rtdb((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestUserDefinedDBvs
cCswt|t�r(tj�dkr(dSntj�|_|jj|jj	��|jj|j
j	��|j�dS(NRY(RxRyRR]R
R�RtAddSerializedFileR�tSerializeToStringR�RW(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestAddSerializedFile}scs��fd�}|tj�tj�jjd�}�j|tj�||�t�t�ryt	j
�dkrydSntjj
tjj�}�jj|��jjd�}||�dS(s:Test the default value of enums which don't start at zero.cs1|jdjdj}�j|tjj�dS(NtDescriptorPoolTest1tnested_enum(RRDRJRRR�tBETA(tfile_descriptorRJ(R(sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt_CheckDefaultValue�s

	s4google/protobuf/internal/descriptor_pool_test1.protoRYN(Rt
DESCRIPTORRtDefaultRRtassertIsRxRyRR]RtFileDescriptorProtot
FromStringt
serialized_pbR�(RR�R�tdescriptor_proto((RsQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestEnumDefaultValue�s
	
			cs��fd���fd�}|tj��tj�}|jtjjtj	j
��|jtjjtj	j
��|jtjjtj	j
��tj
|�j|jtjj	j��}||��dS(s0Check the value returned by non-existent fields.cs$�j||��j||�dS(N(RR(tvaluetexpected_valuet
expected_type(R(sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt_CheckValueAndType�scs�y
t}Wntk
r#t}nXy
t}Wntk
rGt}nX�|jdt��|jd|tf��|jdttf��|j	dttf��|j
tt��|j
d|��|jdt��|j|jt�dS(NiuRX(tlongt	NameErrortinttunicodetstrtoptional_int32toptional_uint64toptional_floattfloattoptional_doublet
optional_booltFalsetbooltoptional_stringtoptional_bytestbytestoptional_nested_enumtFOO(tmsgtint64tunicode_type(R�(sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt_CheckDefaultValues�s 





N(RtTestAllTypesR
R�R�RR�R�RR�R�RRtMessageFactorytGetPrototypeR;R=(RR�Rt
message_class((R�RsQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt!testDefaultValueForCustomMessages�scCsdt|t�r(tj�dkr(dSntjdd�}|jj|�|jj|j	��dS(NRYRssome/file.proto(
RxRyRR]RR�RR�R�R�(Rt	file_desc((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestAddFileDescriptor�scCs�t|t�r(tj�dkr(dSntjjtjj	�}tjjt
jj	�}tjjtjj	�}|jj
|�|jj
|�|jj
|�tj||j�tj||j�dS(NRY(RxRyRR]RR�R�R
R�R�RRRR�t
TEST1_FILEt	CheckFilet
TEST2_FILE(Rtmore_messages_desct
test1_desct
test2_desc((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestComplexNesting�s			(t__name__t
__module__R!R$R)R*RWRfRgRuRvR}R�R�R�R�R�R�R�R�R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR?s,			%		R										
			
	 	&	tDefaultDescriptorPoolTestcBseZd�Zd�ZRS(cCsItj�|_tjjtjj�|_	tjjt
jj�|_dS(N(R
R�RRR�R�RR�R�R�RR�(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pytsetUp�s
		cCs|j|jjd�tj�|j|jjd�tjj�|j|jjd�tjjjd�|j|jj	d�tj
j�|j|jjd�tjjd�|j|jj
d�tjjjd	�|j|jjd
�tjjd�dS(Nsgoogle/protobuf/unittest.protosprotobuf_unittest.TestAllTypess-protobuf_unittest.TestAllTypes.optional_int32R�sprotobuf_unittest.ForeignEnums*protobuf_unittest.optional_int32_extensiontoptional_int32_extensions*protobuf_unittest.TestAllTypes.oneof_fieldR~sprotobuf_unittest.TestServicetTestService(R�RRRR�R;R�R`RDRbtForeignEnumRaR�RcRMRdtservices_by_name(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFindMethods�s.

	
	(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s	tCreateDescriptorPoolTestcBseZd�ZRS(cCs�tj�|_tjjtjj�|_	tjjt
jj�|_|jj|j	�|jj|j�|jjtjjt
jj��|jjtjjtjj��|jjtjjtjj��dS(N(R
R�RRR�R�RR�R�R�RR�R�RRR(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s		(R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�sRycBseZd�ZRS(cCs�tjjtjj�|_tjjtjj�|_t	j
�}|j|j�|j|j�|jtjjtjj��|jtjjt
jj��|jtjjtjj��tjd|�|_dS(Nt
descriptor_db(RR�R�RR�R�R�RR�RR�R�RRRR
R�R(RR�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�(s		(R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyRy%st	ProtoFilecBs eZddd�Zd�ZRS(cCs=||_||_||_|p$g|_|p3g|_dS(N(RRtmessagestdependenciestpublic_dependencies(RRRR�R�R�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt__init__;s
			c	Cs�|j|j�}|j|j|j�|j|j|j�g|jD]}|j^qH}|j|j|�g|jD]}|j^qz}|j|j|�x3|jj�D]"\}}|j|d||�q�WdS(N(
RRRRR�R�R�titemst	CheckTypeR>(	RttestRR�tftdependencies_namestpublic_dependencies_namesRtmsg_type((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�CsN(R�R�R>R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�9stEnumTypecBseZd�Zd�ZRS(cCs
||_dS(N(tvalues(RR�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�QscCs|j|}|j||j�dj|j|g�}|j||j�|j||j�|j||j�x�t|j�D]~\}\}}	|j	|}
|j||
j�|j||
j
�|j|	|
j�|j||
j�|j
||j�q�WdS(Nt.(tenum_types_by_nameRRtjoinR=R?tfilet	enumerateR�RqtindexRrttypeRtenum_values_by_name(RR�tmsg_descRR�t	enum_desctexpected_enum_full_nameR�R�Rrt
value_desc((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�Ts
"
(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�Os	tMessageTypecBs eZedd�Zd�ZRS(cCs.||_||_||_|p$g|_dS(N(t	type_dictt
field_listt
is_extendableR�(RR�R�R�R�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�fs			c
Css|dkr4|j|}dj|j|g�}n%|j|}dj|j|g�}|j||j�|j||j�|j||j�|j|j	|�|j|j
|j
�x3|jj�D]"\}}|j
||||�q�Wx<t|j�D]+\}\}}	|	j|||||�qWx<t|j�D]+\}\}}	|	j|||||�q@WdS(NR�(R>RR�Rtnested_types_by_nameR=RRR?R�R�R�R�R�R�R�t
CheckFieldR�(
RR�tcontaining_type_descRR�tdesctexpected_full_nametsubtypeR�R|((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�ms 

""N(R�R�R�R>R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�dst	EnumFieldcBseZd�Zd�ZRS(cCs||_||_||_dS(N(Rrt	type_nameRJ(RRrRRJ((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s		c	Cs=|j|}|j|j}|j||j�dj|j|g�}|j||j�|j||j�|j|j|j�|jt	j
j|j�|jt	j
j
|j�|j|j�|j|j|jj|j�|j|j|jj�|j||j�|j||j�|j||j�dS(NR�(RDR�RRRR�R=R�RrRtFieldDescriptort	TYPE_ENUMR�tCPPTYPE_ENUMtcpp_typeRHRIRqRJR@RAR?RFR�(	RR�R�RR�R�t
field_descR�texpected_field_full_name((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s"


(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s	tMessageFieldcBseZd�Zd�ZRS(cCs||_||_dS(N(RrR(RRrR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s	c	Cs.|j|}|j|j}|j||j�dj|j|g�}|j||j�|j||j�|j|j|j�|jt	j
j|j�|jt	j
j
|j�|j|j�|j||j�|j||j�|j||j�tj�dkr*|jtt|d�ndS(NR�RYRJ(RDR�RRRR�R=R�RrRRtTYPE_MESSAGER�tCPPTYPE_MESSAGERR@RIR?RER�RR]R"tNotImplementedErrortgetattr(	RR�R�RR�R�R	tfield_type_descR
((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s"

(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s	tStringFieldcBseZd�Zd�ZRS(cCs||_||_dS(N(RrRJ(RRrRJ((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s	cCs�|j|}|j||j�dj|j|g�}|j||j�|j||j�|j|j|j�|jtjj	|j
�|jtjj|j�|j
|j�|j|j|j�|j||j�dS(NR�(RDRRR�R=R�RrRRtTYPE_STRINGR�tCPPTYPE_STRINGRRHRIRJR�(RR�R�RR�R�R	R
((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s

(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s	tExtensionFieldcBseZd�Zd�ZRS(cCs||_||_dS(N(Rrt
extended_type(RRrR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s	cCs|j|}|j||j�dj|j|g�}|j||j�|j|j|j�|j||j�|jtjj	|j
�|jtjj|j�|j
|j�|j|j�|j||j�|j||j�|j|j|jj�|j||j�dS(NR�(R�RRR�R=RrR�RRRR�R
RR@RIRHtis_extensiontextension_scopeRERR?R�(RR�R�RR�R�R	R
((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR��s

(R�R�R�R�(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s	tAddDescriptorTestcBs�eZd�Zejej�dkd�d��Zd�Zejej�dkd�d��Z	ejej�dkd�d��Z
ejej�dkd�d��Zd�Zd	�Z
d
�Zd�ZRS(cCs�tj�}|jtjj�|jd|j|d�j�|j	t
��|j|d�WdQX|jtjjj�|jd|j|d�j�|jd|jd�j
�|jd|j|d�j
�dS(Nsprotobuf_unittest.TestAllTypess,protobuf_unittest.TestAllTypes.NestedMessagesgoogle/protobuf/unittest.proto(R
R�t
AddDescriptorRR�R�RR;R=R"R#t
NestedMessageRRR%(RtprefixR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt_TestMessage�s,
RYs7With the cpp implementation, Add() must be called firstcCs|jd�|jd�dS(NRXR�(R(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestMessages
cCs�tj�}|jtjj�|jd|j|d�j�|j	t
��|j|d�WdQX|jtjjj�|jd|j|d�j�|jd|j
d�j�|jd|j|d�j�dS(Nsprotobuf_unittest.ForeignEnums(protobuf_unittest.ForeignEnum.NestedEnums)protobuf_unittest.TestAllTypes.NestedEnumsgoogle/protobuf/unittest.proto(R
R�tAddEnumDescriptorRR�R�RRbR=R"R#R�t
NestedEnumRRR%(RRR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt	_TestEnums,
cCs|jd�|jd�dS(NRXR�(R (R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestEnum,s
cCs_tj�}|jt��|jd�WdQX|jtj�|jd|jd�j	�dS(Nsprotobuf_unittest.TestService(
R
R�R"R#RdtAddServiceDescriptorRt_TESTSERVICERR=(RR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestService2scCs_tj�}|jtj�|jd|jd�j�|jt	��|j
d�WdQXdS(Nsgoogle/protobuf/unittest.protosprotobuf_unittest.TestAllTypes(R
R�tAddFileDescriptorRR�RRRR"R#R%(RR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestFile=s
cCsqtj�}tjj}|jt|j|�tj�}tjj	|�|j
|�|j|j|��dS(N(R
R�RR�RR"R#RR�tCopyToProtoR�RH(RRtproto_file_nameR�((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestEmptyDescriptorPoolMs
c	Cs�tj�}tjdddd�}|jjdd�|j|�|j|jd�j	d�|j|j
d�j	d�tjdd�}|jjdd�}|jjddd	d
dtjj
dtjj�|jjdd
�}|jjddd	d�|jjdd�tj�}|j|�|jd|j
d�j	�|jd
|jd
�j	�|jd|jd�j	�dS(NRssome/file.protoRtMessagespackage.Messagessome/filename/container.protot
TopMessagetbbRriR�RztTopEnumtFOREIGN_FOOit
TopService(R
R�RR�REtaddR�RRRR;R|tFieldDescriptorProtot
TYPE_INT32tLABEL_OPTIONALRFR�R�RbRd(RRR�t
file_protot
message_protot
enum_proto((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestCustomDescriptorPoolYs6	
			

	cCs�tj�}d}tjd|�}tj}d|jj|_|j	|�|j
|�}|j�}|jd|j|j�|j
||j��dS(Ns9file_descriptor_options_with_custom_descriptor_pool.protoRtfoo(R
R�RR�R	tfoo_optionstoptionst
Extensionstfoo_nameR�Rt
GetOptionsRR�(RRt	file_nametfile_descriptor_prototextension_idR�R:((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt1testFileDescriptorOptionsWithCustomDescriptorPoolxs	
c
Cs�tj�}|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQXdS(Ni(	R
R�R"R[RRR"R�R%(RR((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyttestAddTypeError�s(R�R�RtunittesttskipIfRR]RR R!R$R&R)R7RARB(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyR�s		
			s4google/protobuf/internal/descriptor_pool_test1.protosgoogle.protobuf.python.internaltALPHAiR�iRtEPSILONitZETAitETAitTHETAiR�tnested_fieldtthetatDeepNestedMessagetbetatdeep_nested_messageiRtnested_messageR�R�tGAMMAtDELTAitIOTAi	tKAPPAi
tLAMBDAitMUitlambdatdeltatDescriptorPoolTest2s4google/protobuf/internal/descriptor_pool_test2.prototNUi
tXIitOMICRONitPIitRHOitSIGMAitsigmatnuR�tdescriptor_pool_testi�tDescriptorPoolTest3R�s,google/protobuf/internal/more_messages.protoR�t__main__(,t__doc__t
__author__tostsyst	unittest2RCtImportErrortgoogle.protobufRRRRtgoogle.protobuf.internalRRRRRR	R
RRR
RRtobjectRtTestCaseR�R�RyR�R�R�RRRRRtTrueR�R�R�tmain(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test.pyt<module> s�
��# �
"	PK�\��Sb , ,/protobuf/internal/descriptor_pool_test1_pb2.pyonu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedejdddddddddd�ejdddd dd!dddd�gd"dddd#d$d%d&�	Zeje�ejdddd'dddedejdd(dddd)dddd�ejdd*dd dd+dddd�gd"dddd#d,d%d-�	Zeje�ejdddd.dddedejdd/dddd dddd�ejdd0dd dd1dddd�gd"dddd#d2d%d3�	Zeje�ejdddd4dddedejdd5dddd6dddd�ejdd7dd dd8dddd�gd"dddd#d9d%d:�	Zeje�ejdddd;dddedejdd<dddd=dddd�ejdd>dd dd?dddd�gd"dddd#d@d%dA�	Zeje�ejddddBdddedejddCdddddddd�ejddDdd ddEdddd�gd"dddd#dFd%dG�	Zeje�ejddHddIddded"ddJejddKddLdddd ddMdNd!dOd dPedQddRddSdd"ddTedUdddde�ejddVddWdd dd1dd=dNd=dOd dPedQedX�jdY�dRddSdd"ddTedUdddde�gdZgd[gd\egddd]eddd^gd_gd#d`d%d&�Z ejddaddbddded"ddJejddKddcdddd ddMdNd!dOd dPedQd+dRddSdd"ddTedUdddde�ejddVddddd dd1dd=dNd=dOd dPedQede�jdY�dRddSdd"ddTedUdddde�ejddfddgdd1dddd6dNd?dOd dPedQddRddSdd"ddTedUdddde�gdZgd[e gd\egddd]eddd^gd_gd#dhd%d-�Z!ejddiddjddded"ddJejddKddkdddd ddMdNd!dOd dPedQd1dRddSdd"ddTedUdddde�ejddlddmdd dd1dd6dNd?dOd dPedQddRddSdd"ddTedUdddde�gdZgd[e!gd\egddd]eddd^d�gd_gd#dpd%dq�Z"ejddHddrddded"ddJejddKddsdddd ddMdNd!dOd dPedQd8dRddSdd"ddTedUdddde�ejddVddtdd dd1dd=dNd=dOd dPedQedu�jdY�dRddSdd"ddTedUdddde�gdZgd[gd\egddd]eddd^gd_gd#dvd%d:�Z#ejddaddwddded"ddJejddKddxdddd ddMdNd!dOd dPedQd=dRddSdd"ddTedUdddde�ejddVddydd dd1dd=dNd=dOd dPedQedz�jdY�dRddSdd"ddTedUdddde�ejddfdd{dd1dddd6dNd?dOd dPedQddRddSdd"ddTedUdddde�gdZgd[e#gd\egddd]eddd^gd_gd#d|d%dA�Z$ejdd}dd~ddded"ddJejddKdddddd ddMdNd!dOd dPedQddRddSdd"ddTedUdddde�ejddldd�dd dd1dd6dNd?dOd dPedQddRddSdd"ddTedUdddde�gdZgd[e$gd\egddd]eddd^gd_gd#d�d%dG�Z%ee j&dK_'e!e _(e e_(ee!j&dK_'e e!j&df_)e"e!_(e!e_(ee"j&dK_'e!e"j&dl_)e"e_(ee#j&dK_'e$e#_(e#e_(ee$j&dK_'e#e$j&df_)e%e$_(e$e_(ee%j&dK_'e$e%j&dl_)e%e_(e"ej*di<e%ej*d}<ej+e�e	j,diej-fe.dae	j,daej-fe.dHe	j,dHej-fe.d�e d�d���d�e!d�d���d�e"d�d���Z/ej0e/�ej0e/j1�ej0e/j1j2�e	j,d}ej-fe.dae	j,daej-fe.dHe	j,dHej-fe.d�e#d�d���d�e$d�d���d�e%d�d���Z3ej0e3�ej0e3j1�ej0e3j1j2�dS(�i����NiicCs|S(N((tx((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test1_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test1_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames4google/protobuf/internal/descriptor_pool_test1.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbsI
4google/protobuf/internal/descriptor_pool_test1.protogoogle.protobuf.python.internal"�
DescriptorPoolTest1Z
nested_enum (2?.google.protobuf.python.internal.DescriptorPoolTest1.NestedEnum:BETAZ
nested_message (2B.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage�

NestedMessageh
nested_enum (2M.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.NestedEnum:ZETA
nested_field (	:betaq
deep_nested_message (2T.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage�
DeepNestedMessagey
nested_enum (2_.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.NestedEnum:ETA
nested_field (	:theta" 

NestedEnum
ETA	
THETA"#

NestedEnum
EPSILON
ZETA"!

NestedEnum	
ALPHA
BETA*	�����"�
DescriptorPoolTest2[
nested_enum (2?.google.protobuf.python.internal.DescriptorPoolTest2.NestedEnum:GAMMAZ
nested_message (2B.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage�

NestedMessageh
nested_enum (2M.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.NestedEnum:IOTA
nested_field (	:deltaq
deep_nested_message (2T.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage�
DeepNestedMessagex
nested_enum (2_.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.NestedEnum:MU
nested_field (	:lambda" 

NestedEnum

LAMBDA
MU"!

NestedEnum
IOTA		
KAPPA
""

NestedEnum	
GAMMA	
DELTAt
NestedEnumt	full_names^google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.NestedEnumtfilenametfiletvaluestETAtindextnumberitoptionsttypetTHETAiitcontaining_typetserialized_starti�tserialized_endisLgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.NestedEnumtEPSILONitZETAiii's>google.protobuf.python.internal.DescriptorPoolTest1.NestedEnumtALPHAtBETAii)iJs^google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.NestedEnumtLAMBDAitMUii�isLgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.NestedEnumtIOTAi	tKAPPAi
ii%s>google.protobuf.python.internal.DescriptorPoolTest2.NestedEnumtGAMMAtDELTAii'iItDeepNestedMessagesSgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessagetfieldstnested_enums_google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.nested_enumitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetnested_fields`google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.nested_fieldtthetasutf-8t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi5t
NestedMessagesAgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessagesMgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.nested_enumsNgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.nested_fieldtbetatdeep_nested_messagesUgoogle.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.deep_nested_messagei*tDescriptorPoolTest1s3google.protobuf.python.internal.DescriptorPoolTest1s?google.protobuf.python.internal.DescriptorPoolTest1.nested_enumtnested_messagesBgoogle.protobuf.python.internal.DescriptorPoolTest1.nested_messagei�i iZiUsSgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessages_google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.nested_enums`google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.nested_fieldtlambdai5sAgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessagesMgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.nested_enumsNgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.nested_fieldtdeltasUgoogle.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.deep_nested_messagei)tDescriptorPoolTest2s3google.protobuf.python.internal.DescriptorPoolTest2s?google.protobuf.python.internal.DescriptorPoolTest2.nested_enumsBgoogle.protobuf.python.internal.DescriptorPoolTest2.nested_messageiXt
DESCRIPTORt
__module__s2google.protobuf.internal.descriptor_pool_test1_pb2(i�i (4tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorRBtEnumDescriptortNonetEnumValueDescriptort?_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUMtRegisterEnumDescriptort-_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_NESTEDENUMt_DESCRIPTORPOOLTEST1_NESTEDENUMt?_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUMt-_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_NESTEDENUMt_DESCRIPTORPOOLTEST2_NESTEDENUMt
DescriptortFieldDescriptortTruetFalsetdecodet4_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGEt"_DESCRIPTORPOOLTEST1_NESTEDMESSAGEt_DESCRIPTORPOOLTEST1t4_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGEt"_DESCRIPTORPOOLTEST2_NESTEDMESSAGEt_DESCRIPTORPOOLTEST2tfields_by_nameR/RR.tmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR=tRegisterMessageR:R'RA(((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test1_pb2.pyt<module>s�%					
				
				
				
				
				
																																															




PK�\��1�88'protobuf/internal/factory_test2_pb2.pycnu�[����
���hcA@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZejd
dddddded�dejg�Zejd
ddddddedejd
dddddddd d�ejd
d!dd"dd"ddd d�gd#dddd$d%d&d'�	Zeje�eje�ZdZd"Zd(Zejd
d)dd*dddd(d d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e"d5dddde�Z#ejd
d6dd7dddedejd
d8ddddddd d�ejd
d9dd"dd"ddd d�gd#dddd$d:d&d;�	Z$eje$�ejd
d<dd=dddedejd
d>ddddddd d�gd#dddd$d?d&d@�	Z%eje%�ej&d
dAddBddded#ddCejd
dDddEdddd"d d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e d5dddde�gdFgdGgdHgdddIe dddJgdKgd$dLd&dM�Z'ej&d
dNddOddded#ddCejd
dPddQddddRd d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e d5dddde�ejd
dSddTdd"ddUd d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e d5dddde�gdFgdGgdHgdddIe dddJgdKgd$dVd&dW�Z(ej&d
dXddYddded#ddCejd
dZdd[dddd"d d\d,d"d-d]d.e d/dd2dd3dd#dd4e d5dddde�ejd
d^dd_dd"dd]d dUd,d`d-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
daddbdd]ddd dUd,d`d-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
dcddddddded dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
dhddiddedd\d dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
djddkdd\ddld dUd,d`d-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
dmddnddlddod dUd,d`d-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
dpddqddodd`d dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
drddsdd`dd+d dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
dtddudd+ddgd d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e d5dddde�ejd
dvddwddgddfd d+d,d+d-dd.e d/gd2dd3dd#dd4e d5dddde�ejd
dxddyddfddzd dgd,dgd-dd.e d/gd2dd3dd#dd4e d5dddde�ejd
d{dd|ddzdd}d dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
d~ddddRdd�d d\d,d"d-d"d.e"d/d�d2dd3dd#dd4e d5dddde�ejd
d�dd�ddUdd�d d"d,d\d-d"d.e"d/e)d��d2dd3dd#dd4e d5dddde�ejd
d�dd�dd}dd�d d+d,d+d-d"d.e"d/ed��j!d1�d2dd3dd#dd4e d5dddde�ejd
d�dd�dd�dd�d d`d,dod-d"d.e"d/e d2dd3dd#dd4e d5dddde�ejd
d�dd�dd�dd�d dUd,d`d-d"d.e"d/d"d2dd3dd#dd4e d5dddde�ejd
d�dd�dd�dd�d dzd,d+d-d"d.e"d/ed��d2dd3dd#dd4e d5dddde�ejd
d�dd�dd�dd�d d\d,d"d-d"d.e d/dd2dd3dd#dd4e d5dddde�ejd
d�dd�dd�dd�d d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e d5dddde�gdFejd
d�dd�dddd�d d+d,d+d-d"d.e d/ed0�j!d1�d2dd3dd#dd4e"d5dddde�gdGe'e(gdHe$gdddIe dddJgdKej*d
d�dd�ddd#ddCg�gd$d�d&d��Z+ej&d
d�dd�ddded#ddCejd
d{dd�dddd"d dfd,dgd-d"d.e d/dd2dd3dd#dd4e d5dddde�gdFgdGgdHgdddIe dddJgdKgd$d�d&d��Z,ej&d
d�dd�ddded#ddCgdFgdGgdHe%gdddIe dddJgdKgd$d�d&d@�Z-ej&d
d�dd�ddded#ddCejd
d�dd�dddd"d d\d,d"d-d"d.e d/dd2dd3dd#dd4e d5dddde�gdFgdGgdHgdej.ej/�ed���dIe dddJgdKgd$d�d&d��Z0e+e'_1e+e(_1ee+j2d^_3e$e+j2da_3e'e+j2dc_4ej5e+j2dh_4ej6e+j2dj_3ej7e+j2dm_3ej8e+j2dp_4e+e+j2dr_4e(e+j2dx_4e,e+j2d{_4ee+j2d�_3e+e$_1e+j9d�j:j;e+j2d��e+j9d�e+j2d�_<e+j9d�j:j;e+j2d��e+j9d�e+j2d�_<e+e,j2d{_4e-e%_1e+ej=dX<e,ej=d�<e-ej=d�<e0ej=d�<eej>d<e#ej?d)<ej@e�ejAdXe	jBfeCdAejAdAe	jBfeCd�e'd�d���dNejAdNe	jBfeCd�e(d�d���d�e+d�d���ZDejEeD�ejEeDjF�ejEeDjG�ejAd�e	jBfeCd�e,d�d���ZHejEeH�ejAd�e	jBfeCd�e-d�d���ZIejEeI�ejAd�e	jBfeCd�e0d�d���ZJejEeJ�ejKjLe#�ejKjLe+j?d��e"e0_Mej.ej/�ed���e0_NdS(�i����NiicCs|S(N((tx((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test2_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test2_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tfactory_test1_pb2tnames,google/protobuf/internal/factory_test2.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbs�
,google/protobuf/internal/factory_test2.protogoogle.protobuf.python.internal,google/protobuf/internal/factory_test1.proto"�
Factory2Message
	mandatory (E
factory_2_enum (2-.google.protobuf.python.internal.Factory2Enumb
nested_factory_2_enum (2C.google.protobuf.python.internal.Factory2Message.NestedFactory2Enumh
nested_factory_2_message (2F.google.protobuf.python.internal.Factory2Message.NestedFactory2MessageK
factory_1_message (20.google.protobuf.python.internal.Factory1MessageE
factory_1_enum (2-.google.protobuf.python.internal.Factory1Enumb
nested_factory_1_enum (2C.google.protobuf.python.internal.Factory1Message.NestedFactory1Enumh
nested_factory_1_message (2F.google.protobuf.python.internal.Factory1Message.NestedFactory1MessageJ
circular_message	 (20.google.protobuf.python.internal.Factory2Message
scalar_value
 (	

list_value (	I
grouped (
28.google.protobuf.python.internal.Factory2Message.Grouped:
loop (2,.google.protobuf.python.internal.LoopMessage
int_with_default (:1776!
double_with_default (:9.99(
string_with_default (	:hello world 
bool_with_default (:false[
enum_with_default (2-.google.protobuf.python.internal.Factory2Enum:FACTORY_2_VALUE_1&
bytes_with_default (:
a\373\000c
	oneof_int (H
oneof_string (	H&
NestedFactory2Message
value (	)
Grouped
part_1
 (	
part_2 (	"P
NestedFactory2Enum
NESTED_FACTORY_2_VALUE_0
NESTED_FACTORY_2_VALUE_12I
one_more_field0.google.protobuf.python.internal.Factory1Message� (	B
oneof_field"M
LoopMessage>
loop (20.google.protobuf.python.internal.Factory2Message"D
MessageWithNestedEnumOnly"'

NestedEnum
NESTED_MESSAGE_ENUM_0"'
MessageWithOption
field1 (:*<
Factory2Enum
FACTORY_2_VALUE_0
FACTORY_2_VALUE_1:H

another_field0.google.protobuf.python.internal.Factory1Message� (	tdependenciestFactory2Enumt	full_names,google.protobuf.python.internal.Factory2EnumtfilenametfiletvaluestFACTORY_2_VALUE_0tindextnumbertoptionsttypetFACTORY_2_VALUE_1itcontaining_typetserialized_startitserialized_endiTi�t
another_fields-google.protobuf.python.internal.another_fieldi	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetNestedFactory2EnumsBgoogle.protobuf.python.internal.Factory2Message.NestedFactory2EnumtNESTED_FACTORY_2_VALUE_0tNESTED_FACTORY_2_VALUE_1i�i�t
NestedEnumsDgoogle.protobuf.python.internal.MessageWithNestedEnumOnly.NestedEnumtNESTED_MESSAGE_ENUM_0i�i�tNestedFactory2MessagesEgoogle.protobuf.python.internal.Factory2Message.NestedFactory2MessagetfieldstvaluesKgoogle.protobuf.python.internal.Factory2Message.NestedFactory2Message.valuet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi[i�tGroupeds7google.protobuf.python.internal.Factory2Message.Groupedtpart_1s>google.protobuf.python.internal.Factory2Message.Grouped.part_1i
tpart_2s>google.protobuf.python.internal.Factory2Message.Grouped.part_2ii�i�tFactory2Messages/google.protobuf.python.internal.Factory2Messaget	mandatorys9google.protobuf.python.internal.Factory2Message.mandatoryiitfactory_2_enums>google.protobuf.python.internal.Factory2Message.factory_2_enumitnested_factory_2_enumsEgoogle.protobuf.python.internal.Factory2Message.nested_factory_2_enumtnested_factory_2_messagesHgoogle.protobuf.python.internal.Factory2Message.nested_factory_2_messageiii
tfactory_1_messagesAgoogle.protobuf.python.internal.Factory2Message.factory_1_messagetfactory_1_enums>google.protobuf.python.internal.Factory2Message.factory_1_enumitnested_factory_1_enumsEgoogle.protobuf.python.internal.Factory2Message.nested_factory_1_enumitnested_factory_1_messagesHgoogle.protobuf.python.internal.Factory2Message.nested_factory_1_messagetcircular_messages@google.protobuf.python.internal.Factory2Message.circular_messagetscalar_values<google.protobuf.python.internal.Factory2Message.scalar_valuet
list_values:google.protobuf.python.internal.Factory2Message.list_valuetgroupeds7google.protobuf.python.internal.Factory2Message.groupeditloops4google.protobuf.python.internal.Factory2Message.loopitint_with_defaults@google.protobuf.python.internal.Factory2Message.int_with_defaultii�tdouble_with_defaultsCgoogle.protobuf.python.internal.Factory2Message.double_with_defaultig{�G�#@tstring_with_defaultsCgoogle.protobuf.python.internal.Factory2Message.string_with_defaultishello worldtbool_with_defaultsAgoogle.protobuf.python.internal.Factory2Message.bool_with_defaultitenum_with_defaultsAgoogle.protobuf.python.internal.Factory2Message.enum_with_defaultitbytes_with_defaultsBgoogle.protobuf.python.internal.Factory2Message.bytes_with_defaultisa�ct	oneof_ints9google.protobuf.python.internal.Factory2Message.oneof_intitoneof_strings<google.protobuf.python.internal.Factory2Message.oneof_stringitone_more_fields>google.protobuf.python.internal.Factory2Message.one_more_fieldi�toneof_fields;google.protobuf.python.internal.Factory2Message.oneof_fieldi�iXtLoopMessages+google.protobuf.python.internal.LoopMessages0google.protobuf.python.internal.LoopMessage.loopiZi�tMessageWithNestedEnumOnlys9google.protobuf.python.internal.MessageWithNestedEnumOnlyi�tMessageWithOptions1google.protobuf.python.internal.MessageWithOptiontfield1s8google.protobuf.python.internal.MessageWithOption.field1si�it
DESCRIPTORt
__module__s*google.protobuf.internal.factory_test2_pb2(Otsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt8google_dot_protobuf_dot_internal_dot_factory__test1__pb2tFileDescriptorRVtEnumDescriptortNonetEnumValueDescriptort
_FACTORY2ENUMtRegisterEnumDescriptortEnumTypeWrapperRRRtANOTHER_FIELD_FIELD_NUMBERtFieldDescriptortFalsetdecodetTrueR t#_FACTORY2MESSAGE_NESTEDFACTORY2ENUMt%_MESSAGEWITHNESTEDENUMONLY_NESTEDENUMt
Descriptort&_FACTORY2MESSAGE_NESTEDFACTORY2MESSAGEt_FACTORY2MESSAGE_GROUPEDtfloattOneofDescriptort_FACTORY2MESSAGEt_LOOPMESSAGEt_MESSAGEWITHNESTEDENUMONLYt
_ParseOptionstMessageOptionst_MESSAGEWITHOPTIONRtfields_by_nameR&R%t_FACTORY1MESSAGEt
_FACTORY1ENUMt#_FACTORY1MESSAGE_NESTEDFACTORY1ENUMt&_FACTORY1MESSAGE_NESTEDFACTORY1MESSAGEtoneofs_by_nameR/tappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR:tRegisterMessageR.R7RRRSRTtFactory1MessagetRegisterExtensionthas_optionst_options(((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test2_pb2.pyt<module>sH%					
					
			
																																														










	PK�\YJxԞ9�9#protobuf/internal/generator_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# TODO(robinson): Flesh this out considerably.  We focused on reflection_test.py
# first, since it's testing the subtler code, and since it provides decent
# indirect testing of the protocol compiler output.

"""Unittest that directly tests the output of the pure-Python protocol
compiler.  See //google/protobuf/internal/reflection_test.py for a test which
further ensures that we can use Python protocol message objects as we expect.
"""

__author__ = 'robinson@google.com (Will Robinson)'

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf.internal import test_bad_identifiers_pb2
from google.protobuf import unittest_custom_options_pb2
from google.protobuf import unittest_import_pb2
from google.protobuf import unittest_import_public_pb2
from google.protobuf import unittest_mset_pb2
from google.protobuf import unittest_mset_wire_format_pb2
from google.protobuf import unittest_no_generic_services_pb2
from google.protobuf import unittest_pb2
from google.protobuf import service
from google.protobuf import symbol_database

MAX_EXTENSION = 536870912


class GeneratorTest(unittest.TestCase):

  def testNestedMessageDescriptor(self):
    field_name = 'optional_nested_message'
    proto_type = unittest_pb2.TestAllTypes
    self.assertEqual(
        proto_type.NestedMessage.DESCRIPTOR,
        proto_type.DESCRIPTOR.fields_by_name[field_name].message_type)

  def testEnums(self):
    # We test only module-level enums here.
    # TODO(robinson): Examine descriptors directly to check
    # enum descriptor output.
    self.assertEqual(4, unittest_pb2.FOREIGN_FOO)
    self.assertEqual(5, unittest_pb2.FOREIGN_BAR)
    self.assertEqual(6, unittest_pb2.FOREIGN_BAZ)

    proto = unittest_pb2.TestAllTypes()
    self.assertEqual(1, proto.FOO)
    self.assertEqual(1, unittest_pb2.TestAllTypes.FOO)
    self.assertEqual(2, proto.BAR)
    self.assertEqual(2, unittest_pb2.TestAllTypes.BAR)
    self.assertEqual(3, proto.BAZ)
    self.assertEqual(3, unittest_pb2.TestAllTypes.BAZ)

  def testExtremeDefaultValues(self):
    message = unittest_pb2.TestExtremeDefaultValues()

    # Python pre-2.6 does not have isinf() or isnan() functions, so we have
    # to provide our own.
    def isnan(val):
      # NaN is never equal to itself.
      return val != val
    def isinf(val):
      # Infinity times zero equals NaN.
      return not isnan(val) and isnan(val * 0)

    self.assertTrue(isinf(message.inf_double))
    self.assertTrue(message.inf_double > 0)
    self.assertTrue(isinf(message.neg_inf_double))
    self.assertTrue(message.neg_inf_double < 0)
    self.assertTrue(isnan(message.nan_double))

    self.assertTrue(isinf(message.inf_float))
    self.assertTrue(message.inf_float > 0)
    self.assertTrue(isinf(message.neg_inf_float))
    self.assertTrue(message.neg_inf_float < 0)
    self.assertTrue(isnan(message.nan_float))
    self.assertEqual("? ? ?? ?? ??? ??/ ??-", message.cpp_trigraph)

  def testHasDefaultValues(self):
    desc = unittest_pb2.TestAllTypes.DESCRIPTOR

    expected_has_default_by_name = {
        'optional_int32': False,
        'repeated_int32': False,
        'optional_nested_message': False,
        'default_int32': True,
    }

    has_default_by_name = dict(
        [(f.name, f.has_default_value)
         for f in desc.fields
         if f.name in expected_has_default_by_name])
    self.assertEqual(expected_has_default_by_name, has_default_by_name)

  def testContainingTypeBehaviorForExtensions(self):
    self.assertEqual(unittest_pb2.optional_int32_extension.containing_type,
                     unittest_pb2.TestAllExtensions.DESCRIPTOR)
    self.assertEqual(unittest_pb2.TestRequired.single.containing_type,
                     unittest_pb2.TestAllExtensions.DESCRIPTOR)

  def testExtensionScope(self):
    self.assertEqual(unittest_pb2.optional_int32_extension.extension_scope,
                     None)
    self.assertEqual(unittest_pb2.TestRequired.single.extension_scope,
                     unittest_pb2.TestRequired.DESCRIPTOR)

  def testIsExtension(self):
    self.assertTrue(unittest_pb2.optional_int32_extension.is_extension)
    self.assertTrue(unittest_pb2.TestRequired.single.is_extension)

    message_descriptor = unittest_pb2.TestRequired.DESCRIPTOR
    non_extension_descriptor = message_descriptor.fields_by_name['a']
    self.assertTrue(not non_extension_descriptor.is_extension)

  def testOptions(self):
    proto = unittest_mset_wire_format_pb2.TestMessageSet()
    self.assertTrue(proto.DESCRIPTOR.GetOptions().message_set_wire_format)

  def testMessageWithCustomOptions(self):
    proto = unittest_custom_options_pb2.TestMessageWithCustomOptions()
    enum_options = proto.DESCRIPTOR.enum_types_by_name['AnEnum'].GetOptions()
    self.assertTrue(enum_options is not None)
    # TODO(gps): We really should test for the presence of the enum_opt1
    # extension and for its value to be set to -789.

  def testNestedTypes(self):
    self.assertEqual(
        set(unittest_pb2.TestAllTypes.DESCRIPTOR.nested_types),
        set([
            unittest_pb2.TestAllTypes.NestedMessage.DESCRIPTOR,
            unittest_pb2.TestAllTypes.OptionalGroup.DESCRIPTOR,
            unittest_pb2.TestAllTypes.RepeatedGroup.DESCRIPTOR,
        ]))
    self.assertEqual(unittest_pb2.TestEmptyMessage.DESCRIPTOR.nested_types, [])
    self.assertEqual(
        unittest_pb2.TestAllTypes.NestedMessage.DESCRIPTOR.nested_types, [])

  def testContainingType(self):
    self.assertTrue(
        unittest_pb2.TestEmptyMessage.DESCRIPTOR.containing_type is None)
    self.assertTrue(
        unittest_pb2.TestAllTypes.DESCRIPTOR.containing_type is None)
    self.assertEqual(
        unittest_pb2.TestAllTypes.NestedMessage.DESCRIPTOR.containing_type,
        unittest_pb2.TestAllTypes.DESCRIPTOR)
    self.assertEqual(
        unittest_pb2.TestAllTypes.NestedMessage.DESCRIPTOR.containing_type,
        unittest_pb2.TestAllTypes.DESCRIPTOR)
    self.assertEqual(
        unittest_pb2.TestAllTypes.RepeatedGroup.DESCRIPTOR.containing_type,
        unittest_pb2.TestAllTypes.DESCRIPTOR)

  def testContainingTypeInEnumDescriptor(self):
    self.assertTrue(unittest_pb2._FOREIGNENUM.containing_type is None)
    self.assertEqual(unittest_pb2._TESTALLTYPES_NESTEDENUM.containing_type,
                     unittest_pb2.TestAllTypes.DESCRIPTOR)

  def testPackage(self):
    self.assertEqual(
        unittest_pb2.TestAllTypes.DESCRIPTOR.file.package,
        'protobuf_unittest')
    desc = unittest_pb2.TestAllTypes.NestedMessage.DESCRIPTOR
    self.assertEqual(desc.file.package, 'protobuf_unittest')
    self.assertEqual(
        unittest_import_pb2.ImportMessage.DESCRIPTOR.file.package,
        'protobuf_unittest_import')

    self.assertEqual(
        unittest_pb2._FOREIGNENUM.file.package, 'protobuf_unittest')
    self.assertEqual(
        unittest_pb2._TESTALLTYPES_NESTEDENUM.file.package,
        'protobuf_unittest')
    self.assertEqual(
        unittest_import_pb2._IMPORTENUM.file.package,
        'protobuf_unittest_import')

  def testExtensionRange(self):
    self.assertEqual(
        unittest_pb2.TestAllTypes.DESCRIPTOR.extension_ranges, [])
    self.assertEqual(
        unittest_pb2.TestAllExtensions.DESCRIPTOR.extension_ranges,
        [(1, MAX_EXTENSION)])
    self.assertEqual(
        unittest_pb2.TestMultipleExtensionRanges.DESCRIPTOR.extension_ranges,
        [(42, 43), (4143, 4244), (65536, MAX_EXTENSION)])

  def testFileDescriptor(self):
    self.assertEqual(unittest_pb2.DESCRIPTOR.name,
                     'google/protobuf/unittest.proto')
    self.assertEqual(unittest_pb2.DESCRIPTOR.package, 'protobuf_unittest')
    self.assertFalse(unittest_pb2.DESCRIPTOR.serialized_pb is None)
    self.assertEqual(unittest_pb2.DESCRIPTOR.dependencies,
                     [unittest_import_pb2.DESCRIPTOR])
    self.assertEqual(unittest_import_pb2.DESCRIPTOR.dependencies,
                     [unittest_import_public_pb2.DESCRIPTOR])
    self.assertEqual(unittest_import_pb2.DESCRIPTOR.public_dependencies,
                     [unittest_import_public_pb2.DESCRIPTOR])
  def testNoGenericServices(self):
    self.assertTrue(hasattr(unittest_no_generic_services_pb2, "TestMessage"))
    self.assertTrue(hasattr(unittest_no_generic_services_pb2, "FOO"))
    self.assertTrue(hasattr(unittest_no_generic_services_pb2, "test_extension"))

    # Make sure unittest_no_generic_services_pb2 has no services subclassing
    # Proto2 Service class.
    if hasattr(unittest_no_generic_services_pb2, "TestService"):
      self.assertFalse(issubclass(unittest_no_generic_services_pb2.TestService,
                                  service.Service))

  def testMessageTypesByName(self):
    file_type = unittest_pb2.DESCRIPTOR
    self.assertEqual(
        unittest_pb2._TESTALLTYPES,
        file_type.message_types_by_name[unittest_pb2._TESTALLTYPES.name])

    # Nested messages shouldn't be included in the message_types_by_name
    # dictionary (like in the C++ API).
    self.assertFalse(
        unittest_pb2._TESTALLTYPES_NESTEDMESSAGE.name in
        file_type.message_types_by_name)

  def testEnumTypesByName(self):
    file_type = unittest_pb2.DESCRIPTOR
    self.assertEqual(
        unittest_pb2._FOREIGNENUM,
        file_type.enum_types_by_name[unittest_pb2._FOREIGNENUM.name])

  def testExtensionsByName(self):
    file_type = unittest_pb2.DESCRIPTOR
    self.assertEqual(
        unittest_pb2.my_extension_string,
        file_type.extensions_by_name[unittest_pb2.my_extension_string.name])

  def testPublicImports(self):
    # Test public imports as embedded message.
    all_type_proto = unittest_pb2.TestAllTypes()
    self.assertEqual(0, all_type_proto.optional_public_import_message.e)

    # PublicImportMessage is actually defined in unittest_import_public_pb2
    # module, and is public imported by unittest_import_pb2 module.
    public_import_proto = unittest_import_pb2.PublicImportMessage()
    self.assertEqual(0, public_import_proto.e)
    self.assertTrue(unittest_import_public_pb2.PublicImportMessage is
                    unittest_import_pb2.PublicImportMessage)

  def testBadIdentifiers(self):
    # We're just testing that the code was imported without problems.
    message = test_bad_identifiers_pb2.TestBadIdentifiers()
    self.assertEqual(message.Extensions[test_bad_identifiers_pb2.message],
                     "foo")
    self.assertEqual(message.Extensions[test_bad_identifiers_pb2.descriptor],
                     "bar")
    self.assertEqual(message.Extensions[test_bad_identifiers_pb2.reflection],
                     "baz")
    self.assertEqual(message.Extensions[test_bad_identifiers_pb2.service],
                     "qux")

  def testOneof(self):
    desc = unittest_pb2.TestAllTypes.DESCRIPTOR
    self.assertEqual(1, len(desc.oneofs))
    self.assertEqual('oneof_field', desc.oneofs[0].name)
    self.assertEqual(0, desc.oneofs[0].index)
    self.assertIs(desc, desc.oneofs[0].containing_type)
    self.assertIs(desc.oneofs[0], desc.oneofs_by_name['oneof_field'])
    nested_names = set(['oneof_uint32', 'oneof_nested_message',
                        'oneof_string', 'oneof_bytes'])
    self.assertEqual(
        nested_names,
        set([field.name for field in desc.oneofs[0].fields]))
    for field_name, field_desc in desc.fields_by_name.items():
      if field_name in nested_names:
        self.assertIs(desc.oneofs[0], field_desc.containing_oneof)
      else:
        self.assertIsNone(field_desc.containing_oneof)


class SymbolDatabaseRegistrationTest(unittest.TestCase):
  """Checks that messages, enums and files are correctly registered."""

  def testGetSymbol(self):
    self.assertEqual(
        unittest_pb2.TestAllTypes, symbol_database.Default().GetSymbol(
            'protobuf_unittest.TestAllTypes'))
    self.assertEqual(
        unittest_pb2.TestAllTypes.NestedMessage,
        symbol_database.Default().GetSymbol(
            'protobuf_unittest.TestAllTypes.NestedMessage'))
    with self.assertRaises(KeyError):
      symbol_database.Default().GetSymbol('protobuf_unittest.NestedMessage')
    self.assertEqual(
        unittest_pb2.TestAllTypes.OptionalGroup,
        symbol_database.Default().GetSymbol(
            'protobuf_unittest.TestAllTypes.OptionalGroup'))
    self.assertEqual(
        unittest_pb2.TestAllTypes.RepeatedGroup,
        symbol_database.Default().GetSymbol(
            'protobuf_unittest.TestAllTypes.RepeatedGroup'))

  def testEnums(self):
    self.assertEqual(
        'protobuf_unittest.ForeignEnum',
        symbol_database.Default().pool.FindEnumTypeByName(
            'protobuf_unittest.ForeignEnum').full_name)
    self.assertEqual(
        'protobuf_unittest.TestAllTypes.NestedEnum',
        symbol_database.Default().pool.FindEnumTypeByName(
            'protobuf_unittest.TestAllTypes.NestedEnum').full_name)

  def testFindFileByName(self):
    self.assertEqual(
        'google/protobuf/unittest.proto',
        symbol_database.Default().pool.FindFileByName(
            'google/protobuf/unittest.proto').name)

if __name__ == '__main__':
  unittest.main()
PK�\f�z�-protobuf/internal/descriptor_database_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Tests for google.protobuf.descriptor_database."""

__author__ = 'matthewtoia@google.com (Matt Toia)'

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import unittest_pb2
from google.protobuf import descriptor_pb2
from google.protobuf.internal import factory_test2_pb2
from google.protobuf import descriptor_database


class DescriptorDatabaseTest(unittest.TestCase):

  def testAdd(self):
    db = descriptor_database.DescriptorDatabase()
    file_desc_proto = descriptor_pb2.FileDescriptorProto.FromString(
        factory_test2_pb2.DESCRIPTOR.serialized_pb)
    db.Add(file_desc_proto)

    self.assertEqual(file_desc_proto, db.FindFileByName(
        'google/protobuf/internal/factory_test2.proto'))
    # Can find message type.
    self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
        'google.protobuf.python.internal.Factory2Message'))
    # Can find nested message type.
    self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
        'google.protobuf.python.internal.Factory2Message.NestedFactory2Message'))
    # Can find enum type.
    self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
        'google.protobuf.python.internal.Factory2Enum'))
    # Can find nested enum type.
    self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
        'google.protobuf.python.internal.Factory2Message.NestedFactory2Enum'))
    self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
        'google.protobuf.python.internal.MessageWithNestedEnumOnly.NestedEnum'))
    # Can find field.
    self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
        'google.protobuf.python.internal.Factory2Message.list_field'))
    # Can find enum value.
    self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
        'google.protobuf.python.internal.Factory2Enum.FACTORY_2_VALUE_0'))
    # Can find top level extension.
    self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
        'google.protobuf.python.internal.another_field'))
    # Can find nested extension inside a message.
    self.assertEqual(file_desc_proto, db.FindFileContainingSymbol(
        'google.protobuf.python.internal.Factory2Message.one_more_field'))

    # Can find service.
    file_desc_proto2 = descriptor_pb2.FileDescriptorProto.FromString(
        unittest_pb2.DESCRIPTOR.serialized_pb)
    db.Add(file_desc_proto2)
    self.assertEqual(file_desc_proto2, db.FindFileContainingSymbol(
        'protobuf_unittest.TestService'))

    # Non-existent field under a valid top level symbol can also be
    # found. The behavior is the same with protobuf C++.
    self.assertEqual(file_desc_proto2, db.FindFileContainingSymbol(
        'protobuf_unittest.TestAllTypes.none_field'))

    self.assertRaises(KeyError,
                      db.FindFileContainingSymbol,
                      'protobuf_unittest.NoneMessage')


if __name__ == '__main__':
  unittest.main()
PK�\��l�Q}Q}protobuf/internal/test_util.pycnu�[����
���hc@s�dZdZddlZddlZddlZddlmZddlmZye	Wne
k
rqeZ	nXd�Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zdejfd��YZdS(spUtilities for Python proto2 tests.

This is intentionally modeled on C++ code in
//google/protobuf/test_util.*.
s#robinson@google.com (Will Robinson)i����N(tunittest_import_pb2(tunittest_pb2cCs|jjdkS(Ntproto2(t
DESCRIPTORtsyntax(tmessage((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytIsProto27scCsrd|_d|_d|_d|_d|_d|_d|_d|_d	|_d
|_	d|_
d|_t|_
d
|_d|_t|�r�d|j_nd|j_d|j_d|j_d|j_tjj|_tj|_ t|�rt!j"|_#nd|_$d|_%|j&j'd�|j(j'd�|j)j'd�|j*j'd�|j+j'd�|j,j'd�|j-j'd�|j.j'd�|j/j'd�|j0j'd�|j1j'd �|j2j'd!�|j3j't�|j4j'd"�|j5j'd#�t|�r+d$|j6j7�_nd%|j8j7�_d&|j9j7�_d'|j:j7�_d(|j;j7�_|j<j'tjj=�|j>j'tj?�t|�r�|j@j't!jA�n|jBj'd)�|jCj'd*�|j&j'd+�|j(j'd+�|j)j'd+�|j*j'd+�|j+j'd+�|j,j'd+�|j-j'd+�|j.j'd+�|j/j'd+�|j0j'd+�|j1j'd+�|j2j'd+�|j3j't�|j4j'd,�|j5j'd-�d.|j&d/<d0|j(d/<d1|j)d/<d2|j*d/<d3|j+d/<d4|j,d/<d5|j-d/<d6|j.d/<d7|j/d/<d8|j0d/<d9|j1d/<d:|j2d/<tD|j3d/<d;|j4d/<d<|j5d/<t|�r�d=|j6j7�_nd>|j8j7�_d?|j9j7�_d@|j:j7�_dA|j;j7�_|j<j'tjj=�tjj|j<d/<|j>j'tj�t|�rX|j@j't!j"�n|jBj'dB�|jCj'dC�t|�rGdD|_EdE|_FdF|_GdG|_HdH|_IdI|_JdJ|_KdK|_LdL|_MdM|_NdN|_OdO|_PtD|_QdP|_RdQ|_StjjT|_UtjV|_Wt!jX|_YdR|_ZdS|_[ndT|_\dU|j]_dV|_^dW|__dXS(YsmSets every non-lazy field in the message to a unique value.

  Args:
    message: A TestAllTypes instance.
  ieifigihiiijikiliminioipu115t116iuiviwixi~u124u125i�i�i�i�i�i�i�i�i�i�i�i�u215t216i�i�i�i�i�u224u225iu0t0i-ii.i/i0i1i2i3i4i5i6i7i8u315t316i=i>i?i@iGu324u325i�i�i�i�i�i�i�i�i�i�i�i�t415t416t424t425iYiZt603t604N(`toptional_int32toptional_int64toptional_uint32toptional_uint64toptional_sint32toptional_sint64toptional_fixed32toptional_fixed64toptional_sfixed32toptional_sfixed64toptional_floattoptional_doubletTruet
optional_booltoptional_stringtoptional_bytesRt
optionalgrouptatoptional_nested_messagetbbtoptional_foreign_messagetctoptional_import_messagetdtoptional_public_import_messageteRtTestAllTypestBAZtoptional_nested_enumtFOREIGN_BAZtoptional_foreign_enumRt
IMPORT_BAZtoptional_import_enumtoptional_string_piecet
optional_cordtrepeated_int32tappendtrepeated_int64trepeated_uint32trepeated_uint64trepeated_sint32trepeated_sint64trepeated_fixed32trepeated_fixed64trepeated_sfixed32trepeated_sfixed64trepeated_floattrepeated_doublet
repeated_booltrepeated_stringtrepeated_bytest
repeatedgrouptaddtrepeated_nested_messagetrepeated_foreign_messagetrepeated_import_messagetrepeated_lazy_messagetrepeated_nested_enumtBARtrepeated_foreign_enumtFOREIGN_BARtrepeated_import_enumt
IMPORT_BARtrepeated_string_piecet
repeated_cordtFalset
default_int32t
default_int64tdefault_uint32tdefault_uint64tdefault_sint32tdefault_sint64tdefault_fixed32tdefault_fixed64tdefault_sfixed32tdefault_sfixed64t
default_floattdefault_doubletdefault_booltdefault_stringt
default_bytestFOOtdefault_nested_enumtFOREIGN_FOOtdefault_foreign_enumt
IMPORT_FOOtdefault_import_enumtdefault_string_piecetdefault_cordtoneof_uint32toneof_nested_messagetoneof_stringtoneof_bytes(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllNonLazyFields;s�																	














																		cCst|�d|j_dS(Ni(Rntoptional_lazy_messageR$(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllFields�s
cCs�|j}t}t}d||j<d||j<d||j<d||j<d||j<d||j<d||j	<d||j
<d	||j<d
||j<d||j
<d||j<t||j<d
||j<d||j<d||j_d||j_d||j_d||j_d||j_d||j_|jj||j <|jj||j <|j!||j"<|j#||j$<d||j%<d||j&<||j'j(d�||j)j(d�||j*j(d�||j+j(d�||j,j(d�||j-j(d�||j.j(d�||j/j(d�||j0j(d�||j1j(d �||j2j(d!�||j3j(d"�||j4j(t�||j5j(d#�||j6j(d$�d%||j7j8�_d&||j9j8�_d'||j:j8�_d(||j;j8�_d)||j<j8�_||j=j(|jj>�||j?j(|j@�||jAj(|jB�||jCj(d*�||jDj(d+�||j'j(d,�||j)j(d-�||j*j(d.�||j+j(d/�||j,j(d0�||j-j(d1�||j.j(d2�||j/j(d3�||j0j(d4�||j1j(d5�||j2j(d6�||j3j(d7�||j4j(tE�||j5j(d8�||j6j(d9�d:||j7j8�_d;||j9j8�_d<||j:j8�_d=||j;j8�_d>||j<j8�_||j=j(|jj�||j?j(|j!�||jAj(|j#�||jCj(d?�||jDj(d@�dA||jF<dB||jG<dC||jH<dD||jI<dE||jJ<dF||jK<dG||jL<dH||jM<dI||jN<dJ||jO<dK||jP<dL||jQ<tE||jR<dM||jS<dN||jT<|jjU||jV<|jW||jX<|jY||jZ<dO||j[<dP||j\<dQ||j]<dR||j^_dS||j_<dT||j`<dUS(VszSets every extension in the message to a unique value.

  Args:
    message: A unittest_pb2.TestAllExtensions instance.
  ieifigihiiijikiliminioipu115Riuiviwixi~iu124u125i�i�i�i�i�i�i�i�i�i�i�i�u215Ri�i�i�i�i�u224u225i-i.i/i0i1i2i3i4i5i6i7i8u315R
i=i>i?i@iGu324u325i�i�i�i�i�i�i�i�i�i�i�i�u415Ru424RiYiZu603RN(at
ExtensionsRRtoptional_int32_extensiontoptional_int64_extensiontoptional_uint32_extensiontoptional_uint64_extensiontoptional_sint32_extensiontoptional_sint64_extensiontoptional_fixed32_extensiontoptional_fixed64_extensiontoptional_sfixed32_extensiontoptional_sfixed64_extensiontoptional_float_extensiontoptional_double_extensionRtoptional_bool_extensiontoptional_string_extensiontoptional_bytes_extensiontoptionalgroup_extensionR"t!optional_nested_message_extensionR$t"optional_foreign_message_extensionR&t!optional_import_message_extensionR(t(optional_public_import_message_extensionR*toptional_lazy_message_extensionR+R,toptional_nested_enum_extensionR.toptional_foreign_enum_extensionR0toptional_import_enum_extensiontoptional_string_piece_extensiontoptional_cord_extensiontrepeated_int32_extensionR5trepeated_int64_extensiontrepeated_uint32_extensiontrepeated_uint64_extensiontrepeated_sint32_extensiontrepeated_sint64_extensiontrepeated_fixed32_extensiontrepeated_fixed64_extensiontrepeated_sfixed32_extensiontrepeated_sfixed64_extensiontrepeated_float_extensiontrepeated_double_extensiontrepeated_bool_extensiontrepeated_string_extensiontrepeated_bytes_extensiontrepeatedgroup_extensionREt!repeated_nested_message_extensiont"repeated_foreign_message_extensiont!repeated_import_message_extensiontrepeated_lazy_message_extensiontrepeated_nested_enum_extensionRKtrepeated_foreign_enum_extensionRMtrepeated_import_enum_extensionROtrepeated_string_piece_extensiontrepeated_cord_extensionRRtdefault_int32_extensiontdefault_int64_extensiontdefault_uint32_extensiontdefault_uint64_extensiontdefault_sint32_extensiontdefault_sint64_extensiontdefault_fixed32_extensiontdefault_fixed64_extensiontdefault_sfixed32_extensiontdefault_sfixed64_extensiontdefault_float_extensiontdefault_double_extensiontdefault_bool_extensiontdefault_string_extensiontdefault_bytes_extensionRbtdefault_nested_enum_extensionRdtdefault_foreign_enum_extensionRftdefault_import_enum_extensiontdefault_string_piece_extensiontdefault_cord_extensiontoneof_uint32_extensiontoneof_nested_message_extensiontoneof_string_extensiontoneof_bytes_extension(Rt
extensionstpb2t
import_pb2((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllExtensions�s�	



































cCs?d|_d|_d|_d|jtj<d|jtj<dS(s�Sets every field and extension in the message to a unique value.

  Args:
    message: A unittest_pb2.TestAllExtensions message.
  itfoog�?itbarN(tmy_intt	my_stringtmy_floatRqRtmy_extension_inttmy_extension_string(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllFieldsAndExtensionsms
			cCs"tj}tj}g}tj�}d|_|j|j��|j�d|j|<|j|j��|j�d|_	|j|j��|j�d|j|<|j|j��|j�d|_
|j|j��|j�dj|�}||krtd||f��ndS(	s�Ensures that serialized is the serialization we expect for a message
  filled with SetAllFieldsAndExtensions().  (Specifically, ensures that the
  serialization is in canonical, tag-number order).
  iiR�R�g�?tsExpected %r, found %rN(
RR�R�tTestFieldOrderingsR�R5tSerializeToStringtClearRqR�R�tjoint
ValueError(t
serializedR�R�texpected_stringsRtexpected((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt#ExpectAllFieldsAndExtensionsInOrderzs,			


	


	
cCs�|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|j|jd��|j|jd	��|j|jd
��|j|jd��|j|jd��|j|jd
��|j|jd��|j|jd��t|�ro|j|jd��n|j|jd��|j|jd��|j|jd��|j|jjd��|j|jjd��|j|jjd��|j|jjd��|j|jd��|j|jd��t|�rf|j|jd��n|j|jd��|j|jd��|jd|j�|jd|j	�|jd|j
�|jd |j�|jd!|j�|jd"|j
�|jd#|j�|jd$|j�|jd%|j�|jd&|j�|jd'|j�|jd(|j�|jt|j�|jd)|j�|jd*|j�t|�r�|jd+|jj�n|jd,|jj�|jd-|jj�|jd.|jj�|jd/|jj�|jd0|jj�|jtj j!|j"�|jtj#|j$�t|�r�|jt%j&|j'�n|jd1t(|j)��|jd1t(|j*��|jd1t(|j+��|jd1t(|j,��|jd1t(|j-��|jd1t(|j.��|jd1t(|j/��|jd1t(|j0��|jd1t(|j1��|jd1t(|j2��|jd1t(|j3��|jd1t(|j4��|jd1t(|j5��|jd1t(|j6��|jd1t(|j7��t|�r5|jd1t(|j8��n|jd1t(|j9��|jd1t(|j:��|jd1t(|j;��|jd1t(|j<��|jd1t(|j=��t|�r�|jd1t(|j>��n|jd1t(|j?��|jd1t(|j@��|jd2|j)d3�|jd4|j*d3�|jd5|j+d3�|jd6|j,d3�|jd7|j-d3�|jd8|j.d3�|jd9|j/d3�|jd:|j0d3�|jd;|j1d3�|jd<|j2d3�|jd=|j3d3�|jd>|j4d3�|jt|j5d3�|jd?|j6d3�|jd@|j7d3�t|�r�|jdA|j8d3j�n|jdB|j9d3j�|jdC|j:d3j�|jdD|j;d3j�|jdE|jAd3j�|jtj jB|j<d3�|jtjC|j=d3�t|�rV	|jt%jD|j>d3�n|jdF|j)dG�|jdH|j*dG�|jdI|j+dG�|jdJ|j,dG�|jdK|j-dG�|jdL|j.dG�|jdM|j/dG�|jdN|j0dG�|jdO|j1dG�|jdP|j2dG�|jdQ|j3dG�|jdR|j4dG�|jtE|j5dG�|jdS|j6dG�|jdT|j7dG�t|�r�
|jdU|j8dGj�n|jdV|j9dGj�|jdW|j:dGj�|jdX|j;dGj�|jdY|jAdGj�|jtj j!|j<dG�|jtj#|j=dG�t|�r�|jt%j&|j>dG�nt|�r�|j|jdZ��|j|jd[��|j|jd\��|j|jd]��|j|jd^��|j|jd_��|j|jd`��|j|jda��|j|jdb��|j|jdc��|j|jdd��|j|jde��|j|jdf��|j|jdg��|j|jdh��|j|jdi��|j|jdj��|j|jdk��|jdl|jF�|jdm|jG�|jdn|jH�|jdo|jI�|jdp|jJ�|jdq|jK�|jdr|jL�|jds|jM�|jdt|jN�|jdu|jO�|jdv|jP�|jdw|jQ�|jtE|jR�|jdx|jS�|jdy|jT�|jtj jU|jV�|jtjW|jX�|jt%jY|jZ�ndzS({sFCheck all fields for correct values have after Set*Fields() is called.RRRRRRRRRRRRRRR R!R#R%R'R"R$R&R(R-R/R1R2R3ieifigihiiijikiliminioipt115Riuiviwixi~iii�ii�i�i�i�i�i�i�i�i�i�i�t215Ri�i�i�i�i�i-ii.i/i0i1i2i3i4i5i6i7i8t315R
i=i>i?i@iGRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRcReRgi�i�i�i�i�i�i�i�i�i�i�i�RRN([t
assertTruetHasFieldRR!R#R%R'tassertEqualRRRRRRRRRRRRRRRR R"R$R&R(R)R*RoRR+R,R-R.R/RR0R1tlenR4R6R7R8R9R:R;R<R=R>R?R@RARBRCRDRFRGRHRJRLRNRPRQRIRKRMRORRRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRbRcRdReRfRg(t	test_caseR((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytExpectAllFieldsSet�sj




cCs�d}xqtjj|�rytjjtjj|d��ratjj|d|�}t|d�Stjj|d�}q	Wd}tjj|d|�}tjj|�r�t|d�Std��dS(	sFFinds the given golden file and returns a file object representing it.t.ssrc/google/protobufssrc/google/protobuf/testdatatrbs..s'third_party/py/google/protobuf/testdatas�Could not find golden files.  This test must be run from within the protobuf source package so that it can read test data files from the C++ source tree.N(tostpathtexistsR�topentRuntimeError(tfilenameR�t	full_path((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt
GoldenFileis!
	
cCs#t|��}|j�SWdQXdS(s5Finds the given golden file and returns its contents.N(R�tread(R�tf((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytGoldenFileData�scCs>|jjddg�|jjddg�|jjddg�|jjddg�|jjd	d
g�|jjddg�|jjd
dg�|jjddg�|j	jddg�|j
jddg�|jjddg�|jjddg�|j
jttg�|jjtjtjg�dS(sgSets every field in the message to a unique value.

  Args:
    message: A TestPackedTypes instance.
  iYi�iZi�i[i�i\i�i]i�i^i�i_i�i`i�iai�ibi�g�@g8�@g �@g@�@N(tpacked_int32textendtpacked_int64t
packed_uint32t
packed_uint64t
packed_sint32t
packed_sint64tpacked_fixed32tpacked_fixed64tpacked_sfixed32tpacked_sfixed64tpacked_floatt
packed_doubletpacked_boolRRRtpacked_enumRRMR.(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllPackedFields�scCs�|j}t}||jjddg�||jjddg�||jjddg�||jjddg�||jjd	d
g�||jjddg�||j	jd
dg�||j
jddg�||jjddg�||jjddg�||j
jddg�||jjddg�||jjttg�||jjtjtjg�dS(s}Sets every extension in the message to a unique value.

  Args:
    message: A unittest_pb2.TestPackedExtensions instance.
  iYi�iZi�i[i�i\i�i]i�i^i�i_i�i`i�iai�ibi�g�@g8�@g �@g@�@N(RqRtpacked_int32_extensionR�tpacked_int64_extensiontpacked_uint32_extensiontpacked_uint64_extensiontpacked_sint32_extensiontpacked_sint64_extensiontpacked_fixed32_extensiontpacked_fixed64_extensiontpacked_sfixed32_extensiontpacked_sfixed64_extensiontpacked_float_extensiontpacked_double_extensiontpacked_bool_extensionRRRtpacked_enum_extensionRMR.(RR�R�((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllPackedExtensions�s"	cCs>|jjddg�|jjddg�|jjddg�|jjddg�|jjd	d
g�|jjddg�|jjd
dg�|jjddg�|j	jddg�|j
jddg�|jjddg�|jjddg�|j
jttg�|jjtjtjg�dS(svSets every field in the message to a unique value.

  Args:
    message: A unittest_pb2.TestUnpackedTypes instance.
  iYi�iZi�i[i�i\i�i]i�i^i�i_i�i`i�iai�ibi�g�@g8�@g �@g@�@N(tunpacked_int32R�tunpacked_int64tunpacked_uint32tunpacked_uint64tunpacked_sint32tunpacked_sint64tunpacked_fixed32tunpacked_fixed64tunpacked_sfixed32tunpacked_sfixed64tunpacked_floattunpacked_doublet
unpacked_boolRRRt
unpacked_enumRRMR.(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pytSetAllUnpackedFields�stNonStandardIntegercBs�eZdZd*d�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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,RS(+s�An integer object that does not subclass int.

  This is used to verify that both C++ and regular proto systems can handle
  integer others than int and long and that they handle them in predictable
  ways.

  NonStandardInteger is the minimal legal specification for a custom Integral.
  As such, it does not support 0 < x < 5 and it is not hashable.

  Note: This is added here instead of relying on numpy or a similar library
  with custom integers to limit dependencies.
  cCsIt|tj�st�t|t�r3|j}n||_||_dS(N(t
isinstancetnumberstIntegraltAssertionErrorRtvalterror_string_on_conversion(tselfRR((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__init__�s
	cCs(|jrt|j��nt|j�S(N(RR�tlongR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__long__�s	cCsttj|j��S(N(RtoperatortabsR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__abs__�scCsttj|j|��S(N(RR"RER(Rty((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__add__�scCsttj|j|��S(N(RR"tdivR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__div__�scCstj|j|�S(N(R"teqR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__eq__�scCsttj|j|��S(N(RR"tfloordivR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__floordiv__�scCsttj|j|��S(N(RR"ttruedivR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__truediv__�scCsttj|j��S(N(RR"tinvertR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt
__invert__�scCsttj|j|��S(N(RR"tmodR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__mod__scCsttj|j|��S(N(RR"tmulR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__mul__scCsttj|j��S(N(RR"tnegR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__neg__scCsttj|j��S(N(RR"tposR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__pos__	scCsttj|j|��S(N(RR"tpowR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__pow__scCs
t|j�S(N(tintR(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt	__trunc__scCsttj||j��S(N(RR"RER(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__radd__scCsttj||j��S(N(RR"R'R(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rdiv__scCsttj||j��S(N(RR"R1R(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rmod__scCsttj||j��S(N(RR"R3R(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rmul__scCsttj||j��S(N(RR"R9R(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rpow__scCsttj||j��S(N(RR"R+R(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt
__rfloordiv__!scCsttj||j��S(N(RR"R-R(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rtruediv__$scCsttj|j|��S(N(RR"tlshiftR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt
__lshift__'scCsttj|j|��S(N(RR"trshiftR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt
__rshift__*scCsttj||j��S(N(RR"RDR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rlshift__-scCsttj||j��S(N(RR"RFR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rrshift__0scCs.t|t�r|j}ntj|j|�S(N(RRRR"tle(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__le__3scCs.t|t�r|j}ntj|j|�S(N(RRRR"tlt(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__lt__8scCsttj|j|��S(N(RR"tand_R(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__and__=scCsttj|j|��S(N(RR"tor_R(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__or__@scCsttj|j|��S(N(RR"txorR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__xor__CscCsttj||j��S(N(RR"RNR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rand__FscCsttj||j��S(N(RR"RPR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__ror__IscCsttj||j��S(N(RR"RRR(RR%((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__rxor__LscCs|jS(N(R(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__bool__OscCs|jS(N(R(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__nonzero__RscCs|S(N((R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__ceil__UscCs|S(N((R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt	__floor__XscCs(|jrt|j��nt|j�S(N(RR�R;R(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__int__[s	cCs|S(N((R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt	__round__`scCsd|jS(NsNonStandardInteger(%s)(R(R((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt__repr__csN(-t__name__t
__module__t__doc__tNoneRR!R$R&R(R*R,R.R0R2R4R6R8R:R<R=R>R?R@RARBRCRERGRHRIRKRMRORQRSRTRURVRWRXRYRZR[R\R](((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyR�sT																																							(R`t
__author__RR"tos.pathR�tgoogle.protobufRRR t	NameErrorR;RRnRpR�R�R�R�R�R�R�RRRR(((sF/usr/lib/python2.7/site-packages/google/protobuf/internal/test_util.pyt<module>#s.

		�		�	
		�					PK�\��=R.R.#protobuf/internal/type_checkers.pyonu�[����
���hc@s�dZdZddlZddlZejr6eZnddlmZddlm	Z	ddlm
Z
ddlmZddlm
Z
e
jZd	�Zd
�Zdefd��YZd
efd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZie�ej6e�ej6e�ej6e�ej6edej �ej!6edej �ej"6ee#e$ej%�ej&6ede'�ej(6Z)iej*ej+6ej,ej-6ej.ej/6ej0ej16ej2ej36ej4ej56ej6ej76ej8ej96ej:ej;6ej<ej=6ej>ej?6ej@ejA6ejBejC6ejDejE6ejFejG6ejHejI6ejJejK6ejLejM6ZNie
jOej+6e
jPej-6e
jQej/6e
jRej16e
jSej36e
jTej56e
jUej76e
jVej96e
jWej;6e
jXej=6e
jYej?6e
jZejA6e
j[ejC6e
j\ejE6e
j]ejG6e
j^ejI6e
j_ejK6e
j`ejM6Zaie
jbej+6e
jcej-6e
jdej/6e
jeej16e
jfej36e
jgej56e
jhej76e
jiej96e
jjej;6e
jkej=6e
jlej?6e
jmejA6e
jnejC6e
joejE6e
jpejG6e
jqejI6e
jrejK6e
jsejM6Ztie	juej+6e	jvej-6e	jwej/6e	jxej16e	jyej36e	jzej56e	j{ej76e	j|ej96e	j}ej;6e	j~ej=6e	jej?6e	j�ejA6e	j�ejC6e	j�ejE6e	j�ejG6e	j�ejI6e	j�ejK6e	j�ejM6Z�iej�ej+6ej�ej-6ej�ej/6ej�ej16ej�ej36ej�ej56ej�ej76ej�ej96ej�ej;6ej�ej=6ej�ej?6ej�ejA6ej�ejC6ej�ejE6ej�ejG6ej�ejI6ej�ejK6ej�ejM6Z�dS(sProvides type checking routines.

This module defines type checking utilities in the forms of dictionaries:

VALUE_CHECKERS: A dictionary of field types and a value validation object.
TYPE_TO_BYTE_SIZE_FN: A dictionary with field types and a size computing
  function.
TYPE_TO_SERIALIZE_METHOD: A dictionary with field types and serialization
  function.
FIELD_TYPE_TO_WIRE_TYPE: A dictionary with field typed and their
  coresponding wire types.
TYPE_TO_DESERIALIZE_METHOD: A dictionary with field types and deserialization
  function.
s#robinson@google.com (Will Robinson)i����N(tapi_implementation(tdecoder(tencoder(twire_format(t
descriptorcCs|jjdkS(Ntproto3(tcontaining_typetsyntax(tfield_descriptor((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pytSupportsOpenEnums>scCso|jtjkr+|jtjkr+t�S|jtjkrdt|�rTttj	St
|j�Snt|jS(s
Returns a type checker for a message field of the specified types.

  Args:
    field: FieldDescriptor object for this field.

  Returns:
    An instance of TypeChecker which can be used to verify the types
    of values assigned to a field of the specified type.
  (tcpp_typet_FieldDescriptortCPPTYPE_STRINGttypetTYPE_STRINGtUnicodeValueCheckertCPPTYPE_ENUMR	t_VALUE_CHECKERSt
CPPTYPE_INT32tEnumValueCheckert	enum_type(tfield((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pytGetTypeCheckerAs
tTypeCheckercBs eZdZd�Zd�ZRS(sType checker used to catch type errors as early as possible
  when the client is setting scalar fields in protocol messages.
  cGs
||_dS(N(t_acceptable_types(tselftacceptable_types((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt__init__bscCsAt||j�s=d|t|�|jf}t|��n|S(suType check the provided value and return it.

    The returned value might have been normalized to another type.
    s,%.1024r has type %s, but expected one of: %s(t
isinstanceRR
t	TypeError(Rtproposed_valuetmessage((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt
CheckValuees
(t__name__t
__module__t__doc__RR (((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR\s	tTypeCheckerWithDefaultcBseZd�Zd�ZRS(cGstj||�||_dS(N(RRt_default_value(Rt
default_valueR((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyRsscCs|jS(N(R%(R((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pytDefaultValuews(R!R"RR'(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR$qs	tIntValueCheckercBs eZdZd�Zd�ZRS(sFChecker used for integer fields.  Performs type-check and range check.cCs�t|tj�s=d|t|�tjf}t|��n|jt|�ko`|j	knsxt
d|��n|j|�}|S(Ns,%.1024r has type %s, but expected one of: %ssValue out of range: %d(RtnumberstIntegralR
tsixt
integer_typesRt_MINtintt_MAXt
ValueErrort_TYPE(RRR((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR �s(cCsdS(Ni((R((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR'�s(R!R"R#R R'(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR(}s	
RcBs)eZdZd�Zd�Zd�ZRS(sCChecker used for enum fields.  Performs type-check and range check.cCs
||_dS(N(t
_enum_type(RR((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR�scCslt|tj�s=d|t|�tjf}t|��nt|�|jj	krht
d|��n|S(Ns,%.1024r has type %s, but expected one of: %ssUnknown enum value: %d(RR)R*R
R+R,RR.R2tvalues_by_numberR0(RRR((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR �scCs|jjdjS(Ni(R2tvaluestnumber(R((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR'�s(R!R"R#RR R'(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR�s			RcBs eZdZd�Zd�ZRS(sgChecker used for string fields.

  Always returns a unicode value, even if the input is of type str.
  cCs�t|ttjf�sId|t|�ttjff}t|��nt|t�r�y|jd�}Wq�tk
r�td|��q�Xn|S(Ns,%.1024r has type %s, but expected one of: %ssutf-8s�%.1024r has type bytes, but isn't valid UTF-8 encoding. Non-UTF-8 strings must be converted to unicode objects before being added.(	RtbytesR+t	text_typeR
RtdecodetUnicodeDecodeErrorR0(RRR((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR �s
cCsdS(Nu((R((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR'�s(R!R"R#R R'(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR�s	tInt32ValueCheckercBseZdZdZeZRS(i�i���(R!R"R-R/R.R1(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR:�stUint32ValueCheckercBseZdZdZeZRS(iii ll��(R!R"R-R/R.R1(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR;�stInt64ValueCheckercBseZdZdZeZRS(ii?ll����ll����(R!R"R-R/tlongR1(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR<�stUint64ValueCheckercBseZdZdZeZRS(iii@ll����(R!R"R-R/R=R1(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyR>�sgt(�R#t
__author__R)R+tPY3R.R=tgoogle.protobuf.internalRRRRtgoogle.protobufRtFieldDescriptorRR	RtobjectRR$R(RRR:R;R<R>Rt
CPPTYPE_INT64tCPPTYPE_UINT32tCPPTYPE_UINT64tRealtCPPTYPE_DOUBLEt
CPPTYPE_FLOATtFalsetboolR*tCPPTYPE_BOOLR6RRtDoubleByteSizetTYPE_DOUBLEt
FloatByteSizet
TYPE_FLOATt
Int64ByteSizet
TYPE_INT64tUInt64ByteSizetTYPE_UINT64t
Int32ByteSizet
TYPE_INT32tFixed64ByteSizetTYPE_FIXED64tFixed32ByteSizetTYPE_FIXED32tBoolByteSizet	TYPE_BOOLtStringByteSizeRt
GroupByteSizet
TYPE_GROUPtMessageByteSizetTYPE_MESSAGEt
BytesByteSizet
TYPE_BYTEStUInt32ByteSizetTYPE_UINT32tEnumByteSizet	TYPE_ENUMtSFixed32ByteSizet
TYPE_SFIXED32tSFixed64ByteSizet
TYPE_SFIXED64tSInt32ByteSizetTYPE_SINT32tSInt64ByteSizetTYPE_SINT64tTYPE_TO_BYTE_SIZE_FNt
DoubleEncodertFloatEncodertInt64Encodert
UInt64EncodertInt32EncodertFixed64EncodertFixed32EncodertBoolEncodert
StringEncodertGroupEncodertMessageEncodertBytesEncodert
UInt32EncodertEnumEncodertSFixed32EncodertSFixed64Encodert
SInt32Encodert
SInt64EncodertTYPE_TO_ENCODERtDoubleSizert
FloatSizert
Int64SizertUInt64Sizert
Int32SizertFixed64SizertFixed32Sizert	BoolSizertStringSizert
GroupSizertMessageSizert
BytesSizertUInt32Sizert	EnumSizert
SFixed32Sizert
SFixed64SizertSInt32SizertSInt64Sizert
TYPE_TO_SIZERt
DoubleDecodertFloatDecodertInt64Decodert
UInt64DecodertInt32DecodertFixed64DecodertFixed32DecodertBoolDecodert
StringDecodertGroupDecodertMessageDecodertBytesDecodert
UInt32DecodertEnumDecodertSFixed32DecodertSFixed64Decodert
SInt32Decodert
SInt64DecodertTYPE_TO_DECODERtWIRETYPE_FIXED64tWIRETYPE_FIXED32tWIRETYPE_VARINTtWIRETYPE_LENGTH_DELIMITEDtWIRETYPE_START_GROUPtFIELD_TYPE_TO_WIRE_TYPE(((sJ/usr/lib/python2.7/site-packages/google/protobuf/internal/type_checkers.pyt<module>,s					
























































































PK�\֧%9UU.protobuf/internal/test_bad_identifiers_pb2.pycnu�[����
���hc!@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZddlmZej�Zejd
dddddded��ZdZejd
dddddddddddddd ed!ed"�jd#�d$dd%dd&dd'ed(dd)dd*e�Zd+Zejd
d,dd-dddd+ddddddd ed!ed.�jd#�d$dd%dd&dd'ed(dd)dd*e�Zd/Zejd
d0dd1dd2dd/ddddddd ed!ed3�jd#�d$dd%dd&dd'ed(dd)dd*e�Zd4Zejd
d5dd6dddd4ddddddd ed!ed7�jd#�d$dd%dd&dd'ed(dd)dd*e�Zejd
d8dd9d:dd*ed&dd;gd<gd=gd>gd)dd?eddd@dUgdBgdCdDdEdF�Zejd
dGddHd:dd*ed&dd;gd<gd=gd>gd)dd?eddd@gdBgdCdIdEdJ�Zeej d8<eej dG<eej!d<eej!d,<eej!d0<eej!d5<ej"e�e	j#d8ej$fe%dKedLdM��Z&ej'e&�e	j#dGej$fe%dKedLdM��Z(ej'e(�e&j)e�e&j)e�e&j)e�e&j)e�ee_*ej+ej,�edN��e_-ej.d
dOddPd*eddd)ddCdQdEdRdSg�Z/ej0e/�e/ej1dO<ej2dOe
j3fe%dKe/dLdM��Z4ej5dTe4fe%dKe/dLdM��Z6dS(Vi����NiicCs|S(N((tx((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/test_bad_identifiers_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/test_bad_identifiers_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tservice(tservice_reflection(tdescriptor_pb2tnames3google/protobuf/internal/test_bad_identifiers.prototpackagetprotobuf_unittesttsyntaxtproto2t
serialized_pbs�
3google/protobuf/internal/test_bad_identifiers.protoprotobuf_unittest"
TestBadIdentifiers*d����"
AnotherMessage2
AnotherService:;
message%.protobuf_unittest.TestBadIdentifiersd (	:foo:>

descriptor%.protobuf_unittest.TestBadIdentifierse (	:bar:>

reflection%.protobuf_unittest.TestBadIdentifiersf (	:baz:;
service%.protobuf_unittest.TestBadIdentifiersg (	:quxB�idRt	full_namesprotobuf_unittest.messagetindextnumberttypei	tcpp_typetlabelithas_default_valuet
default_valuetfoosutf-8tmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfileieRsprotobuf_unittest.descriptortbarifRsprotobuf_unittest.reflectionitbazigR	sprotobuf_unittest.servicetquxtTestBadIdentifierss$protobuf_unittest.TestBadIdentifierstfilenametfieldst
extensionstnested_typest
enum_typest
is_extendabletextension_rangesi toneofstserialized_startiJtserialized_endihtAnotherMessages protobuf_unittest.AnotherMessageijizt
DESCRIPTORt
__module__s1google.protobuf.internal.test_bad_identifiers_pb2s�tAnotherServices protobuf_unittest.AnotherServicei|i�tmethodstAnotherService_Stub(idi (7tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	t_serviceR
RtDefaultt_sym_dbtFileDescriptorR1tMESSAGE_FIELD_NUMBERtFieldDescriptortTruetdecodetNonetDESCRIPTOR_FIELD_NUMBERtREFLECTION_FIELD_NUMBERtSERVICE_FIELD_NUMBERt
Descriptort_TESTBADIDENTIFIERStFalset_ANOTHERMESSAGEtmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR%tRegisterMessageR0tRegisterExtensionthas_optionst
_ParseOptionstFileOptionst_optionstServiceDescriptort_ANOTHERSERVICEtRegisterServiceDescriptortservices_by_nametGeneratedServiceTypetServiceR3tGeneratedServiceStubTypeR5(((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/test_bad_identifiers_pb2.pyt<module>s�%										












	!		

PK�\���u�-�-)protobuf/internal/unknown_fields_test.pyonu�[����
���hc@sMdZdZyddlZWnek
r;ddlZnXddlmZddlmZddlmZddl	m
Z
ddl	mZdd	l	mZdd
l	m
Z
ddl	mZddl	mZdd
l	mZejZd�Zdefd��YZdefd��YZdefd��YZedkrIej�ndS(sJTest for preservation of unknown fields in the pure Python implementation.s!bohdank@google.com (Bohdan Koval)i����N(tunittest_mset_pb2(tunittest_pb2(tunittest_proto3_arena_pb2(tapi_implementation(tencoder(tmessage_set_extensions_pb2(tmissing_enum_values_pb2(t	test_util(ttesting_refleaks(t
type_checkerscCs4tjtj�dko'tj�dkd�|�S(Ntcppis7Addtional test for pure python involved protect members(tunittesttskipIfRtTypetVersion(tfunc((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt(SkipCheckUnknownFieldIfCppImplementation;s!tUnknownFieldsTestcBsYeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	cCsftjj|_tj�|_tj|j�|jj�|_tj	�|_
|j
j|j�dS(N(RtTestAllTypest
DESCRIPTORt
descriptort
all_fieldsRtSetAllFieldstSerializeToStringtall_fields_datatTestEmptyMessaget
empty_messagetParseFromString(tself((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pytsetUpCscCs)|jj�}|j||jk�dS(N(RRt
assertTrueR(Rtdata((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt
testSerializeKscCs^tj�}|j|j�|r>|j|j|j��n|jdt|j���dS(Ni(RRRRtassertEqualRtlen(Rtpreservetmessage((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pytexpectSerializeProto3Rs
cCsFtj�}|j|�tj|�|j|�tj|�dS(N(Rt&GetPythonProto3PreserveUnknownsDefaultR%t&SetPythonProto3PreserveUnknownsDefault(Rtdefault_preserve((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestSerializeProto3Zs
cCs&|j|jj�|jj��dS(N(R!RtByteSizeR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestByteSizedscCs#|jdt|jj���dS(Ni(R!R"Rt
ListFields(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestListFieldsgscCs�tj�}|jj�}d|_tj�}d|_|j�|_	|j�}tj
�}|j|�|j�}tj�}|j|�|j||�dS(Ni���i90(
Rt
RawMessageSettitemtaddttype_idRtTestMessageSetExtension1tiRR$tTestMessageSettMergeFromStringR!(RtrawR/tmessage1t
serializedtprototreserializedtnew_raw((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt1testSerializeMessageSetWireFormatUnknownExtensionks		

cCsltj�}|j|j�|j|j|�|jjd�|j|jj��|j	|j|�dS(Ntoptional_string(
RRRRR!RRt
ClearFieldRtassertNotEqual(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt
testEquals�scCs�|jj�|jd|jj��tj�}tj�}d|_|jj|j��|j	j
�j|j��|jd|jj��|jd|j	dj��|j�|jd|jj��|jd|j	dj��dS(Nttdiscardi(RtDiscardUnknownFieldsR!RRRR=toptional_nested_messageRtrepeated_nested_messageR0R?(RR$t
other_message((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestDiscardUnknownFields�s"
		


(t__name__t
__module__RR R%R)R+R-R<R@RG(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRAs				
					tUnknownFieldsAccessorsTestcBsMeZd�Zd�Zed��Zd�Zd�Zd�Zd�Z	RS(cCsftjj|_tj�|_tj|j�|jj�|_tj	�|_
|j
j|j�dS(N(RRRRRRRRRRRR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyR�sc
Cs�|jj|}tj|j}tj|j|�}i}x\|jj	D]N\}}||krHt
jj|d}	|	|dt
|�|j|�qHqHW|j|||�dS(Ni(Rtfields_by_nameR	tFIELD_TYPE_TO_WIRE_TYPEttypeRtTagBytestnumberRt_unknown_fieldsRRt_decoders_by_tagR"RR!(
Rtnametexpected_valuetfield_descriptort	wire_typet	field_tagtresult_dictt	tag_bytestvaluetdecoder((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pytCheckUnknownField�s&cCs�|jd|jj�|jd|jj�|jd|jj�|jd|jj�|jd|jj�|jd|jj�|jd|jj�dS(Ntoptional_nested_enumtrepeated_nested_enumtoptional_int32toptional_fixed32toptional_fixed64R=t
optionalgroup(	R[RR\R]R^R_R`R=Ra(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestCheckUnknownFieldValue�s	
	
	
	
	
	
	cCs9tj�}|j|j�|j|j�|j�dS(N(RRtCopyFromRR!RR(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestCopyFrom�scCs�tj�}d|_d|_tj�}|j|j��|jd�d|_d|_tj�}|j|j��|j	|�|j|j��|j
|jd�|j
|jd�|j
|jd�dS(NiiR^ii(RRR^toptional_uint32RRRR>toptional_int64t	MergeFromR!(RR$tsourcetdestination((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt
testMergeFrom�s		
		
cCs*|jj�|j|jj�d�dS(NRA(RtClearR!R(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt	testClear�s
cCs9tj�}|j|j�|j|j�|j�dS(N(RtTestEmptyMessageWithExtensionsRRR!R(RR$((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownExtensions�s(
RHRIRR[RRbRdRjRlRn(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRJ�s					tUnknownEnumValuesTestcBsVeZd�Zd�Zd�Zd�Zd�Zd�Zed��Z	d�Z
RS(cCs�tjj|_tj�|_tjj|j_|jjjtjjtjj	g�|jj
jtjjtjj	g�|jj�|_tj
�|_|jj|j�dS(N(RtTestEnumValuesRRR$tZEROR\R]textendtONEtpacked_nested_enumRtmessage_datatTestMissingEnumValuestmissing_messageR(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyR�s		c
Cs�|jj|}tj|j}tj|j|�}i}x\|jj	D]N\}}||krHt
jj|d}	|	|dt
|�|j|�qHqHW|j|||�dS(Ni(RRKR	RLRMRRNRORwRPRRpRQR"R$R!(
RRRRSRTRURVRWRXRYRZ((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyR[s	&cCsKtj�}d|_tj�}|j|j��|j|jd�dS(Ntblahi(Rt
JustStringtdummyRpRRR!R\(Rtjust_stringtmissing((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt!testUnknownParseMismatchEnumValue$s
	cCsk|j|jjd��|j|jjd�|jj�}|jjd�|j|jj�|�dS(NR\i(tassertFalseRwtHasFieldR!R\RR>(RR8((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownEnumValue1s
cCs|jg|jj�dS(N(R!RwR](R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownRepeatedEnumValue9scCs|jg|jj�dS(N(R!RwRt(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyttestUnknownPackedEnumValue<scCsF|jd|jj�|jd|jj�|jd|jj�dS(NR\R]Rt(R[R$R\R]Rt(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt!testCheckUnknownFieldValueForEnum?s	
	
	cCs9tj�}|j|jj��|j|j|�dS(N(RRpRRwRR!R$(Rtnew_message((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt
testRoundTripHs(RHRIRR[R}R�R�R�RR�R�(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyRo�s			
				t__main__(t__doc__t
__author__t	unittest2RtImportErrortgoogle.protobufRRRtgoogle.protobuf.internalRRRRRRR	tBaseTestCaseRRRJRoRHtmain(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/unknown_fields_test.pyt<module>!s,
		`\QPK�\Ӫ�3�3$protobuf/internal/generator_test.pyonu�[����
���hc@s1dZdZyddlZWnek
r;ddlZnXddlmZddlmZddlm	Z	ddlm
Z
ddlmZdd	lmZdd
lm
Z
ddlmZddlmZdd
lmZdZdejfd��YZdejfd��YZedkr-ej�ndS(s�Unittest that directly tests the output of the pure-Python protocol
compiler.  See //google/protobuf/internal/reflection_test.py for a test which
further ensures that we can use Python protocol message objects as we expect.
s#robinson@google.com (Will Robinson)i����N(ttest_bad_identifiers_pb2(tunittest_custom_options_pb2(tunittest_import_pb2(tunittest_import_public_pb2(tunittest_mset_pb2(tunittest_mset_wire_format_pb2(t unittest_no_generic_services_pb2(tunittest_pb2(tservice(tsymbol_databasei t
GeneratorTestcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs6d}tj}|j|jj|jj|j�dS(Ntoptional_nested_message(RtTestAllTypestassertEqualt
NestedMessaget
DESCRIPTORtfields_by_nametmessage_type(tselft
field_namet
proto_type((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestNestedMessageDescriptor@s
		cCs�|jdtj�|jdtj�|jdtj�tj�}|jd|j�|jdtjj�|jd|j�|jdtjj�|jd|j�|jdtjj�dS(Niiiiii(	R
RtFOREIGN_FOOtFOREIGN_BARtFOREIGN_BAZRtFOOtBARtBAZ(Rtproto((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt	testEnumsGscstj�}d���fd�}|j||j��|j|jdk�|j||j��|j|jdk�|j�|j��|j||j��|j|jdk�|j||j��|j|jdk�|j�|j��|j	d|j
�dS(NcSs
||kS(N((tval((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pytisnan\scs�|�o�|d�S(Ni((R(R(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pytisinf_sis? ? ?? ?? ??? ??/ ??-(RtTestExtremeDefaultValuest
assertTruet
inf_doubletneg_inf_doublet
nan_doublet	inf_floatt
neg_inf_floatt	nan_floatR
tcpp_trigraph(RtmessageR ((RsK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtremeDefaultValuesWs	cCstjj}itd6td6td6td6}tg|jD]'}|j|kr;|j|jf^q;�}|j	||�dS(Ntoptional_int32trepeated_int32Rt
default_int32(
RRRtFalsetTruetdicttfieldstnamethas_default_valueR
(Rtdesctexpected_has_default_by_nametfthas_default_by_name((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestHasDefaultValuesps

*cCs?|jtjjtjj�|jtjjjtjj�dS(N(R
Rtoptional_int32_extensiontcontaining_typetTestAllExtensionsRtTestRequiredtsingle(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt'testContainingTypeBehaviorForExtensions�s
cCs9|jtjjd�|jtjjjtjj�dS(N(R
RR:textension_scopetNoneR=R>R(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtensionScope�scCsW|jtjj�|jtjjj�tjj}|jd}|j|j�dS(Nta(R"RR:tis_extensionR=R>RR(Rtmessage_descriptortnon_extension_descriptor((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestIsExtension�s

cCs)tj�}|j|jj�j�dS(N(RtTestMessageSetR"Rt
GetOptionstmessage_set_wire_format(RR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestOptions�scCs9tj�}|jjdj�}|j|dk	�dS(NtAnEnum(RtTestMessageWithCustomOptionsRtenum_types_by_nameRIR"RA(RRtenum_options((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestMessageWithCustomOptions�scCs�|jttjjj�ttjjjtjjjtjjjg��|jtj	jjg�|jtjjjjg�dS(N(
R
tsetRRRtnested_typesRt
OptionalGroupt
RepeatedGrouptTestEmptyMessage(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestNestedTypes�scCs�|jtjjjdk�|jtjjjdk�|jtjjjjtjj�|jtjjjjtjj�|jtjj	jjtjj�dS(N(
R"RRURR;RARR
RRT(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestContainingType�s

cCs9|jtjjdk�|jtjjtjj�dS(N(	R"Rt_FOREIGNENUMR;RAR
t_TESTALLTYPES_NESTEDENUMRR(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt"testContainingTypeInEnumDescriptor�scCs�|jtjjjjd�tjjj}|j|jjd�|jtjjjjd�|jtj	jjd�|jtj
jjd�|jtjjjd�dS(Ntprotobuf_unittesttprotobuf_unittest_import(R
RRRtfiletpackageRRt
ImportMessageRXRYt_IMPORTENUM(RR5((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestPackage�s cCsg|jtjjjg�|jtjjjdtfg�|jtjjjdddtfg�dS(	Nii*i+i/i�i(i*i+(i/i�(R
RRRtextension_rangesR<t
MAX_EXTENSIONtTestMultipleExtensionRanges(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtensionRange�scCs�|jtjjd�|jtjjd�|jtjjdk�|jtjjt	jg�|jt	jjt
jg�|jt	jjt
jg�dS(Nsgoogle/protobuf/unittest.protoR[(R
RRR3R^tassertFalset
serialized_pbRAtdependenciesRRtpublic_dependencies(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestFileDescriptor�s

cCst|jttd��|jttd��|jttd��ttd�rp|jttjtj��ndS(NtTestMessageRttest_extensiontTestService(R"thasattrRRft
issubclassRmRtService(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestNoGenericServices�scCsItj}|jtj|jtjj�|jtjj|jk�dS(N(RRR
t
_TESTALLTYPEStmessage_types_by_nameR3Rft_TESTALLTYPES_NESTEDMESSAGE(Rt	file_type((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestMessageTypesByName�s		cCs-tj}|jtj|jtjj�dS(N(RRR
RXRNR3(RRu((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestEnumTypesByName�s	cCs-tj}|jtj|jtjj�dS(N(RRR
tmy_extension_stringtextensions_by_nameR3(RRu((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtensionsByNames	cCs^tj�}|jd|jj�tj�}|jd|j�|jtjtjk�dS(Ni(	RRR
toptional_public_import_messageteRtPublicImportMessageR"R(Rtall_type_prototpublic_import_proto((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestPublicImports
scCsxtj�}|j|jtjd�|j|jtjd�|j|jtjd�|j|jtjd�dS(Ntfootbartbaztqux(RtTestBadIdentifiersR
t
ExtensionsR*t
descriptort
reflectionR(RR*((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestBadIdentifiersscCs<tjj}|jdt|j��|jd|jdj�|jd|jdj�|j||jdj	�|j|jd|j
d�tddddg�}|j|tg|jdjD]}|j^q���xV|j
j�D]E\}}||kr$|j|jd|j�q�|j|j�q�WdS(Nitoneof_fielditoneof_uint32toneof_nested_messagetoneof_stringtoneof_bytes(RRRR
tlentoneofsR3tindextassertIsR;toneofs_by_nameRQR2Rtitemstcontaining_oneoftassertIsNone(RR5tnested_namestfieldRt
field_desc((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt	testOneof"s	-(t__name__t
__module__RRR+R9R?RBRGRKRPRVRWRZRaReRjRqRvRwRzR�R�R�(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyR
>s,														
							tSymbolDatabaseRegistrationTestcBs)eZdZd�Zd�Zd�ZRS(s?Checks that messages, enums and files are correctly registered.cCs�|jtjtj�jd��|jtjjtj�jd��|jt��tj�jd�WdQX|jtjj	tj�jd��|jtjj
tj�jd��dS(Nsprotobuf_unittest.TestAllTypess,protobuf_unittest.TestAllTypes.NestedMessagesprotobuf_unittest.NestedMessages,protobuf_unittest.TestAllTypes.OptionalGroups,protobuf_unittest.TestAllTypes.RepeatedGroup(R
RRR	tDefaultt	GetSymbolRtassertRaisestKeyErrorRSRT(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt
testGetSymbol8s"
	
	
	cCsN|jdtj�jjd�j�|jdtj�jjd�j�dS(Nsprotobuf_unittest.ForeignEnums)protobuf_unittest.TestAllTypes.NestedEnum(R
R	R�tpooltFindEnumTypeByNamet	full_name(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyRKs
cCs)|jdtj�jjd�j�dS(Nsgoogle/protobuf/unittest.proto(R
R	R�R�tFindFileByNameR3(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestFindFileByNameUs(R�R�t__doc__R�RR�(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyR�5s		
t__main__(R�t
__author__t	unittest2tunittesttImportErrortgoogle.protobuf.internalRtgoogle.protobufRRRRRRRRR	RctTestCaseR
R�R�tmain(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt<module>'s(
�&PK�\Ӫ�3�3$protobuf/internal/generator_test.pycnu�[����
���hc@s1dZdZyddlZWnek
r;ddlZnXddlmZddlmZddlm	Z	ddlm
Z
ddlmZdd	lmZdd
lm
Z
ddlmZddlmZdd
lmZdZdejfd��YZdejfd��YZedkr-ej�ndS(s�Unittest that directly tests the output of the pure-Python protocol
compiler.  See //google/protobuf/internal/reflection_test.py for a test which
further ensures that we can use Python protocol message objects as we expect.
s#robinson@google.com (Will Robinson)i����N(ttest_bad_identifiers_pb2(tunittest_custom_options_pb2(tunittest_import_pb2(tunittest_import_public_pb2(tunittest_mset_pb2(tunittest_mset_wire_format_pb2(t unittest_no_generic_services_pb2(tunittest_pb2(tservice(tsymbol_databasei t
GeneratorTestcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs6d}tj}|j|jj|jj|j�dS(Ntoptional_nested_message(RtTestAllTypestassertEqualt
NestedMessaget
DESCRIPTORtfields_by_nametmessage_type(tselft
field_namet
proto_type((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestNestedMessageDescriptor@s
		cCs�|jdtj�|jdtj�|jdtj�tj�}|jd|j�|jdtjj�|jd|j�|jdtjj�|jd|j�|jdtjj�dS(Niiiiii(	R
RtFOREIGN_FOOtFOREIGN_BARtFOREIGN_BAZRtFOOtBARtBAZ(Rtproto((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt	testEnumsGscstj�}d���fd�}|j||j��|j|jdk�|j||j��|j|jdk�|j�|j��|j||j��|j|jdk�|j||j��|j|jdk�|j�|j��|j	d|j
�dS(NcSs
||kS(N((tval((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pytisnan\scs�|�o�|d�S(Ni((R(R(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pytisinf_sis? ? ?? ?? ??? ??/ ??-(RtTestExtremeDefaultValuest
assertTruet
inf_doubletneg_inf_doublet
nan_doublet	inf_floatt
neg_inf_floatt	nan_floatR
tcpp_trigraph(RtmessageR ((RsK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtremeDefaultValuesWs	cCstjj}itd6td6td6td6}tg|jD]'}|j|kr;|j|jf^q;�}|j	||�dS(Ntoptional_int32trepeated_int32Rt
default_int32(
RRRtFalsetTruetdicttfieldstnamethas_default_valueR
(Rtdesctexpected_has_default_by_nametfthas_default_by_name((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestHasDefaultValuesps

*cCs?|jtjjtjj�|jtjjjtjj�dS(N(R
Rtoptional_int32_extensiontcontaining_typetTestAllExtensionsRtTestRequiredtsingle(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt'testContainingTypeBehaviorForExtensions�s
cCs9|jtjjd�|jtjjjtjj�dS(N(R
RR:textension_scopetNoneR=R>R(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtensionScope�scCsW|jtjj�|jtjjj�tjj}|jd}|j|j�dS(Nta(R"RR:tis_extensionR=R>RR(Rtmessage_descriptortnon_extension_descriptor((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestIsExtension�s

cCs)tj�}|j|jj�j�dS(N(RtTestMessageSetR"Rt
GetOptionstmessage_set_wire_format(RR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestOptions�scCs9tj�}|jjdj�}|j|dk	�dS(NtAnEnum(RtTestMessageWithCustomOptionsRtenum_types_by_nameRIR"RA(RRtenum_options((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestMessageWithCustomOptions�scCs�|jttjjj�ttjjjtjjjtjjjg��|jtj	jjg�|jtjjjjg�dS(N(
R
tsetRRRtnested_typesRt
OptionalGroupt
RepeatedGrouptTestEmptyMessage(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestNestedTypes�scCs�|jtjjjdk�|jtjjjdk�|jtjjjjtjj�|jtjjjjtjj�|jtjj	jjtjj�dS(N(
R"RRURR;RARR
RRT(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestContainingType�s

cCs9|jtjjdk�|jtjjtjj�dS(N(	R"Rt_FOREIGNENUMR;RAR
t_TESTALLTYPES_NESTEDENUMRR(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt"testContainingTypeInEnumDescriptor�scCs�|jtjjjjd�tjjj}|j|jjd�|jtjjjjd�|jtj	jjd�|jtj
jjd�|jtjjjd�dS(Ntprotobuf_unittesttprotobuf_unittest_import(R
RRRtfiletpackageRRt
ImportMessageRXRYt_IMPORTENUM(RR5((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestPackage�s cCsg|jtjjjg�|jtjjjdtfg�|jtjjjdddtfg�dS(	Nii*i+i/i�i(i*i+(i/i�(R
RRRtextension_rangesR<t
MAX_EXTENSIONtTestMultipleExtensionRanges(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtensionRange�scCs�|jtjjd�|jtjjd�|jtjjdk�|jtjjt	jg�|jt	jjt
jg�|jt	jjt
jg�dS(Nsgoogle/protobuf/unittest.protoR[(R
RRR3R^tassertFalset
serialized_pbRAtdependenciesRRtpublic_dependencies(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestFileDescriptor�s

cCst|jttd��|jttd��|jttd��ttd�rp|jttjtj��ndS(NtTestMessageRttest_extensiontTestService(R"thasattrRRft
issubclassRmRtService(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestNoGenericServices�scCsItj}|jtj|jtjj�|jtjj|jk�dS(N(RRR
t
_TESTALLTYPEStmessage_types_by_nameR3Rft_TESTALLTYPES_NESTEDMESSAGE(Rt	file_type((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestMessageTypesByName�s		cCs-tj}|jtj|jtjj�dS(N(RRR
RXRNR3(RRu((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestEnumTypesByName�s	cCs-tj}|jtj|jtjj�dS(N(RRR
tmy_extension_stringtextensions_by_nameR3(RRu((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestExtensionsByNames	cCs^tj�}|jd|jj�tj�}|jd|j�|jtjtjk�dS(Ni(	RRR
toptional_public_import_messageteRtPublicImportMessageR"R(Rtall_type_prototpublic_import_proto((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestPublicImports
scCsxtj�}|j|jtjd�|j|jtjd�|j|jtjd�|j|jtjd�dS(Ntfootbartbaztqux(RtTestBadIdentifiersR
t
ExtensionsR*t
descriptort
reflectionR(RR*((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestBadIdentifiersscCs<tjj}|jdt|j��|jd|jdj�|jd|jdj�|j||jdj	�|j|jd|j
d�tddddg�}|j|tg|jdjD]}|j^q���xV|j
j�D]E\}}||kr$|j|jd|j�q�|j|j�q�WdS(Nitoneof_fielditoneof_uint32toneof_nested_messagetoneof_stringtoneof_bytes(RRRR
tlentoneofsR3tindextassertIsR;toneofs_by_nameRQR2Rtitemstcontaining_oneoftassertIsNone(RR5tnested_namestfieldRt
field_desc((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt	testOneof"s	-(t__name__t
__module__RRR+R9R?RBRGRKRPRVRWRZRaReRjRqRvRwRzR�R�R�(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyR
>s,														
							tSymbolDatabaseRegistrationTestcBs)eZdZd�Zd�Zd�ZRS(s?Checks that messages, enums and files are correctly registered.cCs�|jtjtj�jd��|jtjjtj�jd��|jt��tj�jd�WdQX|jtjj	tj�jd��|jtjj
tj�jd��dS(Nsprotobuf_unittest.TestAllTypess,protobuf_unittest.TestAllTypes.NestedMessagesprotobuf_unittest.NestedMessages,protobuf_unittest.TestAllTypes.OptionalGroups,protobuf_unittest.TestAllTypes.RepeatedGroup(R
RRR	tDefaultt	GetSymbolRtassertRaisestKeyErrorRSRT(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt
testGetSymbol8s"
	
	
	cCsN|jdtj�jjd�j�|jdtj�jjd�j�dS(Nsprotobuf_unittest.ForeignEnums)protobuf_unittest.TestAllTypes.NestedEnum(R
R	R�tpooltFindEnumTypeByNamet	full_name(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyRKs
cCs)|jdtj�jjd�j�dS(Nsgoogle/protobuf/unittest.proto(R
R	R�R�tFindFileByNameR3(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyttestFindFileByNameUs(R�R�t__doc__R�RR�(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyR�5s		
t__main__(R�t
__author__t	unittest2tunittesttImportErrortgoogle.protobuf.internalRtgoogle.protobufRRRRRRRRR	RctTestCaseR
R�R�tmain(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/generator_test.pyt<module>'s(
�&PK�\O}(�e�eprotobuf/internal/decoder.pycnu�[����
���hc@s�dZdZddlZddlZejr6eZnddlmZddlm	Z	ddl
mZdZeZ
edZejZd	�Zd
�Zed(e�Zede�Zed*e�Zed
e�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zee	je�Zee	je�Z ee	je�Z!ee	je�Z"ee	jee	j#�Z$ee	jee	j#�Z%ee	j&d�Z'ee	j(d�Z)ee	j&d�Z*ee	j(d�Z+e�Z,e�Z-ee	jee.�Z/d�Z0d�Z1d�Z2d�Z3ej4de	j5�Z6d�Z7d�Z8d�Z9d �Z:d!�Z;d"�Z<d#�Z=d$�Z>d%�Z?d&�Z@e@�ZAdS(+s�	Code for decoding protocol buffer primitives.

This code is very similar to encoder.py -- read the docs for that module first.

A "decoder" is a function with the signature:
  Decode(buffer, pos, end, message, field_dict)
The arguments are:
  buffer:     The string containing the encoded message.
  pos:        The current position in the string.
  end:        The position in the string where the current message ends.  May be
              less than len(buffer) if we're reading a sub-message.
  message:    The message object into which we're parsing.
  field_dict: message._fields (avoids a hashtable lookup).
The decoder reads the field and stores it into field_dict, returning the new
buffer position.  A decoder for a repeated field may proactively decode all of
the elements of that field, if they appear consecutively.

Note that decoders may throw any of the following:
  IndexError:  Indicates a truncated message.
  struct.error:  Unpacking of a fixed-width field failed.
  message.DecodeError:  Other errors.

Decoders are expected to raise an exception if they are called with pos > end.
This allows callers to be lax about bounds checking:  it's fineto read past
"end" as long as you are sure that someone else will notice and throw an
exception later on.

Something up the call stack is expected to catch IndexError and struct.error
and convert them to message.DecodeError.

Decoders are constructed using decoder constructors with the signature:
  MakeDecoder(field_number, is_repeated, is_packed, key, new_default)
The arguments are:
  field_number:  The field number of the field we want to decode.
  is_repeated:   Is the field a repeated field? (bool)
  is_packed:     Is the field a packed field? (bool)
  key:           The key to use when looking up the field within field_dict.
                 (This is actually the FieldDescriptor but nothing in this
                 file should depend on that.)
  new_default:   A function which takes a message object as a parameter and
                 returns a new instance of the default value for this field.
                 (This is called for repeated fields and sub-messages, when an
                 instance does not already exist.)

As with encoders, we define a decoder constructor for every type of field.
Then, for every field of every message class we construct an actual decoder.
That decoder goes into a dict indexed by tag, so when we decode a message
we repeatedly read a tag, look up the corresponding decoder, and invoke it.
s kenton@google.com (Kenton Varda)i����N(tencoder(twire_format(tmessageg�ics��fd�}|S(s�Return an encoder for a basic varint value (does not include tag).

  Decoded values will be bitwise-anded with the given mask before being
  returned, e.g. to limit them to 32 bits.  The returned decoder does not
  take the usual "end" parameter -- the caller is expected to do bounds checking
  after the fact (often the caller can defer such checking until later).  The
  decoder returns a (value, new_pos) pair.
  cs�d}d}x�tj||�}||d@|>O}|d7}|d@sg|�M}�|�}||fS|d7}|dkrtd��qqWdS(Niiii�ii@s$Too many bytes when decoding varint.(tsixt
indexbytest_DecodeError(tbuffertpostresulttshifttb(tmasktresult_type(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytDecodeVarintus




((RRR
((RRsD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_VarintDecoderks
cs5d|d>�d|>d����fd�}|S(s0Like _VarintDecoder() but decodes signed values.ics�d}d}x�tj||�}||d@|>O}|d7}|d@su|�M}|�A�}�|�}||fS|d7}|dkrtd��qqWdS(Niiii�ii@s$Too many bytes when decoding varint.(RRR(RRRR	R
(RRtsignbit(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR
�s




((tbitsRR
((RRRsD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SignedVarintDecoder�sii@i cCsQ|}x$tj||�d@r,|d7}q	W|d7}tj|||!�|fS(s�Read a tag from the buffer, and return a (tag_bytes, new_pos) tuple.

  We return the raw bytes of the tag rather than decoding them.  The raw
  bytes can then be used to look up the proper decoder.  This effectively allows
  us to trade some work that would be done in pure-python (decoding a varint)
  for work that is done in C (searching for a byte string in a hash table).
  In a low-level language it would be much cheaper to decode the varint and
  use that, but not in Python.
  i�i(RRtbinary_type(RRtstart((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytReadTag�s

cs��fd�}|S(s�Return a constructor for a decoder for fields of a particular type.

  Args:
      wire_type:  The field's wire type.
      decode_value:  A function which decodes an individual value, e.g.
        _DecodeVarint()
  cs�|r(t�����fd�}|S|rktj|���t��������fd�}|S��fd�}|SdS(Ncs�|j��}|dkr6|j��|��}n�||�\}}||7}||krptd��nx2||kr��||�\}}|j|�qsW||kr�|d=td��n|S(NsTruncated message.i����sPacked element was truncated.(tgettNonet
setdefaultRtappend(RRtendRt
field_dicttvaluetendpointtelement(tdecode_valuetkeytlocal_DecodeVarinttnew_default(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytDecodePackedField�s
cs�|j��}|dkr6|j��|��}nxn�||�\}}|j|�|�}|||!�ks�||kr9||kr�td��n|Sq9WdS(NsTruncated message.(RRRRR(RRRRRRRtnew_pos(RRR!t	tag_bytesttag_len(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytDecodeRepeatedField�s

cs?�||�\|�<}||kr;|�=td��n|S(NsTruncated message.(R(RRRRR(RR(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytDecodeField�s
(t
_DecodeVarintRtTagBytestlen(tfield_numbertis_repeatedt	is_packedRR!R"R&R'(Rt	wire_type(RR R!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytSpecificDecoder�s((R.RR/((RR.sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SimpleDecoder�s	/cs��fd�}t||�S(s�Like SimpleDecoder but additionally invokes modify_value on every value
  before storing it.  Usually modify_value is ZigZagDecode.
  cs%�||�\}}�|�|fS(N((RRRR#(Rtmodify_value(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytInnerDecodes(R0(R.RR1R2((RR1sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_ModifiedDecoder�scs:tj���tj����fd�}t||�S(s�Return a constructor for a decoder for a fixed-width field.

  Args:
      wire_type:  The field's wire type.
      format:  The format string to pass to struct.unpack().
  cs.|�}��|||!�d}||fS(Ni((RRR#R(tformattlocal_unpackt
value_size(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR2s
(tstructtcalcsizetunpackR0(R.R4R2((R4R5R6sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_StructPackDecoders		cs(tj��fd�}ttj|�S(s�Returns a decoder for a float field.

  This code works around a bug in struct.unpack for non-finite 32-bit
  floating-point values.
  cs�|d}|||!}|dd!dkr�|dd!dkr�|dd!dkrZt|fS|dd!dkrwt|fSt|fS�d	|�d}||fS(
Niis�is�is�s�s<f(t_NANt_NEG_INFt_POS_INF(RRR#tfloat_bytesR(R5(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR2)s

&


(R7R9R0RtWIRETYPE_FIXED32(R2((R5sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
_FloatDecoder s	cs(tj��fd�}ttj|�S(skReturns a decoder for a double field.

  This code works around a bug in struct.unpack for not-a-number.
  csw|d}|||!}|dd!dkrZ|dd!dkrZ|dd!dkrZt|fS�d|�d}||fS(	Niis�is�is�s<d(R;(RRR#tdouble_bytesR(R5(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR2Ks


(R7R9R0RtWIRETYPE_FIXED64(R2((R5sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_DoubleDecoderCs	cs��j�|r4t������fd�}|S|rztj�tj��t��������fd�}|S���fd�}|SdS(Nc
sF|j��}|dkr6|j��|��}n�||�\}}||7}||krptd��nx�||kr|}t||�\}}|�jkr�|j|�qs|js�g|_ntj	�t
j�}	|jj|	|||!f�qsW||krB|�jkr)|d=n
|jd=td��n|S(NsTruncated message.i����sPacked element was truncated.(RRRRt_DecodeSignedVarint32tvalues_by_numberRt_unknown_fieldsRR)RtWIRETYPE_VARINT(
RRRRRRRtvalue_start_posRR$(t	enum_typeR+RR R!(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR"es0
			

cs�|j��}|dkr6|j��|��}nx�t||�\}}|�jkrm|j|�n2|js�g|_n|jj�|||!f�|�}|||!�ks�||kr9||kr�td��n|Sq9WdS(NsTruncated message.(RRRRDRERRFR(RRRRRRRR#(RIRR!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR&�s 		
cs�|}t||�\}}||kr6td��n|�jkrR||�<nG|jsgg|_ntj�tj�}|jj||||!f�|S(NsTruncated message.(	RDRRERFRR)RRGR(RRRRRRHt
enum_valueR$(RIR+R(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR'�s
			(RIR(RR)RRGR*(R+R,R-RR!R"R&R'((RIR+RR R!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytEnumDecoderas	s<Is<Qs<is<qcs�t�tj���fd��|s.t�|rwtj|tj��t���������fd�}|S���fd�}|SdS(s%Returns a decoder for a string field.csDy�|d�SWn,tk
r?}d|�jf|_�nXdS(Nsutf-8s%s in field: %s(tUnicodeDecodeErrort	full_nametreason(tbyte_strte(Rt
local_unicode(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_ConvertToUnicode�s
cs�|j��}|dkr6|j��|��}nx��||�\}}||}||krstd��n|j�|||!��|�}|||!�ks�||kr9|Sq9WdS(NsTruncated string.(RRRRR(RRRRRRtsizeR#(RRRR R!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR&�s

csU�||�\}}||}||kr:td��n�|||!�|�<|S(NsTruncated string.(R(RRRRRRSR#(RRRR (sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR'�s
N(	R(Rt	text_typetAssertionErrorRR)RtWIRETYPE_LENGTH_DELIMITEDR*(R+R,R-RR!R&R'((RRRR RQR!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
StringDecoder�s	
	csst�|st�|rYtj|tj��t��������fd�}|S��fd�}|SdS(s$Returns a decoder for a bytes field.cs�|j��}|dkr6|j��|��}nx�||�\}}||}||krstd��n|j|||!�|�}|||!�ks�||kr9|Sq9WdS(NsTruncated string.(RRRRR(RRRRRRRSR#(RR R!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR&s

csO�||�\}}||}||kr:td��n|||!|�<|S(NsTruncated string.(R(RRRRRRSR#(RR (sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR's
N(R(RURR)RRVR*(R+R,R-RR!R&R'((RR R!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytBytesDecoder�s
	cs�tj|tj��t���|s.t�|rwtj|tj��t���������fd�}|S����fd�}|SdS(s$Returns a decoder for a group field.cs�|j��}|dkr6|j��|��}nx�|j��}|dkro|j��|��}n|j�j|||�}|�}|||!�ks�||kr�td��n|�}|||!�ks�||kr9|Sq9WdS(NsMissing group end tag.(RRRtaddt_InternalParseR(RRRRRRR#(t
end_tag_bytestend_tag_lenRR!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR&,s

cs�|j��}|dkr6|j��|��}n|j|||�}|�}|||!�kst||kr�td��n|S(NsMissing group end tag.(RRRRZR(RRRRRRR#(R[R\RR!(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR'As
N(RR)RtWIRETYPE_END_GROUPR*RUtWIRETYPE_START_GROUP(R+R,R-RR!R&R'((R[R\RR!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytGroupDecoder s	
	csvt�|st�|rYtj|tj��t��������fd�}|S���fd�}|SdS(s&Returns a decoder for a message field.cs�|j��}|dkr6|j��|��}nx��||�\}}||}||krstd��n|j�j|||�|kr�td��n|�}|||!�ks�||kr9|Sq9WdS(NsTruncated message.sUnexpected end-group tag.(RRRRRYRZ(RRRRRRRSR#(RR R!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR&Ys
!
cs�|j��}|dkr6|j��|��}n�||�\}}||}||krptd��n|j|||�|kr�td��n|S(NsTruncated message.sUnexpected end-group tag.(RRRRRZ(RRRRRRRSR#(RR R!(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyR'os
N(R(RURR)RRVR*(R+R,R-RR!R&R'((RR R!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytMessageDecoderOs
	csptjdtj��tjdtj��tjdtj��t�t�t}�����fd�}|S(sReturns a decoder for a MessageSet item.

  The parameter is the message Descriptor.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  iiic
s�|}d}d}d}x��||�\}	}|	�krT�||�\}}q|	�kr��||�\}
}||
}}q|	�kr�Pqt||||	�}|dkrtd��qqW||kr�td��n|dkrtd��n|dkrtd��n|jj|�}|dk	r�|j|�}|dkrr|j||jj��}n|j	|||�|kr�td��q�n2|j
s�g|_
n|j
jt|||!f�|S(Ni����sMissing group end tag.sTruncated message.s MessageSet item missing type_id.s MessageSet item missing message.sUnexpected end-group tag.(
t	SkipFieldRt
Extensionst_FindExtensionByNumberRRRtmessage_typet_concrete_classRZRFRtMESSAGE_SET_ITEM_TAG(
RRRRRtmessage_set_item_startttype_idt
message_starttmessage_endR$RSt	extensionR(titem_end_tag_bytesR t
local_ReadTagtmessage_tag_bytesttype_id_tag_bytes(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
DecodeItem�sF	(	RR)RRGRVR]RR(Ra(t
descriptortlocal_SkipFieldRp((RlR RmRnRosD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pytMessageSetItemDecoder�s0cs^|�tj|jtj��t���t�|j��������fd�}|S(s"Returns a decoder for a map field.c	s�j�}|j��}|dkrB|j��|��}nx��||�\}}||}||krtd��n|j�|j|||�|kr�td��n�r�||jj|j	�n|j	||j<|�}|||!�ks||krE|SqEWdS(NsTruncated message.sUnexpected end-group tag.(
ReRRRRtClearRZRt	MergeFromR(	RRRRRtsubmsgRRSR#(tis_message_mapRR RdR!R$R%(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt	DecodeMap�s$


(RR)tnumberRRVR*R(Rd(tfield_descriptorR!RwRx((RwRR RdR!R$R%sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
MapDecoder�s	!cCsUx)t|||d!�d@r+|d7}qW|d7}||krQtd��n|S(s/Skip a varint value.  Returns the new position.ii�sTruncated message.(tordR(RRR((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SkipVarint�s
cCs)|d7}||kr%td��n|S(s0Skip a fixed64 value.  Returns the new position.isTruncated message.(R(RRR((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SkipFixed64	s
cCs>t||�\}}||7}||kr:td��n|S(s9Skip a length-delimited value.  Returns the new position.sTruncated message.(R(R(RRRRS((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SkipLengthDelimiteds

cCsKxDt||�\}}t||||�}|dkr=|S|}qWdS(s*Skip sub-group.  Returns the new position.i����N(RRa(RRRR$R#((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
_SkipGroupscCsdS(sFSkipping an END_GROUP tag returns -1 to tell the parent loop to break.i����((RRR((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt	_EndGroup$scCs)|d7}||kr%td��n|S(s0Skip a fixed32 value.  Returns the new position.isTruncated message.(R(RRR((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_SkipFixed32)s
cCstd��dS(s;Skip function for unknown wire types.  Raises an exception.sTag had invalid wire type.N(R(RRR((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt_RaiseInvalidWireType1scs=ttttttttg�tj���fd�}|S(s"Constructs the SkipField function.cs+t|dd!��@}�||||�S(sSkips a field with the specified tag.

    |pos| should point to the byte immediately after the tag.

    Returns:
        The new position (after the tag value), or -1 if the tag is an end-group
        tag (in which case the calling loop should break).
    ii(R|(RRRR$R.(tWIRETYPE_TO_SKIPPERt
wiretype_mask(sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyRaFs(	R}R~RR�R�R�R�Rt
TAG_TYPE_MASK(Ra((R�R�sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt
_FieldSkipper6s		ll����ll��(Bt__doc__t
__author__R7RtPY3tinttlongtgoogle.protobuf.internalRRtgoogle.protobufRR=R<R;tDecodeErrorRRRR(t_DecodeSignedVarintt_DecodeVarint32RDRR0R3R:R@RCRKRGtInt32DecodertInt64Decodert
UInt32Decodert
UInt64DecodertZigZagDecodet
SInt32Decodert
SInt64DecoderR?tFixed32DecoderRBtFixed64DecodertSFixed32DecodertSFixed64DecodertFloatDecodert
DoubleDecodertbooltBoolDecoderRWRXR_R`R)R^RfRsR{R}R~RR�R�R�R�R�Ra(((sD/usr/lib/python2.7/site-packages/google/protobuf/internal/decoder.pyt<module>Osv		
					;			#		O			.	%	/	4	J	.					
				 PK�\?~�$~o~oprotobuf/internal/encoder.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Code for encoding protocol message primitives.

Contains the logic for encoding every logical protocol field type
into one of the 5 physical wire types.

This code is designed to push the Python interpreter's performance to the
limits.

The basic idea is that at startup time, for every field (i.e. every
FieldDescriptor) we construct two functions:  a "sizer" and an "encoder".  The
sizer takes a value of this field's type and computes its byte size.  The
encoder takes a writer function and a value.  It encodes the value into byte
strings and invokes the writer function to write those strings.  Typically the
writer function is the write() method of a BytesIO.

We try to do as much work as possible when constructing the writer and the
sizer rather than when calling them.  In particular:
* We copy any needed global functions to local variables, so that we do not need
  to do costly global table lookups at runtime.
* Similarly, we try to do any attribute lookups at startup time if possible.
* Every field's tag is encoded to bytes at startup, since it can't change at
  runtime.
* Whatever component of the field size we can compute at startup, we do.
* We *avoid* sharing code if doing so would make the code slower and not sharing
  does not burden us too much.  For example, encoders for repeated fields do
  not just call the encoders for singular fields in a loop because this would
  add an extra function call overhead for every loop iteration; instead, we
  manually inline the single-value encoder into the loop.
* If a Python function lacks a return statement, Python actually generates
  instructions to pop the result of the last statement off the stack, push
  None onto the stack, and then return that.  If we really don't care what
  value is returned, then we can save two instructions by returning the
  result of the last statement.  It looks funny but it helps.
* We assume that type and bounds checking has happened at a higher level.
"""

__author__ = 'kenton@google.com (Kenton Varda)'

import struct

import six

from google.protobuf.internal import wire_format


# This will overflow and thus become IEEE-754 "infinity".  We would use
# "float('inf')" but it doesn't work on Windows pre-Python-2.6.
_POS_INF = 1e10000
_NEG_INF = -_POS_INF


def _VarintSize(value):
  """Compute the size of a varint value."""
  if value <= 0x7f: return 1
  if value <= 0x3fff: return 2
  if value <= 0x1fffff: return 3
  if value <= 0xfffffff: return 4
  if value <= 0x7ffffffff: return 5
  if value <= 0x3ffffffffff: return 6
  if value <= 0x1ffffffffffff: return 7
  if value <= 0xffffffffffffff: return 8
  if value <= 0x7fffffffffffffff: return 9
  return 10


def _SignedVarintSize(value):
  """Compute the size of a signed varint value."""
  if value < 0: return 10
  if value <= 0x7f: return 1
  if value <= 0x3fff: return 2
  if value <= 0x1fffff: return 3
  if value <= 0xfffffff: return 4
  if value <= 0x7ffffffff: return 5
  if value <= 0x3ffffffffff: return 6
  if value <= 0x1ffffffffffff: return 7
  if value <= 0xffffffffffffff: return 8
  if value <= 0x7fffffffffffffff: return 9
  return 10


def _TagSize(field_number):
  """Returns the number of bytes required to serialize a tag with this field
  number."""
  # Just pass in type 0, since the type won't affect the tag+type size.
  return _VarintSize(wire_format.PackTag(field_number, 0))


# --------------------------------------------------------------------
# In this section we define some generic sizers.  Each of these functions
# takes parameters specific to a particular field type, e.g. int32 or fixed64.
# It returns another function which in turn takes parameters specific to a
# particular field, e.g. the field number and whether it is repeated or packed.
# Look at the next section to see how these are used.


def _SimpleSizer(compute_value_size):
  """A sizer which uses the function compute_value_size to compute the size of
  each value.  Typically compute_value_size is _VarintSize."""

  def SpecificSizer(field_number, is_repeated, is_packed):
    tag_size = _TagSize(field_number)
    if is_packed:
      local_VarintSize = _VarintSize
      def PackedFieldSize(value):
        result = 0
        for element in value:
          result += compute_value_size(element)
        return result + local_VarintSize(result) + tag_size
      return PackedFieldSize
    elif is_repeated:
      def RepeatedFieldSize(value):
        result = tag_size * len(value)
        for element in value:
          result += compute_value_size(element)
        return result
      return RepeatedFieldSize
    else:
      def FieldSize(value):
        return tag_size + compute_value_size(value)
      return FieldSize

  return SpecificSizer


def _ModifiedSizer(compute_value_size, modify_value):
  """Like SimpleSizer, but modify_value is invoked on each value before it is
  passed to compute_value_size.  modify_value is typically ZigZagEncode."""

  def SpecificSizer(field_number, is_repeated, is_packed):
    tag_size = _TagSize(field_number)
    if is_packed:
      local_VarintSize = _VarintSize
      def PackedFieldSize(value):
        result = 0
        for element in value:
          result += compute_value_size(modify_value(element))
        return result + local_VarintSize(result) + tag_size
      return PackedFieldSize
    elif is_repeated:
      def RepeatedFieldSize(value):
        result = tag_size * len(value)
        for element in value:
          result += compute_value_size(modify_value(element))
        return result
      return RepeatedFieldSize
    else:
      def FieldSize(value):
        return tag_size + compute_value_size(modify_value(value))
      return FieldSize

  return SpecificSizer


def _FixedSizer(value_size):
  """Like _SimpleSizer except for a fixed-size field.  The input is the size
  of one value."""

  def SpecificSizer(field_number, is_repeated, is_packed):
    tag_size = _TagSize(field_number)
    if is_packed:
      local_VarintSize = _VarintSize
      def PackedFieldSize(value):
        result = len(value) * value_size
        return result + local_VarintSize(result) + tag_size
      return PackedFieldSize
    elif is_repeated:
      element_size = value_size + tag_size
      def RepeatedFieldSize(value):
        return len(value) * element_size
      return RepeatedFieldSize
    else:
      field_size = value_size + tag_size
      def FieldSize(value):
        return field_size
      return FieldSize

  return SpecificSizer


# ====================================================================
# Here we declare a sizer constructor for each field type.  Each "sizer
# constructor" is a function that takes (field_number, is_repeated, is_packed)
# as parameters and returns a sizer, which in turn takes a field value as
# a parameter and returns its encoded size.


Int32Sizer = Int64Sizer = EnumSizer = _SimpleSizer(_SignedVarintSize)

UInt32Sizer = UInt64Sizer = _SimpleSizer(_VarintSize)

SInt32Sizer = SInt64Sizer = _ModifiedSizer(
    _SignedVarintSize, wire_format.ZigZagEncode)

Fixed32Sizer = SFixed32Sizer = FloatSizer  = _FixedSizer(4)
Fixed64Sizer = SFixed64Sizer = DoubleSizer = _FixedSizer(8)

BoolSizer = _FixedSizer(1)


def StringSizer(field_number, is_repeated, is_packed):
  """Returns a sizer for a string field."""

  tag_size = _TagSize(field_number)
  local_VarintSize = _VarintSize
  local_len = len
  assert not is_packed
  if is_repeated:
    def RepeatedFieldSize(value):
      result = tag_size * len(value)
      for element in value:
        l = local_len(element.encode('utf-8'))
        result += local_VarintSize(l) + l
      return result
    return RepeatedFieldSize
  else:
    def FieldSize(value):
      l = local_len(value.encode('utf-8'))
      return tag_size + local_VarintSize(l) + l
    return FieldSize


def BytesSizer(field_number, is_repeated, is_packed):
  """Returns a sizer for a bytes field."""

  tag_size = _TagSize(field_number)
  local_VarintSize = _VarintSize
  local_len = len
  assert not is_packed
  if is_repeated:
    def RepeatedFieldSize(value):
      result = tag_size * len(value)
      for element in value:
        l = local_len(element)
        result += local_VarintSize(l) + l
      return result
    return RepeatedFieldSize
  else:
    def FieldSize(value):
      l = local_len(value)
      return tag_size + local_VarintSize(l) + l
    return FieldSize


def GroupSizer(field_number, is_repeated, is_packed):
  """Returns a sizer for a group field."""

  tag_size = _TagSize(field_number) * 2
  assert not is_packed
  if is_repeated:
    def RepeatedFieldSize(value):
      result = tag_size * len(value)
      for element in value:
        result += element.ByteSize()
      return result
    return RepeatedFieldSize
  else:
    def FieldSize(value):
      return tag_size + value.ByteSize()
    return FieldSize


def MessageSizer(field_number, is_repeated, is_packed):
  """Returns a sizer for a message field."""

  tag_size = _TagSize(field_number)
  local_VarintSize = _VarintSize
  assert not is_packed
  if is_repeated:
    def RepeatedFieldSize(value):
      result = tag_size * len(value)
      for element in value:
        l = element.ByteSize()
        result += local_VarintSize(l) + l
      return result
    return RepeatedFieldSize
  else:
    def FieldSize(value):
      l = value.ByteSize()
      return tag_size + local_VarintSize(l) + l
    return FieldSize


# --------------------------------------------------------------------
# MessageSet is special: it needs custom logic to compute its size properly.


def MessageSetItemSizer(field_number):
  """Returns a sizer for extensions of MessageSet.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  """
  static_size = (_TagSize(1) * 2 + _TagSize(2) + _VarintSize(field_number) +
                 _TagSize(3))
  local_VarintSize = _VarintSize

  def FieldSize(value):
    l = value.ByteSize()
    return static_size + local_VarintSize(l) + l

  return FieldSize


# --------------------------------------------------------------------
# Map is special: it needs custom logic to compute its size properly.


def MapSizer(field_descriptor, is_message_map):
  """Returns a sizer for a map field."""

  # Can't look at field_descriptor.message_type._concrete_class because it may
  # not have been initialized yet.
  message_type = field_descriptor.message_type
  message_sizer = MessageSizer(field_descriptor.number, False, False)

  def FieldSize(map_value):
    total = 0
    for key in map_value:
      value = map_value[key]
      # It's wasteful to create the messages and throw them away one second
      # later since we'll do the same for the actual encode.  But there's not an
      # obvious way to avoid this within the current design without tons of code
      # duplication. For message map, value.ByteSize() should be called to
      # update the status.
      entry_msg = message_type._concrete_class(key=key, value=value)
      total += message_sizer(entry_msg)
      if is_message_map:
        value.ByteSize()
    return total

  return FieldSize

# ====================================================================
# Encoders!


def _VarintEncoder():
  """Return an encoder for a basic varint value (does not include tag)."""

  def EncodeVarint(write, value, unused_deterministic):
    bits = value & 0x7f
    value >>= 7
    while value:
      write(six.int2byte(0x80|bits))
      bits = value & 0x7f
      value >>= 7
    return write(six.int2byte(bits))

  return EncodeVarint


def _SignedVarintEncoder():
  """Return an encoder for a basic signed varint value (does not include
  tag)."""

  def EncodeSignedVarint(write, value, unused_deterministic):
    if value < 0:
      value += (1 << 64)
    bits = value & 0x7f
    value >>= 7
    while value:
      write(six.int2byte(0x80|bits))
      bits = value & 0x7f
      value >>= 7
    return write(six.int2byte(bits))

  return EncodeSignedVarint


_EncodeVarint = _VarintEncoder()
_EncodeSignedVarint = _SignedVarintEncoder()


def _VarintBytes(value):
  """Encode the given integer as a varint and return the bytes.  This is only
  called at startup time so it doesn't need to be fast."""

  pieces = []
  _EncodeVarint(pieces.append, value, True)
  return b"".join(pieces)


def TagBytes(field_number, wire_type):
  """Encode the given tag and return the bytes.  Only called at startup."""

  return six.binary_type( _VarintBytes(wire_format.PackTag(field_number, wire_type)) )

# --------------------------------------------------------------------
# As with sizers (see above), we have a number of common encoder
# implementations.


def _SimpleEncoder(wire_type, encode_value, compute_value_size):
  """Return a constructor for an encoder for fields of a particular type.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      encode_value:  A function which encodes an individual value, e.g.
        _EncodeVarint().
      compute_value_size:  A function which computes the size of an individual
        value, e.g. _VarintSize().
  """

  def SpecificEncoder(field_number, is_repeated, is_packed):
    if is_packed:
      tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
      local_EncodeVarint = _EncodeVarint
      def EncodePackedField(write, value, deterministic):
        write(tag_bytes)
        size = 0
        for element in value:
          size += compute_value_size(element)
        local_EncodeVarint(write, size, deterministic)
        for element in value:
          encode_value(write, element, deterministic)
      return EncodePackedField
    elif is_repeated:
      tag_bytes = TagBytes(field_number, wire_type)
      def EncodeRepeatedField(write, value, deterministic):
        for element in value:
          write(tag_bytes)
          encode_value(write, element, deterministic)
      return EncodeRepeatedField
    else:
      tag_bytes = TagBytes(field_number, wire_type)
      def EncodeField(write, value, deterministic):
        write(tag_bytes)
        return encode_value(write, value, deterministic)
      return EncodeField

  return SpecificEncoder


def _ModifiedEncoder(wire_type, encode_value, compute_value_size, modify_value):
  """Like SimpleEncoder but additionally invokes modify_value on every value
  before passing it to encode_value.  Usually modify_value is ZigZagEncode."""

  def SpecificEncoder(field_number, is_repeated, is_packed):
    if is_packed:
      tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
      local_EncodeVarint = _EncodeVarint
      def EncodePackedField(write, value, deterministic):
        write(tag_bytes)
        size = 0
        for element in value:
          size += compute_value_size(modify_value(element))
        local_EncodeVarint(write, size, deterministic)
        for element in value:
          encode_value(write, modify_value(element), deterministic)
      return EncodePackedField
    elif is_repeated:
      tag_bytes = TagBytes(field_number, wire_type)
      def EncodeRepeatedField(write, value, deterministic):
        for element in value:
          write(tag_bytes)
          encode_value(write, modify_value(element), deterministic)
      return EncodeRepeatedField
    else:
      tag_bytes = TagBytes(field_number, wire_type)
      def EncodeField(write, value, deterministic):
        write(tag_bytes)
        return encode_value(write, modify_value(value), deterministic)
      return EncodeField

  return SpecificEncoder


def _StructPackEncoder(wire_type, format):
  """Return a constructor for an encoder for a fixed-width field.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      format:  The format string to pass to struct.pack().
  """

  value_size = struct.calcsize(format)

  def SpecificEncoder(field_number, is_repeated, is_packed):
    local_struct_pack = struct.pack
    if is_packed:
      tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
      local_EncodeVarint = _EncodeVarint
      def EncodePackedField(write, value, deterministic):
        write(tag_bytes)
        local_EncodeVarint(write, len(value) * value_size, deterministic)
        for element in value:
          write(local_struct_pack(format, element))
      return EncodePackedField
    elif is_repeated:
      tag_bytes = TagBytes(field_number, wire_type)
      def EncodeRepeatedField(write, value, unused_deterministic):
        for element in value:
          write(tag_bytes)
          write(local_struct_pack(format, element))
      return EncodeRepeatedField
    else:
      tag_bytes = TagBytes(field_number, wire_type)
      def EncodeField(write, value, unused_deterministic):
        write(tag_bytes)
        return write(local_struct_pack(format, value))
      return EncodeField

  return SpecificEncoder


def _FloatingPointEncoder(wire_type, format):
  """Return a constructor for an encoder for float fields.

  This is like StructPackEncoder, but catches errors that may be due to
  passing non-finite floating-point values to struct.pack, and makes a
  second attempt to encode those values.

  Args:
      wire_type:  The field's wire type, for encoding tags.
      format:  The format string to pass to struct.pack().
  """

  value_size = struct.calcsize(format)
  if value_size == 4:
    def EncodeNonFiniteOrRaise(write, value):
      # Remember that the serialized form uses little-endian byte order.
      if value == _POS_INF:
        write(b'\x00\x00\x80\x7F')
      elif value == _NEG_INF:
        write(b'\x00\x00\x80\xFF')
      elif value != value:           # NaN
        write(b'\x00\x00\xC0\x7F')
      else:
        raise
  elif value_size == 8:
    def EncodeNonFiniteOrRaise(write, value):
      if value == _POS_INF:
        write(b'\x00\x00\x00\x00\x00\x00\xF0\x7F')
      elif value == _NEG_INF:
        write(b'\x00\x00\x00\x00\x00\x00\xF0\xFF')
      elif value != value:                         # NaN
        write(b'\x00\x00\x00\x00\x00\x00\xF8\x7F')
      else:
        raise
  else:
    raise ValueError('Can\'t encode floating-point values that are '
                     '%d bytes long (only 4 or 8)' % value_size)

  def SpecificEncoder(field_number, is_repeated, is_packed):
    local_struct_pack = struct.pack
    if is_packed:
      tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
      local_EncodeVarint = _EncodeVarint
      def EncodePackedField(write, value, deterministic):
        write(tag_bytes)
        local_EncodeVarint(write, len(value) * value_size, deterministic)
        for element in value:
          # This try/except block is going to be faster than any code that
          # we could write to check whether element is finite.
          try:
            write(local_struct_pack(format, element))
          except SystemError:
            EncodeNonFiniteOrRaise(write, element)
      return EncodePackedField
    elif is_repeated:
      tag_bytes = TagBytes(field_number, wire_type)
      def EncodeRepeatedField(write, value, unused_deterministic):
        for element in value:
          write(tag_bytes)
          try:
            write(local_struct_pack(format, element))
          except SystemError:
            EncodeNonFiniteOrRaise(write, element)
      return EncodeRepeatedField
    else:
      tag_bytes = TagBytes(field_number, wire_type)
      def EncodeField(write, value, unused_deterministic):
        write(tag_bytes)
        try:
          write(local_struct_pack(format, value))
        except SystemError:
          EncodeNonFiniteOrRaise(write, value)
      return EncodeField

  return SpecificEncoder


# ====================================================================
# Here we declare an encoder constructor for each field type.  These work
# very similarly to sizer constructors, described earlier.


Int32Encoder = Int64Encoder = EnumEncoder = _SimpleEncoder(
    wire_format.WIRETYPE_VARINT, _EncodeSignedVarint, _SignedVarintSize)

UInt32Encoder = UInt64Encoder = _SimpleEncoder(
    wire_format.WIRETYPE_VARINT, _EncodeVarint, _VarintSize)

SInt32Encoder = SInt64Encoder = _ModifiedEncoder(
    wire_format.WIRETYPE_VARINT, _EncodeVarint, _VarintSize,
    wire_format.ZigZagEncode)

# Note that Python conveniently guarantees that when using the '<' prefix on
# formats, they will also have the same size across all platforms (as opposed
# to without the prefix, where their sizes depend on the C compiler's basic
# type sizes).
Fixed32Encoder  = _StructPackEncoder(wire_format.WIRETYPE_FIXED32, '<I')
Fixed64Encoder  = _StructPackEncoder(wire_format.WIRETYPE_FIXED64, '<Q')
SFixed32Encoder = _StructPackEncoder(wire_format.WIRETYPE_FIXED32, '<i')
SFixed64Encoder = _StructPackEncoder(wire_format.WIRETYPE_FIXED64, '<q')
FloatEncoder    = _FloatingPointEncoder(wire_format.WIRETYPE_FIXED32, '<f')
DoubleEncoder   = _FloatingPointEncoder(wire_format.WIRETYPE_FIXED64, '<d')


def BoolEncoder(field_number, is_repeated, is_packed):
  """Returns an encoder for a boolean field."""

  false_byte = b'\x00'
  true_byte = b'\x01'
  if is_packed:
    tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
    local_EncodeVarint = _EncodeVarint
    def EncodePackedField(write, value, deterministic):
      write(tag_bytes)
      local_EncodeVarint(write, len(value), deterministic)
      for element in value:
        if element:
          write(true_byte)
        else:
          write(false_byte)
    return EncodePackedField
  elif is_repeated:
    tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_VARINT)
    def EncodeRepeatedField(write, value, unused_deterministic):
      for element in value:
        write(tag_bytes)
        if element:
          write(true_byte)
        else:
          write(false_byte)
    return EncodeRepeatedField
  else:
    tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_VARINT)
    def EncodeField(write, value, unused_deterministic):
      write(tag_bytes)
      if value:
        return write(true_byte)
      return write(false_byte)
    return EncodeField


def StringEncoder(field_number, is_repeated, is_packed):
  """Returns an encoder for a string field."""

  tag = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
  local_EncodeVarint = _EncodeVarint
  local_len = len
  assert not is_packed
  if is_repeated:
    def EncodeRepeatedField(write, value, deterministic):
      for element in value:
        encoded = element.encode('utf-8')
        write(tag)
        local_EncodeVarint(write, local_len(encoded), deterministic)
        write(encoded)
    return EncodeRepeatedField
  else:
    def EncodeField(write, value, deterministic):
      encoded = value.encode('utf-8')
      write(tag)
      local_EncodeVarint(write, local_len(encoded), deterministic)
      return write(encoded)
    return EncodeField


def BytesEncoder(field_number, is_repeated, is_packed):
  """Returns an encoder for a bytes field."""

  tag = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
  local_EncodeVarint = _EncodeVarint
  local_len = len
  assert not is_packed
  if is_repeated:
    def EncodeRepeatedField(write, value, deterministic):
      for element in value:
        write(tag)
        local_EncodeVarint(write, local_len(element), deterministic)
        write(element)
    return EncodeRepeatedField
  else:
    def EncodeField(write, value, deterministic):
      write(tag)
      local_EncodeVarint(write, local_len(value), deterministic)
      return write(value)
    return EncodeField


def GroupEncoder(field_number, is_repeated, is_packed):
  """Returns an encoder for a group field."""

  start_tag = TagBytes(field_number, wire_format.WIRETYPE_START_GROUP)
  end_tag = TagBytes(field_number, wire_format.WIRETYPE_END_GROUP)
  assert not is_packed
  if is_repeated:
    def EncodeRepeatedField(write, value, deterministic):
      for element in value:
        write(start_tag)
        element._InternalSerialize(write, deterministic)
        write(end_tag)
    return EncodeRepeatedField
  else:
    def EncodeField(write, value, deterministic):
      write(start_tag)
      value._InternalSerialize(write, deterministic)
      return write(end_tag)
    return EncodeField


def MessageEncoder(field_number, is_repeated, is_packed):
  """Returns an encoder for a message field."""

  tag = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
  local_EncodeVarint = _EncodeVarint
  assert not is_packed
  if is_repeated:
    def EncodeRepeatedField(write, value, deterministic):
      for element in value:
        write(tag)
        local_EncodeVarint(write, element.ByteSize(), deterministic)
        element._InternalSerialize(write, deterministic)
    return EncodeRepeatedField
  else:
    def EncodeField(write, value, deterministic):
      write(tag)
      local_EncodeVarint(write, value.ByteSize(), deterministic)
      return value._InternalSerialize(write, deterministic)
    return EncodeField


# --------------------------------------------------------------------
# As before, MessageSet is special.


def MessageSetItemEncoder(field_number):
  """Encoder for extensions of MessageSet.

  The message set message looks like this:
    message MessageSet {
      repeated group Item = 1 {
        required int32 type_id = 2;
        required string message = 3;
      }
    }
  """
  start_bytes = b"".join([
      TagBytes(1, wire_format.WIRETYPE_START_GROUP),
      TagBytes(2, wire_format.WIRETYPE_VARINT),
      _VarintBytes(field_number),
      TagBytes(3, wire_format.WIRETYPE_LENGTH_DELIMITED)])
  end_bytes = TagBytes(1, wire_format.WIRETYPE_END_GROUP)
  local_EncodeVarint = _EncodeVarint

  def EncodeField(write, value, deterministic):
    write(start_bytes)
    local_EncodeVarint(write, value.ByteSize(), deterministic)
    value._InternalSerialize(write, deterministic)
    return write(end_bytes)

  return EncodeField


# --------------------------------------------------------------------
# As before, Map is special.


def MapEncoder(field_descriptor):
  """Encoder for extensions of MessageSet.

  Maps always have a wire format like this:
    message MapEntry {
      key_type key = 1;
      value_type value = 2;
    }
    repeated MapEntry map = N;
  """
  # Can't look at field_descriptor.message_type._concrete_class because it may
  # not have been initialized yet.
  message_type = field_descriptor.message_type
  encode_message = MessageEncoder(field_descriptor.number, False, False)

  def EncodeField(write, value, deterministic):
    value_keys = sorted(value.keys()) if deterministic else value
    for key in value_keys:
      entry_msg = message_type._concrete_class(key=key, value=value[key])
      encode_message(write, entry_msg, deterministic)

  return EncodeField
PK�\��s�a�a protobuf/internal/containers.pycnu�[����
���hc@sdZdZddlZddlZejddkr�defd��YZdefd	��YZejje�ejje�n	ejZd
efd��YZ	de	fd
��YZ
ejje	�de	fd��YZdefd��YZ
defd��YZdS(s�Contains container classes to represent different protocol buffer types.

This file defines container classes which represent categories of protocol
buffer field types which need extra maintenance. Currently these categories
are:
  - Repeated scalar fields - These are all repeated fields which aren't
    composite (e.g. they are of simple types like int32, string, etc).
  - Repeated composite fields - Repeated fields which are composite. This
    includes groups and nested messages.
spetar@google.com (Petar Petrov)i����NiitMappingcBsqeZd
Zdd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�ZdZd�Z
d	�ZRS(cCs%y||SWntk
r |SXdS(N(tKeyError(tselftkeytdefault((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytgetGs
cCs)y||Wntk
r tSXtSdS(N(RtFalsetTrue(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__contains__Ms

cCs
t|�S(N(titer(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytiterkeysUsccsx|D]}||VqWdS(N((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt
itervaluesXs
ccs$x|D]}|||fVqWdS(N((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt	iteritems\s
cCs
t|�S(N(tlist(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytkeys`scCs!g|D]}|||f^qS(N((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytitemscscCsg|D]}||^qS(N((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytvaluesfscCs8t|tj�stSt|j��t|j��kS(N(t
isinstancetcollectionsRtNotImplementedtdictR(Rtother((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__eq__lscCs||kS(N((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__ne__qs(N(t__name__t
__module__t	__slots__tNoneRRR
RRRRRt__hash__RR(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRDs								tMutableMappingcBsJeZdZe�Zed�Zd�Zd�Zd�Zdd�Z
RS(cCsGy||}Wn'tk
r7||jkr3�n|SX||=|SdS(N(Rt_MutableMapping__marker(RRRtvalue((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytpopys
cCsKytt|��}Wntk
r/t�nX||}||=||fS(N(tnextR	t
StopIterationR(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytpopitem�s


cCs3yxtr|j�qWWntk
r.nXdS(N(RR#R(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytclear�s
	
cOs%t|�dkr0tdjt|����n|sEtd��n|d}t|�dkrk|dnd}t|t�r�xw|D]}||||<q�WnXt|d�r�xF|j�D]}||||<q�Wn!x|D]\}}|||<q�Wx$|j�D]\}}|||<qWdS(Nis8update() takes at most 2 positional arguments ({} given)s,update() takes at least 1 argument (0 given)iiR((tlent	TypeErrortformatRRthasattrRR(targstkwdsRRRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytupdate�s"	
"
cCs.y||SWntk
r)|||<nX|S(N(R(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt
setdefault�s

(N(RRRtobjectRR R#R$R+RR,(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRts					t
BaseContainercBsYeZdZddgZd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
RS(
sBase container class.t_message_listenert_valuescCs||_g|_dS(s�
    Args:
      message_listener: A MessageListener implementation.
        The RepeatedScalarFieldContainer will call this object's
        Modified() method when it is modified.
    N(R/R0(Rtmessage_listener((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__init__�s	cCs|j|S(s$Retrieves item by the specified key.(R0(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__getitem__�scCs
t|j�S(s0Returns the number of elements in the container.(R%R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__len__�scCs||kS(s3Checks if another instance isn't equal to this one.((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR�scCstd��dS(Nsunhashable object(R&(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR�scCs
t|j�S(N(treprR0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__repr__�scOs9d|kr"|jd�|d<n|jj||�dS(Nt
sort_functiontcmp(R R0tsort(RR)tkwargs((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR9�s(RRt__doc__RR2R3R4RRR6R9(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR.�s	
					tRepeatedScalarFieldContainercBs�eZdZdgZd�Zd�Zd�Zd�Zd�Zd�Z	dd	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�ZRS(sGSimple, type-checked, list-like container for holding repeated scalars.t
_type_checkercCs#tt|�j|�||_dS(s,
    Args:
      message_listener: A MessageListener implementation.
        The RepeatedScalarFieldContainer will call this object's
        Modified() method when it is modified.
      type_checker: A type_checkers.ValueChecker instance to run on elements
        inserted into this container.
    N(tsuperR<R2R=(RR1ttype_checker((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR2�s	cCs<|jj|jj|��|jjs8|jj�ndS(s6Appends an item to the list. Similar to list.append().N(R0tappendR=t
CheckValueR/tdirtytModified(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR@�scCs?|jj||jj|��|jjs;|jj�ndS(sEInserts the item at the specified position. Similar to list.insert().N(R0tinsertR=RAR/RBRC(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRD�scCs�|dkrdSyt|�}Wntk
r@|s:dS�nXg|D]}|jj|�^qH}|r|jj|�n|jj�dS(sBExtends by appending the given iterable. Similar to list.extend().N(	RR	R&R=RAR0textendR/RC(Rtelem_seqt
elem_seq_itertelemt
new_values((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyREs
%cCs$|jj|j�|jj�dS(s�Appends the contents of another repeated field of the same type to this
    one. We do not check the types of the individual fields.
    N(R0RER/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt	MergeFromscCs!|jj|�|jj�dS(s8Removes an item from the list. Similar to list.remove().N(R0tremoveR/RC(RRH((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRKsi����cCs|j|}|j|�|S(sDRemoves and returns an item at a given index. Similar to list.pop().(R0t__delitem__(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR $s

cCsst|t�rI|jdk	r-td��n|j|j|j|�n&|jj	|�|j
|<|jj�dS(s(Sets the item on the specified position.sExtended slices not supportedN(
RtslicetstepRt
ValueErrort__setslice__tstarttstopR=RAR0R/RC(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__setitem__*scCs|j||!S(sARetrieves the subset of items from between the specified indices.(R0(RRQRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__getslice__4scCsQg}x'|D]}|j|jj|��q
W||j||+|jj�dS(s<Sets the subset of items from between the specified indices.N(R@R=RAR0R/RC(RRQRRRRIR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRP8s

cCs|j|=|jj�dS(s+Deletes the item at the specified position.N(R0R/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRL@s
cCs|j||5|jj�dS(s?Deletes the subset of items from between the specified indices.N(R0R/RC(RRQRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__delslice__Es
cCs?||krtSt||j�r2|j|jkS||jkS(s/Compares the current instance with another one.(RRt	__class__R0(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRJs
(RRR;RR2R@RDRERJRKR RSRTRPRLRUR(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR<�s								
				tRepeatedCompositeFieldContainercBsteZdZdgZd�Zd�Zd�Zd�Zd�Zdd�Z	d	�Z
d
�Zd�Zd�Z
RS(
sBSimple, list-like container for holding repeated composite fields.t_message_descriptorcCs#tt|�j|�||_dS(s�
    Note that we pass in a descriptor instead of the generated directly,
    since at the time we construct a _RepeatedCompositeFieldContainer we
    haven't yet necessarily initialized the type that will be contained in the
    container.

    Args:
      message_listener: A MessageListener implementation.
        The RepeatedCompositeFieldContainer will call this object's
        Modified() method when it is modified.
      message_descriptor: A Descriptor instance describing the protocol type
        that should be present in this container.  We'll use the
        _concrete_class field of this descriptor when the client calls add().
    N(R>RWR2RX(RR1tmessage_descriptor((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR2^scKsR|jj|�}|j|j�|jj|�|jjsN|jj�n|S(s{Adds a new element at the end of the list and returns it. Keyword
    arguments may be used to initialize the element.
    (RXt_concrete_classt_SetListenerR/R0R@RBRC(RR:tnew_element((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytaddpscCsm|jj}|j}|j}x>|D]6}|�}|j|�|j|�|j|�q%W|j�dS(s{Extends by appending the given sequence of elements of the same type
    as this one, copying each individual message.
    N(RXRZR/R0R[RJR@RC(RRFt
message_classtlistenerRtmessageR\((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRE{s		
	

cCs|j|j�dS(svAppends the contents of another repeated field of the same type to this
    one, copying each individual message.
    N(RER0(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRJ�scCs!|jj|�|jj�dS(s8Removes an item from the list. Similar to list.remove().N(R0RKR/RC(RRH((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRK�si����cCs|j|}|j|�|S(sDRemoves and returns an item at a given index. Similar to list.pop().(R0RL(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR �s

cCs|j||!S(sARetrieves the subset of items from between the specified indices.(R0(RRQRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRT�scCs|j|=|jj�dS(s+Deletes the item at the specified position.N(R0R/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRL�s
cCs|j||5|jj�dS(s?Deletes the subset of items from between the specified indices.N(R0R/RC(RRQRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRU�s
cCsA||krtSt||j�s1td��n|j|jkS(s/Compares the current instance with another one.sSCan only compare repeated composite fields against other repeated composite fields.(RRRVR&R0(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR�s
(RRR;RR2R]RERJRKR RTRLRUR(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRWWs									t	ScalarMapcBs�eZdZdddddgZd�Zd�Zd�Zdd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�Zd�Zd�Zd�ZRS(sGSimple, type-checked, dict-like container for holding repeated scalars.t_key_checkert_value_checkerR0R/t_entry_descriptorcCs1||_||_||_||_i|_dS(s�
    Args:
      message_listener: A MessageListener implementation.
        The ScalarMap will call this object's Modified() method when it
        is modified.
      key_checker: A type_checkers.ValueChecker instance to run on keys
        inserted into this container.
      value_checker: A type_checkers.ValueChecker instance to run on values
        inserted into this container.
      entry_descriptor: The MessageDescriptor of a map entry: key and value.
    N(R/RbRcRdR0(RR1tkey_checkert
value_checkertentry_descriptor((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR2�s

				cCsVy|j|SWn@tk
rQ|jj|�}|jj�}||j|<|SXdS(N(R0RRbRARctDefaultValue(RRtval((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR3�s

cCs|jj|�||jkS(N(RbRAR0(Rtitem((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR�scCs||kr||S|SdS(N((RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR�scCsB|jj|�}|jj|�}||j|<|jj�dS(N(RbRARcR0R/RC(RRRtchecked_keyt
checked_value((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRS�s
cCs|j|=|jj�dS(N(R0R/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRL�s
cCs
t|j�S(N(R%R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR4�scCs
t|j�S(N(R	R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__iter__�scCs
t|j�S(N(R5R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR6�scCs$|jj|j�|jj�dS(N(R0R+R/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRJ�scCs&|j}|j�|_d|d<dS(N(R0tcopyR(Rtoriginal((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytInvalidateIterators�s	cCs|jj�|jj�dS(N(R0R$R/RC(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR$s
cCs
|jjS(N(RdRZ(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt
GetEntryClasssN(RRR;RR2R3RRRRSRLR4RmR6RJRpR$Rq(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRa�s 														t
MessageMapcBs�eZdZdddddgZd�Zd�Zd�Zdd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�Zd�Zd�Zd�Zd�ZRS(sESimple, type-checked, dict-like container for with submessage values.RbR0R/RXRdcCs1||_||_||_||_i|_dS(s�
    Args:
      message_listener: A MessageListener implementation.
        The ScalarMap will call this object's Modified() method when it
        is modified.
      key_checker: A type_checkers.ValueChecker instance to run on keys
        inserted into this container.
      value_checker: A type_checkers.ValueChecker instance to run on values
        inserted into this container.
      entry_descriptor: The MessageDescriptor of a map entry: key and value.
    N(R/RXRbRdR0(RR1RYReRg((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR2s

				cCssy|j|SWn]tk
rn|jj|�}|jj�}|j|j�||j|<|jj�|SXdS(N(	R0RRbRARXRZR[R/RC(RRR\((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR3's


cCs||S(saget_or_create() is an alias for getitem (ie. map[key]).

    Args:
      key: The key to get or create in the map.

    This is useful in cases where you want to be explicit that the call is
    mutating the map.  This can avoid lint errors for statements like this
    that otherwise would appear to be pointless statements:

      msg.my_map[key]
    ((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt
get_or_create3scCs||kr||S|SdS(N((RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRDscCs
||jkS(N(R0(RRj((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRJscCstd��dS(Ns5May not set values directly, call my_map[key].foo = 5(RO(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRSMscCs|j|=|jj�dS(N(R0R/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRLPs
cCs
t|j�S(N(R%R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR4TscCs
t|j�S(N(R	R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRmWscCs
t|j�S(N(R5R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR6ZscCs@x9|D]1}||kr#||=n||j||�qWdS(N(tCopyFrom(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRJ]s

cCs&|j}|j�|_d|d<dS(N(R0RnR(RRo((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRpgs	cCs|jj�|jj�dS(N(R0R$R/RC(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR$os
cCs
|jjS(N(RdRZ(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRqssN(RRR;RR2R3RsRRRRSRLR4RmR6RJRpR$Rq(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRrs"											
		(R;t
__author__Rtsystversion_infoR-RRtregisterR.R<tMutableSequenceRWRaRr(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt<module>(s0<	-n[ZPK�\���*protobuf/internal/message_factory_test.pycnu�[����
���hc@s�dZdZyddlZWnek
r;ddlZnXddlmZddlmZddlm	Z	ddlm
Z
ddlmZdd	lmZdd
lm
Z
dejfd��YZed
kr�ej�ndS(s*Tests for google.protobuf.message_factory.s"matthewtoia@google.com (Matt Toia)i����N(tdescriptor_pb2(tapi_implementation(tfactory_test1_pb2(tfactory_test2_pb2(tdescriptor_database(tdescriptor_pool(tmessage_factorytMessageFactoryTestcBs5eZd�Zd�Zd�Zd�Zd�ZRS(cCs:tjjtjj�|_tjjtjj�|_dS(N(	RtFileDescriptorProtot
FromStringRt
DESCRIPTORt
serialized_pbtfactory_test1_fdRtfactory_test2_fd(tself((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pytsetUp4s		cCs�|�}d|_d|_d|j_d|j_d|j_d|jj_d|j_|jj	j
dddg�|jj	jd	�d|_d|_d|j_d|j_d
|jj_d|j_d|_|j	j
d	ddg�|j	jd�|j
j�d
|j
d_d|j
d_|j
jdddd�d
|jj_d|jjjj_|j�}tjj|�}|j�}|j||�|j|�}|j||�dS(Ni*isnested message valueiiuoneutwouthreeufourisone deeps	zero deepthellotworldtpart_1ttestingtpart_2t123i(t	mandatorytnested_factory_2_enumtnested_factory_2_messagetvaluetfactory_1_messagetfactory_1_enumtnested_factory_1_enumtnested_factory_1_messagetscalar_valuet
list_valuetextendtappendtcircular_messagetgroupedtaddRRtlooptSerializeToStringRtFactory2MessageR	tassertEqual(Rtclstmsgt
serializedt	convertedtreserializedtresult((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyt_ExerciseDynamicClass:s>						
cCs�tj�}tj|�}|j|j�|j|j�tj�}|j	|j
d��}|j|tj
k�|j|�|j	|j
d��}|j||k�dS(Ns/google.protobuf.python.internal.Factory2Message(RtDescriptorDatabaseRtDescriptorPooltAddRR
RtMessageFactorytGetPrototypetFindMessageTypeByNametassertFalseRR'R/t
assertTrue(RtdbtpooltfactoryR)tcls2((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyttestGetPrototype\s
cCsxtd�D]}|j|jj|jj�tj|j|jg�}|jt	ddg�j
t	|j����|j|d�|d}|jt	ddg�j
t	d�|j
jjj|j
�D����|d�}|jjd�}|jjd�}d|j|<d|j|<|jd|j|�|jd|j|�|jd|jjd	��tj�d
kr�|jt|j�t|j��|jt|jjd�|jt|jjd�q
|jd|jjd��|jd|jjd��q
WdS(
Nis/google.protobuf.python.internal.Factory2Messages/google.protobuf.python.internal.Factory1Messages>google.protobuf.python.internal.Factory2Message.one_more_fields-google.protobuf.python.internal.another_fieldcss|]}|jVqdS(N(t	full_name(t.0text((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pys	<genexpr>�sttest1ttest2i!0tcppit(trangetassertInRtnameR
t
dependencyRtGetMessagesR7tsettissubsettkeysR/R
tfileR9tFindAllExtensionst
Extensionst_FindExtensionByNameR(tNonet_FindExtensionByNumberRtTypetlentassertRaisest	TypeError(Rt_tmessagestfactory_msg1tmsg1text1text2((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyttestGetMessagesjsN

	
				

	"				c	CsDtj�}tjd|�}tj�}d|_d|_|jj	�}d|_|j
j	�}d|_d|_|j
|�|j|jg�}|jd|�tj�}d|_d|_|jjd�|jj	�}d	|_|jj	�}d
|_d|_tjj|_d	|_d|_|j
|�|j|jg�}|jd|�tj�}d
|_d|_|jjd�|jj	�}d|_|jj	�}d
|_d|_tjj|_d|_d|_|j
|�|jt��}|j|jg�WdQX|jt|j�ddg�dS(NR9s(google/protobuf/internal/container.protosgoogle.protobuf.python.internalt	Containerii
s)google.protobuf.python.internal.Containers(google/protobuf/internal/extension.protot	Extensiontextension_fieldis)google.protobuf.python.internal.Extensions(google/protobuf/internal/duplicate.protot	Duplicates�Extensions "google.protobuf.python.internal.Duplicate.extension_field" and "google.protobuf.python.internal.Extension.extension_field" both try to extend message type "google.protobuf.python.internal.Container" with field number 2.s!Double registration of Extensions(RR1RR3RRRFtpackagetmessage_typeR$textension_rangetstarttendR2RHRERGR!t	extensiontnumbertFieldDescriptorPrototLABEL_OPTIONALtlabelt	type_nametextendeeRTt	Exceptiontstrt	exception(	RR9R:tfR*trngtmsgsR?tcm((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyttestDuplicateExtensionNumber�s\					
							
							
(t__name__t
__module__RR/R<R\Rt(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyR2s
		"		4t__main__(t__doc__t
__author__t	unittest2tunittesttImportErrortgoogle.protobufRtgoogle.protobuf.internalRRRRRRtTestCaseRRutmain(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyt<module> s
�PK�\���*protobuf/internal/message_factory_test.pyonu�[����
���hc@s�dZdZyddlZWnek
r;ddlZnXddlmZddlmZddlm	Z	ddlm
Z
ddlmZdd	lmZdd
lm
Z
dejfd��YZed
kr�ej�ndS(s*Tests for google.protobuf.message_factory.s"matthewtoia@google.com (Matt Toia)i����N(tdescriptor_pb2(tapi_implementation(tfactory_test1_pb2(tfactory_test2_pb2(tdescriptor_database(tdescriptor_pool(tmessage_factorytMessageFactoryTestcBs5eZd�Zd�Zd�Zd�Zd�ZRS(cCs:tjjtjj�|_tjjtjj�|_dS(N(	RtFileDescriptorProtot
FromStringRt
DESCRIPTORt
serialized_pbtfactory_test1_fdRtfactory_test2_fd(tself((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pytsetUp4s		cCs�|�}d|_d|_d|j_d|j_d|j_d|jj_d|j_|jj	j
dddg�|jj	jd	�d|_d|_d|j_d|j_d
|jj_d|j_d|_|j	j
d	ddg�|j	jd�|j
j�d
|j
d_d|j
d_|j
jdddd�d
|jj_d|jjjj_|j�}tjj|�}|j�}|j||�|j|�}|j||�dS(Ni*isnested message valueiiuoneutwouthreeufourisone deeps	zero deepthellotworldtpart_1ttestingtpart_2t123i(t	mandatorytnested_factory_2_enumtnested_factory_2_messagetvaluetfactory_1_messagetfactory_1_enumtnested_factory_1_enumtnested_factory_1_messagetscalar_valuet
list_valuetextendtappendtcircular_messagetgroupedtaddRRtlooptSerializeToStringRtFactory2MessageR	tassertEqual(Rtclstmsgt
serializedt	convertedtreserializedtresult((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyt_ExerciseDynamicClass:s>						
cCs�tj�}tj|�}|j|j�|j|j�tj�}|j	|j
d��}|j|tj
k�|j|�|j	|j
d��}|j||k�dS(Ns/google.protobuf.python.internal.Factory2Message(RtDescriptorDatabaseRtDescriptorPooltAddRR
RtMessageFactorytGetPrototypetFindMessageTypeByNametassertFalseRR'R/t
assertTrue(RtdbtpooltfactoryR)tcls2((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyttestGetPrototype\s
cCsxtd�D]}|j|jj|jj�tj|j|jg�}|jt	ddg�j
t	|j����|j|d�|d}|jt	ddg�j
t	d�|j
jjj|j
�D����|d�}|jjd�}|jjd�}d|j|<d|j|<|jd|j|�|jd|j|�|jd|jjd	��tj�d
kr�|jt|j�t|j��|jt|jjd�|jt|jjd�q
|jd|jjd��|jd|jjd��q
WdS(
Nis/google.protobuf.python.internal.Factory2Messages/google.protobuf.python.internal.Factory1Messages>google.protobuf.python.internal.Factory2Message.one_more_fields-google.protobuf.python.internal.another_fieldcss|]}|jVqdS(N(t	full_name(t.0text((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pys	<genexpr>�sttest1ttest2i!0tcppit(trangetassertInRtnameR
t
dependencyRtGetMessagesR7tsettissubsettkeysR/R
tfileR9tFindAllExtensionst
Extensionst_FindExtensionByNameR(tNonet_FindExtensionByNumberRtTypetlentassertRaisest	TypeError(Rt_tmessagestfactory_msg1tmsg1text1text2((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyttestGetMessagesjsN

	
				

	"				c	CsDtj�}tjd|�}tj�}d|_d|_|jj	�}d|_|j
j	�}d|_d|_|j
|�|j|jg�}|jd|�tj�}d|_d|_|jjd�|jj	�}d	|_|jj	�}d
|_d|_tjj|_d	|_d|_|j
|�|j|jg�}|jd|�tj�}d
|_d|_|jjd�|jj	�}d|_|jj	�}d
|_d|_tjj|_d|_d|_|j
|�|jt��}|j|jg�WdQX|jt|j�ddg�dS(NR9s(google/protobuf/internal/container.protosgoogle.protobuf.python.internalt	Containerii
s)google.protobuf.python.internal.Containers(google/protobuf/internal/extension.protot	Extensiontextension_fieldis)google.protobuf.python.internal.Extensions(google/protobuf/internal/duplicate.protot	Duplicates�Extensions "google.protobuf.python.internal.Duplicate.extension_field" and "google.protobuf.python.internal.Extension.extension_field" both try to extend message type "google.protobuf.python.internal.Container" with field number 2.s!Double registration of Extensions(RR1RR3RRRFtpackagetmessage_typeR$textension_rangetstarttendR2RHRERGR!t	extensiontnumbertFieldDescriptorPrototLABEL_OPTIONALtlabelt	type_nametextendeeRTt	Exceptiontstrt	exception(	RR9R:tfR*trngtmsgsR?tcm((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyttestDuplicateExtensionNumber�s\					
							
							
(t__name__t
__module__RR/R<R\Rt(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyR2s
		"		4t__main__(t__doc__t
__author__t	unittest2tunittesttImportErrortgoogle.protobufRtgoogle.protobuf.internalRRRRRRtTestCaseRRutmain(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/message_factory_test.pyt<module> s
�PK�\��]�@@'protobuf/internal/text_encoding_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Tests for google.protobuf.text_encoding."""

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import text_encoding

TEST_VALUES = [
    ("foo\\rbar\\nbaz\\t",
     "foo\\rbar\\nbaz\\t",
     b"foo\rbar\nbaz\t"),
    ("\\'full of \\\"sound\\\" and \\\"fury\\\"\\'",
     "\\'full of \\\"sound\\\" and \\\"fury\\\"\\'",
     b"'full of \"sound\" and \"fury\"'"),
    ("signi\\\\fying\\\\ nothing\\\\",
     "signi\\\\fying\\\\ nothing\\\\",
     b"signi\\fying\\ nothing\\"),
    ("\\010\\t\\n\\013\\014\\r",
     "\x08\\t\\n\x0b\x0c\\r",
     b"\010\011\012\013\014\015")]


class TextEncodingTestCase(unittest.TestCase):
  def testCEscape(self):
    for escaped, escaped_utf8, unescaped in TEST_VALUES:
      self.assertEqual(escaped,
                        text_encoding.CEscape(unescaped, as_utf8=False))
      self.assertEqual(escaped_utf8,
                        text_encoding.CEscape(unescaped, as_utf8=True))

  def testCUnescape(self):
    for escaped, escaped_utf8, unescaped in TEST_VALUES:
      self.assertEqual(unescaped, text_encoding.CUnescape(escaped))
      self.assertEqual(unescaped, text_encoding.CUnescape(escaped_utf8))


if __name__ == "__main__":
  unittest.main()
PK�\`df1protobuf/internal/more_extensions_dynamic_pb2.pycnu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�ZdZejddddddddddddddd ed!dd"dd#dd$dd%ed&dd'dd(e�Zd)Zejdd*dd+dddd)dd,dd-ddd ed!dd"dd#dd$dd%ed&dd'dd(e�Zd.Zejdd/dd0dd1dd.dd,dd-ddd ed!gd"dd#dd$dd%ed&dd'dd(e�Zejdd2dd3d4dd(ed$dd5ejdd6dd7ddddddddddd ed!dd"dd#dd$dd%ed&dd'dd(e�gd8gd9gd:gd'dd;eddd<gd=gd>d?d@dA�Zeej d2<eej!d<eej!d*<eej!d/<ej"e�e	j#d2ej$fe%dBedCdD��Z&ej'e&�ej(j)e�ee_*ej(j)e�ee_*ej(j)e�dS(Ei����NiicCs|S(N((tx((sX/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_dynamic_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sX/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_dynamic_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tmore_extensions_pb2tnames6google/protobuf/internal/more_extensions_dynamic.prototpackagesgoogle.protobuf.internaltsyntaxtproto2t
serialized_pbs�
6google/protobuf/internal/more_extensions_dynamic.protogoogle.protobuf.internal.google/protobuf/internal/more_extensions.proto"
DynamicMessageType	
a (:J
dynamic_int32_extension).google.protobuf.internal.ExtendedMessaged (:z
dynamic_message_extension).google.protobuf.internal.ExtendedMessagee (2,.google.protobuf.internal.DynamicMessageType:�
"repeated_dynamic_message_extension).google.protobuf.internal.ExtendedMessagef (2,.google.protobuf.internal.DynamicMessageTypetdependenciesidtdynamic_int32_extensiont	full_names0google.protobuf.internal.dynamic_int32_extensiontindextnumberttypeitcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfileietdynamic_message_extensions2google.protobuf.internal.dynamic_message_extensionii
ift"repeated_dynamic_message_extensions;google.protobuf.internal.repeated_dynamic_message_extensionitDynamicMessageTypes+google.protobuf.internal.DynamicMessageTypetfilenametfieldstas-google.protobuf.internal.DynamicMessageType.at
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti�tserialized_endi�t
DESCRIPTORt
__module__s4google.protobuf.internal.more_extensions_dynamic_pb2(+tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtgoogle.protobuf.internalR
t:google_dot_protobuf_dot_internal_dot_more__extensions__pb2tFileDescriptorR/t$DYNAMIC_INT32_EXTENSION_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRt&DYNAMIC_MESSAGE_EXTENSION_FIELD_NUMBERR!t/REPEATED_DYNAMIC_MESSAGE_EXTENSION_FIELD_NUMBERR"t
Descriptort_DYNAMICMESSAGETYPEtmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR#tRegisterMessagetExtendedMessagetRegisterExtensionR(((sX/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_dynamic_pb2.pyt<module>s�%							





		PK�\�W3<xOxO*protobuf/internal/packed_field_test_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/packed_field_test.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/packed_field_test.proto',
  package='google.protobuf.python.internal',
  syntax='proto3',
  serialized_pb=_b('\n0google/protobuf/internal/packed_field_test.proto\x12\x1fgoogle.protobuf.python.internal\"\xdb\x03\n\x0fTestPackedTypes\x12\x16\n\x0erepeated_int32\x18\x01 \x03(\x05\x12\x16\n\x0erepeated_int64\x18\x02 \x03(\x03\x12\x17\n\x0frepeated_uint32\x18\x03 \x03(\r\x12\x17\n\x0frepeated_uint64\x18\x04 \x03(\x04\x12\x17\n\x0frepeated_sint32\x18\x05 \x03(\x11\x12\x17\n\x0frepeated_sint64\x18\x06 \x03(\x12\x12\x18\n\x10repeated_fixed32\x18\x07 \x03(\x07\x12\x18\n\x10repeated_fixed64\x18\x08 \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\t \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18\n \x03(\x10\x12\x16\n\x0erepeated_float\x18\x0b \x03(\x02\x12\x17\n\x0frepeated_double\x18\x0c \x03(\x01\x12\x15\n\rrepeated_bool\x18\r \x03(\x08\x12Y\n\x14repeated_nested_enum\x18\x0e \x03(\x0e\x32;.google.protobuf.python.internal.TestPackedTypes.NestedEnum\"\'\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x00\x12\x07\n\x03\x42\x41R\x10\x01\x12\x07\n\x03\x42\x41Z\x10\x02\"\xec\x03\n\x11TestUnpackedTypes\x12\x1a\n\x0erepeated_int32\x18\x01 \x03(\x05\x42\x02\x10\x00\x12\x1a\n\x0erepeated_int64\x18\x02 \x03(\x03\x42\x02\x10\x00\x12\x1b\n\x0frepeated_uint32\x18\x03 \x03(\rB\x02\x10\x00\x12\x1b\n\x0frepeated_uint64\x18\x04 \x03(\x04\x42\x02\x10\x00\x12\x1b\n\x0frepeated_sint32\x18\x05 \x03(\x11\x42\x02\x10\x00\x12\x1b\n\x0frepeated_sint64\x18\x06 \x03(\x12\x42\x02\x10\x00\x12\x1c\n\x10repeated_fixed32\x18\x07 \x03(\x07\x42\x02\x10\x00\x12\x1c\n\x10repeated_fixed64\x18\x08 \x03(\x06\x42\x02\x10\x00\x12\x1d\n\x11repeated_sfixed32\x18\t \x03(\x0f\x42\x02\x10\x00\x12\x1d\n\x11repeated_sfixed64\x18\n \x03(\x10\x42\x02\x10\x00\x12\x1a\n\x0erepeated_float\x18\x0b \x03(\x02\x42\x02\x10\x00\x12\x1b\n\x0frepeated_double\x18\x0c \x03(\x01\x42\x02\x10\x00\x12\x19\n\rrepeated_bool\x18\r \x03(\x08\x42\x02\x10\x00\x12]\n\x14repeated_nested_enum\x18\x0e \x03(\x0e\x32;.google.protobuf.python.internal.TestPackedTypes.NestedEnumB\x02\x10\x00\x62\x06proto3')
)



_TESTPACKEDTYPES_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.TestPackedTypes.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAZ', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=522,
  serialized_end=561,
)
_sym_db.RegisterEnumDescriptor(_TESTPACKEDTYPES_NESTEDENUM)


_TESTPACKEDTYPES = _descriptor.Descriptor(
  name='TestPackedTypes',
  full_name='google.protobuf.python.internal.TestPackedTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='repeated_int32', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_int32', index=0,
      number=1, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_int64', index=1,
      number=2, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_uint32', index=2,
      number=3, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_uint64', index=3,
      number=4, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint32', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_sint32', index=4,
      number=5, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint64', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_sint64', index=5,
      number=6, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed32', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_fixed32', index=6,
      number=7, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed64', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_fixed64', index=7,
      number=8, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed32', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_sfixed32', index=8,
      number=9, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed64', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_sfixed64', index=9,
      number=10, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_float', index=10,
      number=11, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_double', index=11,
      number=12, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_bool', index=12,
      number=13, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_enum', full_name='google.protobuf.python.internal.TestPackedTypes.repeated_nested_enum', index=13,
      number=14, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _TESTPACKEDTYPES_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=86,
  serialized_end=561,
)


_TESTUNPACKEDTYPES = _descriptor.Descriptor(
  name='TestUnpackedTypes',
  full_name='google.protobuf.python.internal.TestUnpackedTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='repeated_int32', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_int32', index=0,
      number=1, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_int64', index=1,
      number=2, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_uint32', index=2,
      number=3, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_uint64', index=3,
      number=4, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint32', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_sint32', index=4,
      number=5, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint64', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_sint64', index=5,
      number=6, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed32', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_fixed32', index=6,
      number=7, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed64', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_fixed64', index=7,
      number=8, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed32', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_sfixed32', index=8,
      number=9, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed64', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_sfixed64', index=9,
      number=10, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_float', index=10,
      number=11, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_double', index=11,
      number=12, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_bool', index=12,
      number=13, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_enum', full_name='google.protobuf.python.internal.TestUnpackedTypes.repeated_nested_enum', index=13,
      number=14, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=564,
  serialized_end=1056,
)

_TESTPACKEDTYPES.fields_by_name['repeated_nested_enum'].enum_type = _TESTPACKEDTYPES_NESTEDENUM
_TESTPACKEDTYPES_NESTEDENUM.containing_type = _TESTPACKEDTYPES
_TESTUNPACKEDTYPES.fields_by_name['repeated_nested_enum'].enum_type = _TESTPACKEDTYPES_NESTEDENUM
DESCRIPTOR.message_types_by_name['TestPackedTypes'] = _TESTPACKEDTYPES
DESCRIPTOR.message_types_by_name['TestUnpackedTypes'] = _TESTUNPACKEDTYPES
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestPackedTypes = _reflection.GeneratedProtocolMessageType('TestPackedTypes', (_message.Message,), dict(
  DESCRIPTOR = _TESTPACKEDTYPES,
  __module__ = 'google.protobuf.internal.packed_field_test_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.TestPackedTypes)
  ))
_sym_db.RegisterMessage(TestPackedTypes)

TestUnpackedTypes = _reflection.GeneratedProtocolMessageType('TestUnpackedTypes', (_message.Message,), dict(
  DESCRIPTOR = _TESTUNPACKEDTYPES,
  __module__ = 'google.protobuf.internal.packed_field_test_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.TestUnpackedTypes)
  ))
_sym_db.RegisterMessage(TestUnpackedTypes)


_TESTUNPACKEDTYPES.fields_by_name['repeated_int32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_int32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_int64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_int64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_uint32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_uint32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_uint64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_uint64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_sint32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_sint32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_sint64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_sint64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_fixed32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_fixed32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_fixed64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_fixed64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_sfixed32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_sfixed32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_sfixed64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_sfixed64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_float'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_float']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_double'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_double']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_bool'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_bool']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['repeated_nested_enum'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['repeated_nested_enum']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
# @@protoc_insertion_point(module_scope)
PK�\sԃ�>>$protobuf/internal/_parameterized.pyonu�[����
���hc@s`dZdZddlZddlZddlZddlZyddlZWnek
rkddlZnXddl	Z	ddl
Z
ejd�Ze	j
�jZe�Ze�Zd�Zd�Zd�Zd�Zd	efd
��YZd�Zd�Zd
�Zd�Zd�Zdefd��YZd�Zdej fd��YZ!d�Z"dS(s(Adds support for parameterized tests to Python's unittest TestCase class.

A parameterized test is a method in a test case that is invoked with different
argument tuples.

A simple example:

  class AdditionExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
       (1, 2, 3),
       (4, 5, 9),
       (1, 1, 3))
    def testAddition(self, op1, op2, result):
      self.assertEqual(result, op1 + op2)


Each invocation is a separate test case and properly isolated just
like a normal test method, with its own setUp/tearDown cycle. In the
example above, there are three separate testcases, one of which will
fail due to an assertion error (1 + 1 != 3).

Parameters for invididual test cases can be tuples (with positional parameters)
or dictionaries (with named parameters):

  class AdditionExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
       {'op1': 1, 'op2': 2, 'result': 3},
       {'op1': 4, 'op2': 5, 'result': 9},
    )
    def testAddition(self, op1, op2, result):
      self.assertEqual(result, op1 + op2)

If a parameterized test fails, the error message will show the
original test name (which is modified internally) and the arguments
for the specific invocation, which are part of the string returned by
the shortDescription() method on test cases.

The id method of the test, used internally by the unittest framework,
is also modified to show the arguments. To make sure that test names
stay the same across several invocations, object representations like

  >>> class Foo(object):
  ...  pass
  >>> repr(Foo())
  '<__main__.Foo object at 0x23d8610>'

are turned into '<__main__.Foo>'. For even more descriptive names,
especially in test logs, you can use the NamedParameters decorator. In
this case, only tuples are supported, and the first parameters has to
be a string (or an object that returns an apt name when converted via
str()):

  class NamedExample(parameterized.ParameterizedTestCase):
    @parameterized.NamedParameters(
       ('Normal', 'aa', 'aaa', True),
       ('EmptyPrefix', '', 'abc', True),
       ('BothEmpty', '', '', True))
    def testStartsWith(self, prefix, string, result):
      self.assertEqual(result, strings.startswith(prefix))

Named tests also have the benefit that they can be run individually
from the command line:

  $ testmodule.py NamedExample.testStartsWithNormal
  .
  --------------------------------------------------------------------
  Ran 1 test in 0.000s

  OK

Parameterized Classes
=====================
If invocation arguments are shared across test methods in a single
ParameterizedTestCase class, instead of decorating all test methods
individually, the class itself can be decorated:

  @parameterized.Parameters(
    (1, 2, 3)
    (4, 5, 9))
  class ArithmeticTest(parameterized.ParameterizedTestCase):
    def testAdd(self, arg1, arg2, result):
      self.assertEqual(arg1 + arg2, result)

    def testSubtract(self, arg2, arg2, result):
      self.assertEqual(result - arg1, arg2)

Inputs from Iterables
=====================
If parameters should be shared across several test cases, or are dynamically
created from other sources, a single non-tuple iterable can be passed into
the decorator. This iterable will be used to obtain the test cases:

  class AdditionExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
      c.op1, c.op2, c.result for c in testcases
    )
    def testAddition(self, op1, op2, result):
      self.assertEqual(result, op1 + op2)


Single-Argument Test Methods
============================
If a test method takes only one argument, the single argument does not need to
be wrapped into a tuple:

  class NegativeNumberExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
       -1, -3, -4, -5
    )
    def testIsNegative(self, arg):
      self.assertTrue(IsNegative(arg))
s!tmarek@google.com (Torsten Marek)i����Ns0\<([a-zA-Z0-9_\-\.]+) object at 0x[a-fA-F0-9]+\>cCstjdt|��S(Ns<\1>(tADDR_REtsubtrepr(tobj((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt
_CleanRepr�scCsd|j|jfS(Ns%s.%s(t
__module__t__name__(tcls((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt	_StrClass�scCs#t|tj�o"t|tj�S(N(t
isinstancetcollectionstIterabletsixtstring_types(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt_NonStringIterable�scCsbt|tj�r/djd�|j�D��St|�rQdjtt|��St|f�SdS(Ns, css+|]!\}}d|t|�fVqdS(s%s=%sN(R(t.0targnametvalue((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pys	<genexpr>�s(	R	R
tMappingtjointitemsRtmapRt_FormatParameterList(ttestcase_params((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyR�st_ParameterizedTestItercBs)eZdZd�Zd�Zd�ZRS(s9Callable and iterable class for producing new test cases.cCs||_||_||_dS(s\Returns concrete test functions for a test and a list of parameters.

    The naming_type is used to determine the name of the concrete
    functions as reported by the unittest framework. If naming_type is
    _FIRST_ARG, the testcases must be tuples, and the first element must
    have a string representation that is a valid Python identifier.

    Args:
      test_method: The decorated test method.
      testcases: (list of tuple/dict) A list of parameter
                 tuples/dicts for individual test invocations.
      naming_type: The test naming type, either _NAMED or _ARGUMENT_REPR.
    N(t_test_methodt	testcasest_naming_type(tselfttest_methodRtnaming_type((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt__init__�s		cOstd��dS(Ns�You appear to be running a parameterized test case without having inherited from parameterized.ParameterizedTestCase. This is bad because none of your test cases are actually being run.(tRuntimeError(Rtargstkwargs((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt__call__�scs;|j�|j���fd���fd�|jD�S(Ncs�tj����fd��}�tkr\t|_|jt�d�7_�d�n8�tkr�dt��f|_	nt
d�f��d|jt��f|_�jr�|jd�jf7_n|S(NcsOt�tj�r"�|��n)t��r>�|��n
�|��dS(N(R	R
RR(R(RR(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pytBoundParamTest�s
iis(%s)s%s is not a valid naming type.s%s(%s)s
%s(t	functoolstwrapst
_FIRST_ARGtTruet__x_use_name__Rtstrt_ARGUMENT_REPRRt__x_extra_id__R t__doc__(RR$(RR(RsK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pytMakeBoundParamTest�s!		
	c3s|]}�|�VqdS(N((Rtc(R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pys	<genexpr>�s(RRR(R((R.RRsK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt__iter__�s		(RRR-RR#R0(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyR�s		cCs$t|�dko#t|dt�S(s<True iff testcases contains only a single non-tuple element.ii(tlenR	ttuple(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt_IsSingletonList�sc	Cs�i|_}x�|jj�j�D]�\}}|jtjj�r#t|t	j
�r#t||�i}t|||t
|||��x-|j�D]\}}t|||�q�Wq#q#WdS(N(t
_id_suffixt__dict__tcopyRt
startswithtunittestt
TestLoaderttestMethodPrefixR	ttypestFunctionTypetdelattrt _UpdateClassDictForParamTestCaseRtsetattr(tclass_objectRRt	id_suffixtnameRtmethodstmeth((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt_ModifyClasss
"
	cs/��fd�}t��r+�d�n|S(s�Implementation of the parameterization decorators.

  Args:
    naming_type: The naming type.
    testcases: Testcase parameters.

  Returns:
    A function for modifying the decorated object.
  csUt|t�rAt|t�tj�s3t��n���|St|���SdS(N(R	ttypeRER
tSequencetlistR(R(RR(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt_Apply!si(R3(RRRI((RRsK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt_ParameterDecorators

cGs
tt|�S(siA decorator for creating parameterized tests.

  See the module docstring for a usage example.
  Args:
    *testcases: Parameters for the decorated method, either a single
                iterable, or a list of tuples/dicts/objects (for tests
                with only one argument).

  Returns:
     A test generator to be handled by TestGeneratorMetaclass.
  (RJR+(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt
Parameters4scGs
tt|�S(s�A decorator for creating parameterized tests.

  See the module docstring for a usage example. The first element of
  each parameter tuple should be a string and will be appended to the
  name of the test method.

  Args:
    *testcases: Parameters for the decorated method, either a single
                iterable, or a list of tuples.

  Returns:
     A test generator to be handled by TestGeneratorMetaclass.
  (RJR'(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pytNamedParametersCstTestGeneratorMetaclasscBseZdZd�ZRS(s�Metaclass for test cases with test generators.

  A test generator is an iterable in a testcase that produces callables. These
  callables must be single-argument methods. These methods are injected into
  the class namespace and the original iterable is removed. If the name of the
  iterable conforms to the test pattern, the injected methods will be picked
  up as tests by the unittest framework.

  In general, it is supposed to be used in conjunction with the
  Parameters decorator.
  cCs�i|d<}xj|j�D]\\}}|jtjj�rt|�rt|�}|j|�t||||�qqWt	j
||||�S(NR4(RR7R8R9R:RtitertpopR>RFt__new__(tmcst
class_nametbasestdctRARBRtiterator((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyRPas
(RRR-RP(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyRMTscCsrxkt|�D]]\}}t|dt�r7|j}nd|t|f}|||<t|dd�||<q
WdS(sAdds individual test cases to a dictionary.

  Args:
    dct: The target dictionary.
    id_suffix: The dictionary for mapping names to test IDs.
    name: The original name of the test case.
    iterator: The iterator generating the individual test cases.
  R)s%s%s%dR,tN(t	enumeratetgetattrtFalseRt
_SEPARATOR(RTRARBRUtidxtfunctnew_name((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyR>ms	
tParameterizedTestCasecBs/eZdZeZd�Zd�Zd�ZRS(s9Base class for test cases using the Parameters decorator.cCs|jjt�dS(Ni(t_testMethodNametsplitRZ(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt
_OriginalName�scCsd|j�t|j�fS(Ns%s (%s)(RaRt	__class__(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt__str__�scCs2dt|j�|j�|jj|jd�fS(s�Returns the descriptive ID of the test.

    This is used internally by the unittesting framework to get a name
    for the test to be used in reports.

    Returns:
      The test id.
    s%s.%s%sRV(RRbRaR4tgetR_(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pytid�s		(RRR-RMt
__metaclass__RaRcRe(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyR^�s
		cCs1td|jtfi�}|d|tfi�S(s;Returns a new base class with a cooperative metaclass base.

  This enables the ParameterizedTestCase to be used in combination
  with other base classes that have custom metaclasses, such as
  mox.MoxTestBase.

  Only works with metaclasses that do not override type.__new__.

  Example:

    import google3
    import mox

    from google3.testing.pybase import parameterized

    class ExampleTest(parameterized.CoopParameterizedTestCase(mox.MoxTestBase)):
      ...

  Args:
    other_base_class: (class) A test case base class.

  Returns:
    A new class object.
  t
CoopMetaclasstCoopParameterizedTestCase(RFRfRMR^(tother_base_classt	metaclass((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyRh�s(#R-t
__author__R
R%treR;t	unittest2R8tImportErrortuuidRtcompileRtuuid1thexRZtobjectR'R+RRRRRR3RERJRKRLRFRMR>tTestCaseR^Rh(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt<module>�s:
						
A						PK�\kD:
:
&protobuf/internal/message_listener.pyonu�[����
���hc@s<dZdZdefd��YZdefd��YZdS(s�Defines a listener interface for observing certain
state transitions on Message objects.

Also defines a null implementation of this interface.
s#robinson@google.com (Will Robinson)tMessageListenercBseZdZd�ZRS(sListens for modifications made to a message.  Meant to be registered via
  Message._SetListener().

  Attributes:
    dirty:  If True, then calling Modified() would be a no-op.  This can be
            used to avoid these calls entirely in the common case.
  cCs
t�dS(sCalled every time the message is modified in such a way that the parent
    message may need to be updated.  This currently means either:
    (a) The message was modified for the first time, so the parent message
        should henceforth mark the message as present.
    (b) The message's cached byte size became dirty -- i.e. the message was
        modified for the first time after a previous call to ByteSize().
        Therefore the parent should also mark its byte size as dirty.
    Note that (a) implies (b), since new objects start out with a client cached
    size (zero).  However, we document (a) explicitly because it is important.

    Modified() will *only* be called in response to one of these two events --
    not every time the sub-message is modified.

    Note that if the listener's |dirty| attribute is true, then calling
    Modified at the moment would be a no-op, so it can be skipped.  Performance-
    sensitive callers should check this attribute directly before calling since
    it will be true most of the time.
    N(tNotImplementedError(tself((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/message_listener.pytModified2s(t__name__t
__module__t__doc__R(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/message_listener.pyR(stNullMessageListenercBseZdZd�ZRS(s%No-op MessageListener implementation.cCsdS(N((R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/message_listener.pyRMs(RRRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/message_listener.pyRIsN(Rt
__author__tobjectRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/message_listener.pyt<module>#s!PK�\�???&protobuf/internal/testing_refleaks.pycnu�[����
���hc@s�dZddlZddlZyddlZWnek
rMddlZnXyddlZWnek
r}ddlZnXdejfd��YZ	dej
fd��YZeed�r�eZ
ejZnej
Z
d�ZdS(	s[A subclass of unittest.TestCase which checks for reference leaks.

To use:
- Use testing_refleak.BaseTestCase instead of unittest.TestCase
- Configure and compile Python with --with-pydebug

If sys.gettotalrefcount() is not available (because Python was built without
the Py_DEBUG option), then this module is a no-op and tests will run normally.
i����NtLocalTestResultcBs2eZdZd�Zd�Zd�Zd�ZRS(sHA TestResult which forwards events to a parent object, except for Skips.cCstjj|�||_dS(N(tunittestt
TestResultt__init__t
parent_result(tselfR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyR:scCs|jj||�dS(N(RtaddError(Rttestterror((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyR>scCs|jj||�dS(N(Rt
addFailure(RRR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyR	AscCsdS(N((RRtreason((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pytaddSkipDs(t__name__t
__module__t__doc__RRR	R(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyR7s
			tReferenceLeakCheckerTestCasecBs)eZdZdZdd�Zd�ZRS(sHA TestCase which runs tests multiple times, collecting reference counts.icCstjj�|_tt|�jd|�tt|�jd|�d}t|�}g}xYt|j	�D]H}|j
�}tt|�jd|�|j
�}|j||�qlW||fGHy|j|dg|j	�Wn't
k
r
|j|tj��nXdS(Ntresulti(tcopyregtdispatch_tabletcopyt_saved_pickle_registrytsuperRtrunRtrangetNB_RUNSt
_getRefcountstappendtassertEqualt	ExceptionRtsystexc_info(RRtoldrefcounttlocal_resulttrefcount_deltast_tnewrefcount((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyRMs 
cCsHtjj�tjj|j�tj�tj�tj�tj�S(N(	RRtcleartupdateRtgctcollectRtgettotalrefcount(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyRgs



N(RR
RRtNoneRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyRHsR(cCs~d�}|S(NcSs|S(N((tfunc((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pytSame|s((R
R+((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pytSkipReferenceLeakCheckerzs	(RR&Rtcopy_regRtImportErrort	unittest2RRRtTestCaseRthasattrtBaseTestCasetskipR,(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/testing_refleaks.pyt<module>'s"

*	PK�\v�X؜�protobuf/internal/__init__.pyonu�[����
���hc@sdS(N((((sE/usr/lib/python2.7/site-packages/google/protobuf/internal/__init__.pyt<module>tPK�\~y�d�?�?$protobuf/internal/_parameterized.pycnu�[����
���hc@s`dZdZddlZddlZddlZddlZyddlZWnek
rkddlZnXddl	Z	ddl
Z
ejd�Ze	j
�jZe�Ze�Zd�Zd�Zd�Zd�Zd	efd
��YZd�Zd�Zd
�Zd�Zd�Zdefd��YZd�Zdej fd��YZ!d�Z"dS(s(Adds support for parameterized tests to Python's unittest TestCase class.

A parameterized test is a method in a test case that is invoked with different
argument tuples.

A simple example:

  class AdditionExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
       (1, 2, 3),
       (4, 5, 9),
       (1, 1, 3))
    def testAddition(self, op1, op2, result):
      self.assertEqual(result, op1 + op2)


Each invocation is a separate test case and properly isolated just
like a normal test method, with its own setUp/tearDown cycle. In the
example above, there are three separate testcases, one of which will
fail due to an assertion error (1 + 1 != 3).

Parameters for invididual test cases can be tuples (with positional parameters)
or dictionaries (with named parameters):

  class AdditionExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
       {'op1': 1, 'op2': 2, 'result': 3},
       {'op1': 4, 'op2': 5, 'result': 9},
    )
    def testAddition(self, op1, op2, result):
      self.assertEqual(result, op1 + op2)

If a parameterized test fails, the error message will show the
original test name (which is modified internally) and the arguments
for the specific invocation, which are part of the string returned by
the shortDescription() method on test cases.

The id method of the test, used internally by the unittest framework,
is also modified to show the arguments. To make sure that test names
stay the same across several invocations, object representations like

  >>> class Foo(object):
  ...  pass
  >>> repr(Foo())
  '<__main__.Foo object at 0x23d8610>'

are turned into '<__main__.Foo>'. For even more descriptive names,
especially in test logs, you can use the NamedParameters decorator. In
this case, only tuples are supported, and the first parameters has to
be a string (or an object that returns an apt name when converted via
str()):

  class NamedExample(parameterized.ParameterizedTestCase):
    @parameterized.NamedParameters(
       ('Normal', 'aa', 'aaa', True),
       ('EmptyPrefix', '', 'abc', True),
       ('BothEmpty', '', '', True))
    def testStartsWith(self, prefix, string, result):
      self.assertEqual(result, strings.startswith(prefix))

Named tests also have the benefit that they can be run individually
from the command line:

  $ testmodule.py NamedExample.testStartsWithNormal
  .
  --------------------------------------------------------------------
  Ran 1 test in 0.000s

  OK

Parameterized Classes
=====================
If invocation arguments are shared across test methods in a single
ParameterizedTestCase class, instead of decorating all test methods
individually, the class itself can be decorated:

  @parameterized.Parameters(
    (1, 2, 3)
    (4, 5, 9))
  class ArithmeticTest(parameterized.ParameterizedTestCase):
    def testAdd(self, arg1, arg2, result):
      self.assertEqual(arg1 + arg2, result)

    def testSubtract(self, arg2, arg2, result):
      self.assertEqual(result - arg1, arg2)

Inputs from Iterables
=====================
If parameters should be shared across several test cases, or are dynamically
created from other sources, a single non-tuple iterable can be passed into
the decorator. This iterable will be used to obtain the test cases:

  class AdditionExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
      c.op1, c.op2, c.result for c in testcases
    )
    def testAddition(self, op1, op2, result):
      self.assertEqual(result, op1 + op2)


Single-Argument Test Methods
============================
If a test method takes only one argument, the single argument does not need to
be wrapped into a tuple:

  class NegativeNumberExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
       -1, -3, -4, -5
    )
    def testIsNegative(self, arg):
      self.assertTrue(IsNegative(arg))
s!tmarek@google.com (Torsten Marek)i����Ns0\<([a-zA-Z0-9_\-\.]+) object at 0x[a-fA-F0-9]+\>cCstjdt|��S(Ns<\1>(tADDR_REtsubtrepr(tobj((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt
_CleanRepr�scCsd|j|jfS(Ns%s.%s(t
__module__t__name__(tcls((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt	_StrClass�scCs#t|tj�o"t|tj�S(N(t
isinstancetcollectionstIterabletsixtstring_types(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt_NonStringIterable�scCsbt|tj�r/djd�|j�D��St|�rQdjtt|��St|f�SdS(Ns, css+|]!\}}d|t|�fVqdS(s%s=%sN(R(t.0targnametvalue((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pys	<genexpr>�s(	R	R
tMappingtjointitemsRtmapRt_FormatParameterList(ttestcase_params((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyR�st_ParameterizedTestItercBs)eZdZd�Zd�Zd�ZRS(s9Callable and iterable class for producing new test cases.cCs||_||_||_dS(s\Returns concrete test functions for a test and a list of parameters.

    The naming_type is used to determine the name of the concrete
    functions as reported by the unittest framework. If naming_type is
    _FIRST_ARG, the testcases must be tuples, and the first element must
    have a string representation that is a valid Python identifier.

    Args:
      test_method: The decorated test method.
      testcases: (list of tuple/dict) A list of parameter
                 tuples/dicts for individual test invocations.
      naming_type: The test naming type, either _NAMED or _ARGUMENT_REPR.
    N(t_test_methodt	testcasest_naming_type(tselfttest_methodRtnaming_type((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt__init__�s		cOstd��dS(Ns�You appear to be running a parameterized test case without having inherited from parameterized.ParameterizedTestCase. This is bad because none of your test cases are actually being run.(tRuntimeError(Rtargstkwargs((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt__call__�scs;|j�|j���fd���fd�|jD�S(Ncs�tj����fd��}�tkr\t|_|jt�d�7_�d�n8�tkr�dt��f|_	nt
d�f��d|jt��f|_�jr�|jd�jf7_n|S(NcsOt�tj�r"�|��n)t��r>�|��n
�|��dS(N(R	R
RR(R(RR(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pytBoundParamTest�s
iis(%s)s%s is not a valid naming type.s%s(%s)s
%s(t	functoolstwrapst
_FIRST_ARGtTruet__x_use_name__Rtstrt_ARGUMENT_REPRRt__x_extra_id__R t__doc__(RR$(RR(RsK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pytMakeBoundParamTest�s!		
	c3s|]}�|�VqdS(N((Rtc(R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pys	<genexpr>�s(RRR(R((R.RRsK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt__iter__�s		(RRR-RR#R0(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyR�s		cCs$t|�dko#t|dt�S(s<True iff testcases contains only a single non-tuple element.ii(tlenR	ttuple(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt_IsSingletonList�sc	Cs�t|dd�s&td|f��i|_}x�|jj�j�D]�\}}|jtj	j
�rIt|tj
�rIt||�i}t|||t|||��x-|j�D]\}}t|||�q�WqIqIWdS(Nt
_id_suffixsECannot add parameters to %s, which already has parameterized methods.(tgetattrtNonetAssertionErrorR4t__dict__tcopyRt
startswithtunittestt
TestLoaderttestMethodPrefixR	ttypestFunctionTypetdelattrt _UpdateClassDictForParamTestCaseRtsetattr(tclass_objectRRt	id_suffixtnameRtmethodstmeth((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt_ModifyClasss

"
	csK��fd�}t��rGt�d�s:td���d�n|S(s�Implementation of the parameterization decorators.

  Args:
    naming_type: The naming type.
    testcases: Testcase parameters.

  Returns:
    A function for modifying the decorated object.
  csUt|t�rAt|t�tj�s3t��n���|St|���SdS(N(R	ttypeRHR
tSequencetlistR(R(RR(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt_Apply!sis7Single parameter argument must be a non-string iterable(R3RR7(RRRL((RRsK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt_ParameterDecorators
	
cGs
tt|�S(siA decorator for creating parameterized tests.

  See the module docstring for a usage example.
  Args:
    *testcases: Parameters for the decorated method, either a single
                iterable, or a list of tuples/dicts/objects (for tests
                with only one argument).

  Returns:
     A test generator to be handled by TestGeneratorMetaclass.
  (RMR+(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt
Parameters4scGs
tt|�S(s�A decorator for creating parameterized tests.

  See the module docstring for a usage example. The first element of
  each parameter tuple should be a string and will be appended to the
  name of the test method.

  Args:
    *testcases: Parameters for the decorated method, either a single
                iterable, or a list of tuples.

  Returns:
     A test generator to be handled by TestGeneratorMetaclass.
  (RMR'(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pytNamedParametersCstTestGeneratorMetaclasscBseZdZd�ZRS(s�Metaclass for test cases with test generators.

  A test generator is an iterable in a testcase that produces callables. These
  callables must be single-argument methods. These methods are injected into
  the class namespace and the original iterable is removed. If the name of the
  iterable conforms to the test pattern, the injected methods will be picked
  up as tests by the unittest framework.

  In general, it is supposed to be used in conjunction with the
  Parameters decorator.
  cCs�i|d<}xj|j�D]\\}}|jtjj�rt|�rt|�}|j|�t||||�qqWt	j
||||�S(NR4(RR:R;R<R=RtitertpopRARIt__new__(tmcst
class_nametbasestdctRDRERtiterator((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyRSas
(RRR-RS(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyRPTscCs�x�t|�D]�\}}t|�s8td|f��t|dt�rV|j}nd|t|f}||ks�td|f��|||<t|dd�||<q
WdS(sAdds individual test cases to a dictionary.

  Args:
    dct: The target dictionary.
    id_suffix: The dictionary for mapping names to test IDs.
    name: The original name of the test case.
    iterator: The iterator generating the individual test cases.
  s,Test generators must yield callables, got %rR)s%s%s%ds/Name of parameterized test case "%s" not uniqueR,tN(t	enumeratetcallableR7R5tFalseRt
_SEPARATOR(RWRDRERXtidxtfunctnew_name((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyRAms	

tParameterizedTestCasecBs/eZdZeZd�Zd�Zd�ZRS(s9Base class for test cases using the Parameters decorator.cCs|jjt�dS(Ni(t_testMethodNametsplitR](R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt
_OriginalName�scCsd|j�t|j�fS(Ns%s (%s)(RdRt	__class__(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt__str__�scCs2dt|j�|j�|jj|jd�fS(s�Returns the descriptive ID of the test.

    This is used internally by the unittesting framework to get a name
    for the test to be used in reports.

    Returns:
      The test id.
    s%s.%s%sRY(RReRdR4tgetRb(R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pytid�s		(RRR-RPt
__metaclass__RdRfRh(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyRa�s
		cCs1td|jtfi�}|d|tfi�S(s;Returns a new base class with a cooperative metaclass base.

  This enables the ParameterizedTestCase to be used in combination
  with other base classes that have custom metaclasses, such as
  mox.MoxTestBase.

  Only works with metaclasses that do not override type.__new__.

  Example:

    import google3
    import mox

    from google3.testing.pybase import parameterized

    class ExampleTest(parameterized.CoopParameterizedTestCase(mox.MoxTestBase)):
      ...

  Args:
    other_base_class: (class) A test case base class.

  Returns:
    A new class object.
  t
CoopMetaclasstCoopParameterizedTestCase(RIRiRPRa(tother_base_classt	metaclass((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyRk�s(#R-t
__author__R
R%treR>t	unittest2R;tImportErrortuuidRtcompileRtuuid1thexR]tobjectR'R+RRRRRR3RHRMRNRORIRPRAtTestCaseRaRk(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/_parameterized.pyt<module>�s:
						
A						PK�\F�Q�Q.protobuf/internal/descriptor_pool_test1_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/descriptor_pool_test1.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/descriptor_pool_test1.proto',
  package='google.protobuf.python.internal',
  syntax='proto2',
  serialized_pb=_b('\n4google/protobuf/internal/descriptor_pool_test1.proto\x12\x1fgoogle.protobuf.python.internal\"\xfb\x05\n\x13\x44\x65scriptorPoolTest1\x12Z\n\x0bnested_enum\x18\x01 \x01(\x0e\x32?.google.protobuf.python.internal.DescriptorPoolTest1.NestedEnum:\x04\x42\x45TA\x12Z\n\x0enested_message\x18\x02 \x01(\x0b\x32\x42.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage\x1a\xfd\x03\n\rNestedMessage\x12h\n\x0bnested_enum\x18\x01 \x01(\x0e\x32M.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.NestedEnum:\x04ZETA\x12\x1a\n\x0cnested_field\x18\x02 \x01(\t:\x04\x62\x65ta\x12q\n\x13\x64\x65\x65p_nested_message\x18\x03 \x01(\x0b\x32T.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage\x1a\xcd\x01\n\x11\x44\x65\x65pNestedMessage\x12y\n\x0bnested_enum\x18\x01 \x01(\x0e\x32_.google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.NestedEnum:\x03\x45TA\x12\x1b\n\x0cnested_field\x18\x02 \x01(\t:\x05theta\" \n\nNestedEnum\x12\x07\n\x03\x45TA\x10\x07\x12\t\n\x05THETA\x10\x08\"#\n\nNestedEnum\x12\x0b\n\x07\x45PSILON\x10\x05\x12\x08\n\x04ZETA\x10\x06\"!\n\nNestedEnum\x12\t\n\x05\x41LPHA\x10\x01\x12\x08\n\x04\x42\x45TA\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xf1\x05\n\x13\x44\x65scriptorPoolTest2\x12[\n\x0bnested_enum\x18\x01 \x01(\x0e\x32?.google.protobuf.python.internal.DescriptorPoolTest2.NestedEnum:\x05GAMMA\x12Z\n\x0enested_message\x18\x02 \x01(\x0b\x32\x42.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage\x1a\xfc\x03\n\rNestedMessage\x12h\n\x0bnested_enum\x18\x01 \x01(\x0e\x32M.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.NestedEnum:\x04IOTA\x12\x1b\n\x0cnested_field\x18\x02 \x01(\t:\x05\x64\x65lta\x12q\n\x13\x64\x65\x65p_nested_message\x18\x03 \x01(\x0b\x32T.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage\x1a\xcd\x01\n\x11\x44\x65\x65pNestedMessage\x12x\n\x0bnested_enum\x18\x01 \x01(\x0e\x32_.google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.NestedEnum:\x02MU\x12\x1c\n\x0cnested_field\x18\x02 \x01(\t:\x06lambda\" \n\nNestedEnum\x12\n\n\x06LAMBDA\x10\x0b\x12\x06\n\x02MU\x10\x0c\"!\n\nNestedEnum\x12\x08\n\x04IOTA\x10\t\x12\t\n\x05KAPPA\x10\n\"\"\n\nNestedEnum\x12\t\n\x05GAMMA\x10\x03\x12\t\n\x05\x44\x45LTA\x10\x04')
)



_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ETA', index=0, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='THETA', index=1, number=8,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=738,
  serialized_end=770,
)
_sym_db.RegisterEnumDescriptor(_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM)

_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='EPSILON', index=0, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ZETA', index=1, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=772,
  serialized_end=807,
)
_sym_db.RegisterEnumDescriptor(_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_NESTEDENUM)

_DESCRIPTORPOOLTEST1_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.DescriptorPoolTest1.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ALPHA', index=0, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BETA', index=1, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=809,
  serialized_end=842,
)
_sym_db.RegisterEnumDescriptor(_DESCRIPTORPOOLTEST1_NESTEDENUM)

_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='LAMBDA', index=0, number=11,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MU', index=1, number=12,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1506,
  serialized_end=1538,
)
_sym_db.RegisterEnumDescriptor(_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM)

_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='IOTA', index=0, number=9,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='KAPPA', index=1, number=10,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1540,
  serialized_end=1573,
)
_sym_db.RegisterEnumDescriptor(_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_NESTEDENUM)

_DESCRIPTORPOOLTEST2_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='google.protobuf.python.internal.DescriptorPoolTest2.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='GAMMA', index=0, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DELTA', index=1, number=4,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1575,
  serialized_end=1609,
)
_sym_db.RegisterEnumDescriptor(_DESCRIPTORPOOLTEST2_NESTEDENUM)


_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE = _descriptor.Descriptor(
  name='DeepNestedMessage',
  full_name='google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nested_enum', full_name='google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=7,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_field', full_name='google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage.nested_field', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("theta").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=565,
  serialized_end=770,
)

_DESCRIPTORPOOLTEST1_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nested_enum', full_name='google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=6,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_field', full_name='google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.nested_field', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("beta").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='deep_nested_message', full_name='google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.deep_nested_message', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE, ],
  enum_types=[
    _DESCRIPTORPOOLTEST1_NESTEDMESSAGE_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=298,
  serialized_end=807,
)

_DESCRIPTORPOOLTEST1 = _descriptor.Descriptor(
  name='DescriptorPoolTest1',
  full_name='google.protobuf.python.internal.DescriptorPoolTest1',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nested_enum', full_name='google.protobuf.python.internal.DescriptorPoolTest1.nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=2,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_message', full_name='google.protobuf.python.internal.DescriptorPoolTest1.nested_message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_DESCRIPTORPOOLTEST1_NESTEDMESSAGE, ],
  enum_types=[
    _DESCRIPTORPOOLTEST1_NESTEDENUM,
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=90,
  serialized_end=853,
)


_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE = _descriptor.Descriptor(
  name='DeepNestedMessage',
  full_name='google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nested_enum', full_name='google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=12,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_field', full_name='google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage.nested_field', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("lambda").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1333,
  serialized_end=1538,
)

_DESCRIPTORPOOLTEST2_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nested_enum', full_name='google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=9,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_field', full_name='google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.nested_field', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("delta").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='deep_nested_message', full_name='google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.deep_nested_message', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE, ],
  enum_types=[
    _DESCRIPTORPOOLTEST2_NESTEDMESSAGE_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1065,
  serialized_end=1573,
)

_DESCRIPTORPOOLTEST2 = _descriptor.Descriptor(
  name='DescriptorPoolTest2',
  full_name='google.protobuf.python.internal.DescriptorPoolTest2',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nested_enum', full_name='google.protobuf.python.internal.DescriptorPoolTest2.nested_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=3,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_message', full_name='google.protobuf.python.internal.DescriptorPoolTest2.nested_message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_DESCRIPTORPOOLTEST2_NESTEDMESSAGE, ],
  enum_types=[
    _DESCRIPTORPOOLTEST2_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=856,
  serialized_end=1609,
)

_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE.fields_by_name['nested_enum'].enum_type = _DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM
_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE.containing_type = _DESCRIPTORPOOLTEST1_NESTEDMESSAGE
_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM.containing_type = _DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE
_DESCRIPTORPOOLTEST1_NESTEDMESSAGE.fields_by_name['nested_enum'].enum_type = _DESCRIPTORPOOLTEST1_NESTEDMESSAGE_NESTEDENUM
_DESCRIPTORPOOLTEST1_NESTEDMESSAGE.fields_by_name['deep_nested_message'].message_type = _DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE
_DESCRIPTORPOOLTEST1_NESTEDMESSAGE.containing_type = _DESCRIPTORPOOLTEST1
_DESCRIPTORPOOLTEST1_NESTEDMESSAGE_NESTEDENUM.containing_type = _DESCRIPTORPOOLTEST1_NESTEDMESSAGE
_DESCRIPTORPOOLTEST1.fields_by_name['nested_enum'].enum_type = _DESCRIPTORPOOLTEST1_NESTEDENUM
_DESCRIPTORPOOLTEST1.fields_by_name['nested_message'].message_type = _DESCRIPTORPOOLTEST1_NESTEDMESSAGE
_DESCRIPTORPOOLTEST1_NESTEDENUM.containing_type = _DESCRIPTORPOOLTEST1
_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE.fields_by_name['nested_enum'].enum_type = _DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM
_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE.containing_type = _DESCRIPTORPOOLTEST2_NESTEDMESSAGE
_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUM.containing_type = _DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE
_DESCRIPTORPOOLTEST2_NESTEDMESSAGE.fields_by_name['nested_enum'].enum_type = _DESCRIPTORPOOLTEST2_NESTEDMESSAGE_NESTEDENUM
_DESCRIPTORPOOLTEST2_NESTEDMESSAGE.fields_by_name['deep_nested_message'].message_type = _DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE
_DESCRIPTORPOOLTEST2_NESTEDMESSAGE.containing_type = _DESCRIPTORPOOLTEST2
_DESCRIPTORPOOLTEST2_NESTEDMESSAGE_NESTEDENUM.containing_type = _DESCRIPTORPOOLTEST2_NESTEDMESSAGE
_DESCRIPTORPOOLTEST2.fields_by_name['nested_enum'].enum_type = _DESCRIPTORPOOLTEST2_NESTEDENUM
_DESCRIPTORPOOLTEST2.fields_by_name['nested_message'].message_type = _DESCRIPTORPOOLTEST2_NESTEDMESSAGE
_DESCRIPTORPOOLTEST2_NESTEDENUM.containing_type = _DESCRIPTORPOOLTEST2
DESCRIPTOR.message_types_by_name['DescriptorPoolTest1'] = _DESCRIPTORPOOLTEST1
DESCRIPTOR.message_types_by_name['DescriptorPoolTest2'] = _DESCRIPTORPOOLTEST2
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

DescriptorPoolTest1 = _reflection.GeneratedProtocolMessageType('DescriptorPoolTest1', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(

    DeepNestedMessage = _reflection.GeneratedProtocolMessageType('DeepNestedMessage', (_message.Message,), dict(
      DESCRIPTOR = _DESCRIPTORPOOLTEST1_NESTEDMESSAGE_DEEPNESTEDMESSAGE,
      __module__ = 'google.protobuf.internal.descriptor_pool_test1_pb2'
      # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage.DeepNestedMessage)
      ))
    ,
    DESCRIPTOR = _DESCRIPTORPOOLTEST1_NESTEDMESSAGE,
    __module__ = 'google.protobuf.internal.descriptor_pool_test1_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.DescriptorPoolTest1.NestedMessage)
    ))
  ,
  DESCRIPTOR = _DESCRIPTORPOOLTEST1,
  __module__ = 'google.protobuf.internal.descriptor_pool_test1_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.DescriptorPoolTest1)
  ))
_sym_db.RegisterMessage(DescriptorPoolTest1)
_sym_db.RegisterMessage(DescriptorPoolTest1.NestedMessage)
_sym_db.RegisterMessage(DescriptorPoolTest1.NestedMessage.DeepNestedMessage)

DescriptorPoolTest2 = _reflection.GeneratedProtocolMessageType('DescriptorPoolTest2', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(

    DeepNestedMessage = _reflection.GeneratedProtocolMessageType('DeepNestedMessage', (_message.Message,), dict(
      DESCRIPTOR = _DESCRIPTORPOOLTEST2_NESTEDMESSAGE_DEEPNESTEDMESSAGE,
      __module__ = 'google.protobuf.internal.descriptor_pool_test1_pb2'
      # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage.DeepNestedMessage)
      ))
    ,
    DESCRIPTOR = _DESCRIPTORPOOLTEST2_NESTEDMESSAGE,
    __module__ = 'google.protobuf.internal.descriptor_pool_test1_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.DescriptorPoolTest2.NestedMessage)
    ))
  ,
  DESCRIPTOR = _DESCRIPTORPOOLTEST2,
  __module__ = 'google.protobuf.internal.descriptor_pool_test1_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.DescriptorPoolTest2)
  ))
_sym_db.RegisterMessage(DescriptorPoolTest2)
_sym_db.RegisterMessage(DescriptorPoolTest2.NestedMessage)
_sym_db.RegisterMessage(DescriptorPoolTest2.NestedMessage.DeepNestedMessage)


# @@protoc_insertion_point(module_scope)
PK�\D@	+	++protobuf/internal/packed_field_test_pb2.pycnu�[����
���hc;@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedejdddddddddd�ejdddddddddd�ejdd dd!dd!dddd�gd"dddd#d$d%d&�	Zeje�ejdd'dd(ddded"dd)ejdd*dd+dddddd,d-dd.dd/ed0gd1dd2dd"dd3ed4dddde�ejdd5dd6dddd!ddd-d!d.dd/ed0gd1dd2dd"dd3ed4dddde�ejdd7dd8dd!dddd9d-dd.dd/ed0gd1dd2dd"dd3ed4dddde�ejdd:dd;dddd<dd<d-d<d.dd/ed0gd1dd2dd"dd3ed4dddde�ejdd=dd>dd<dd,dd?d-dd.dd/ed0gd1dd2dd"dd3ed4dddde�ejdd@ddAdd,ddBddCd-d!d.dd/ed0gd1dd2dd"dd3ed4dddde�ejddDddEddBddFddFd-dd.dd/ed0gd1dd2dd"dd3ed4dddde�ejddGddHddFddIddBd-d<d.dd/ed0gd1dd2dd"dd3ed4dddde�ejddJddKddIddLddMd-dd.dd/ed0gd1dd2dd"dd3ed4dddde�ejddNddOddLddPddQd-d!d.dd/ed0gd1dd2dd"dd3ed4dddde�ejddRddSddPddTdd!d-dBd.dd/ed0gd1dd2dd"dd3ed4dddde�ejddUddVddTddWddd-d,d.dd/ed0gd1dd2dd"dd3ed4dddde�ejddXddYddWdd9ddId-dFd.dd/ed0gd1dd2dd"dd3ed4dddde�ejddZdd[dd9dd\dd\d-dId.dd/ed0gd1dd2dd"dd3ed4dddde�gd]gd^gd_egddd`edddagdbgd#dcd%d&�Zejdddddeddded"dd)ejdd*ddfdddddd,d-dd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejdd5ddhdddd!ddd-d!d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejdd7ddidd!dddd9d-dd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejdd:ddjdddd<dd<d-d<d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejdd=ddkdd<dd,dd?d-dd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejdd@ddldd,ddBddCd-d!d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddDddmddBddFddFd-dd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddGddnddFddIddBd-d<d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddJddoddIddLddMd-dd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddNddpddLddPddQd-d!d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddRddqddPddTdd!d-dBd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddUddrddTddWddd-d,d.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddXddsddWdd9ddId-dFd.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�ejddZddtdd9dd\dd\d-dId.dd/ed0gd1dd2dd"dd3ed4ddejej�edg��de�gd]gd^gd_gddd`edddagdbgd#dud%dv�ZeejdZ_ee_eejdZ_eej d'<eej dd<ej!e�e	j"d'ej#fe$dwedxdy��Z%ej&e%�e	j"ddej#fe$dwedxdy��Z'ej&e'�e(ejd*_)ejej�edg��ejd*_*e(ejd5_)ejej�edg��ejd5_*e(ejd7_)ejej�edg��ejd7_*e(ejd:_)ejej�edg��ejd:_*e(ejd=_)ejej�edg��ejd=_*e(ejd@_)ejej�edg��ejd@_*e(ejdD_)ejej�edg��ejdD_*e(ejdG_)ejej�edg��ejdG_*e(ejdJ_)ejej�edg��ejdJ_*e(ejdN_)ejej�edg��ejdN_*e(ejdR_)ejej�edg��ejdR_*e(ejdU_)ejej�edg��ejdU_*e(ejdX_)ejej�edg��ejdX_*e(ejdZ_)ejej�edg��ejdZ_*dS(zi����NiicCs|S(N((tx((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/packed_field_test_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/packed_field_test_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames0google/protobuf/internal/packed_field_test.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto3t
serialized_pbs(
0google/protobuf/internal/packed_field_test.protogoogle.protobuf.python.internal"�
TestPackedTypes
repeated_int32 (
repeated_int64 (
repeated_uint32 (

repeated_uint64 (
repeated_sint32 (
repeated_sint64 (
repeated_fixed32 (
repeated_fixed64 (
repeated_sfixed32	 (
repeated_sfixed64
 (
repeated_float (
repeated_double (

repeated_bool
 (Y
repeated_nested_enum (2;.google.protobuf.python.internal.TestPackedTypes.NestedEnum"'

NestedEnum
FOO
BAR
BAZ"�
TestUnpackedTypes
repeated_int32 (B
repeated_int64 (B
repeated_uint32 (
B
repeated_uint64 (B
repeated_sint32 (B
repeated_sint64 (B
repeated_fixed32 (B
repeated_fixed64 (B
repeated_sfixed32	 (B
repeated_sfixed64
 (B
repeated_float (B
repeated_double (B

repeated_bool
 (B]
repeated_nested_enum (2;.google.protobuf.python.internal.TestPackedTypes.NestedEnumBbproto3t
NestedEnumt	full_names:google.protobuf.python.internal.TestPackedTypes.NestedEnumtfilenametfiletvaluestFOOtindextnumbertoptionsttypetBARitBAZitcontaining_typetserialized_starti
tserialized_endi1tTestPackedTypess/google.protobuf.python.internal.TestPackedTypestfieldstrepeated_int32s>google.protobuf.python.internal.TestPackedTypes.repeated_int32itcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetrepeated_int64s>google.protobuf.python.internal.TestPackedTypes.repeated_int64trepeated_uint32s?google.protobuf.python.internal.TestPackedTypes.repeated_uint32i
trepeated_uint64s?google.protobuf.python.internal.TestPackedTypes.repeated_uint64itrepeated_sint32s?google.protobuf.python.internal.TestPackedTypes.repeated_sint32itrepeated_sint64s?google.protobuf.python.internal.TestPackedTypes.repeated_sint64iitrepeated_fixed32s@google.protobuf.python.internal.TestPackedTypes.repeated_fixed32itrepeated_fixed64s@google.protobuf.python.internal.TestPackedTypes.repeated_fixed64itrepeated_sfixed32sAgoogle.protobuf.python.internal.TestPackedTypes.repeated_sfixed32i	itrepeated_sfixed64sAgoogle.protobuf.python.internal.TestPackedTypes.repeated_sfixed64i
itrepeated_floats>google.protobuf.python.internal.TestPackedTypes.repeated_floatitrepeated_doubles?google.protobuf.python.internal.TestPackedTypes.repeated_doubleit
repeated_bools=google.protobuf.python.internal.TestPackedTypes.repeated_booltrepeated_nested_enumsDgoogle.protobuf.python.internal.TestPackedTypes.repeated_nested_enumit
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsiVtTestUnpackedTypess1google.protobuf.python.internal.TestUnpackedTypess@google.protobuf.python.internal.TestUnpackedTypes.repeated_int32ss@google.protobuf.python.internal.TestUnpackedTypes.repeated_int64sAgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_uint32sAgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_uint64sAgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_sint32sAgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_sint64sBgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_fixed32sBgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_fixed64sCgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_sfixed32sCgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_sfixed64s@google.protobuf.python.internal.TestUnpackedTypes.repeated_floatsAgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_doubles?google.protobuf.python.internal.TestUnpackedTypes.repeated_boolsFgoogle.protobuf.python.internal.TestUnpackedTypes.repeated_nested_enumi4i t
DESCRIPTORt
__module__s.google.protobuf.internal.packed_field_test_pb2(+tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR=tEnumDescriptortNonetEnumValueDescriptort_TESTPACKEDTYPES_NESTEDENUMtRegisterEnumDescriptort
DescriptortFieldDescriptortFalset_TESTPACKEDTYPESt
_ParseOptionstFieldOptionst_TESTUNPACKEDTYPEStfields_by_nameR&Rtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR<tTruethas_optionst_options(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/packed_field_test_pb2.pyt<module>s`%						
																			$	$	$	$	$	$	$	$	$	$	$	$	$	*		




(((((((((((((PK�\��y"

3protobuf/internal/import_test_package/inner_pb2.pyonu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!dd"dd#ed$d%d&dd'dddd(ed)dd*dde�gd+gd,gd-gd*dd.eddd/gd0gd1d2d3d4�Zeejd<eje�e	jdejfed5ed6d7��Zeje�dS(8i����NiicCs|S(N((tx((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/inner_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/inner_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames8google/protobuf/internal/import_test_package/inner.prototpackages3google.protobuf.python.internal.import_test_packagetsyntaxtproto2t
serialized_pbs�
8google/protobuf/internal/import_test_package/inner.proto3google.protobuf.python.internal.import_test_package"
Inner
value (:57tInnert	full_names9google.protobuf.python.internal.import_test_package.Innertfilenametfiletcontaining_typetfieldstvalues?google.protobuf.python.internal.import_test_package.Inner.valuetindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuei9tmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiqtserialized_endi�t
DESCRIPTORt
__module__s6google.protobuf.internal.import_test_package.inner_pb2(tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR*t
DescriptortNonetFieldDescriptortTruetFalset_INNERtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessage(((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/inner_pb2.pyt<module>sR%				

PK�\A�}�
�
2protobuf/internal/import_test_package/outer_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/import_test_package/outer.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf.internal.import_test_package import inner_pb2 as google_dot_protobuf_dot_internal_dot_import__test__package_dot_inner__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/import_test_package/outer.proto',
  package='google.protobuf.python.internal.import_test_package',
  syntax='proto2',
  serialized_pb=_b('\n8google/protobuf/internal/import_test_package/outer.proto\x12\x33google.protobuf.python.internal.import_test_package\x1a\x38google/protobuf/internal/import_test_package/inner.proto\"R\n\x05Outer\x12I\n\x05inner\x18\x01 \x01(\x0b\x32:.google.protobuf.python.internal.import_test_package.Inner')
  ,
  dependencies=[google_dot_protobuf_dot_internal_dot_import__test__package_dot_inner__pb2.DESCRIPTOR,])




_OUTER = _descriptor.Descriptor(
  name='Outer',
  full_name='google.protobuf.python.internal.import_test_package.Outer',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='inner', full_name='google.protobuf.python.internal.import_test_package.Outer.inner', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=171,
  serialized_end=253,
)

_OUTER.fields_by_name['inner'].message_type = google_dot_protobuf_dot_internal_dot_import__test__package_dot_inner__pb2._INNER
DESCRIPTOR.message_types_by_name['Outer'] = _OUTER
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Outer = _reflection.GeneratedProtocolMessageType('Outer', (_message.Message,), dict(
  DESCRIPTOR = _OUTER,
  __module__ = 'google.protobuf.internal.import_test_package.outer_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.import_test_package.Outer)
  ))
_sym_db.RegisterMessage(Outer)


# @@protoc_insertion_point(module_scope)
PK�\�،���1protobuf/internal/import_test_package/__init__.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Sample module importing a nested proto from itself."""

from google.protobuf.internal.import_test_package import outer_pb2 as myproto
PK�\�����2protobuf/internal/import_test_package/inner_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/import_test_package/inner.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/import_test_package/inner.proto',
  package='google.protobuf.python.internal.import_test_package',
  syntax='proto2',
  serialized_pb=_b('\n8google/protobuf/internal/import_test_package/inner.proto\x12\x33google.protobuf.python.internal.import_test_package\"\x1a\n\x05Inner\x12\x11\n\x05value\x18\x01 \x01(\x05:\x02\x35\x37')
)




_INNER = _descriptor.Descriptor(
  name='Inner',
  full_name='google.protobuf.python.internal.import_test_package.Inner',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.python.internal.import_test_package.Inner.value', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=True, default_value=57,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=113,
  serialized_end=139,
)

DESCRIPTOR.message_types_by_name['Inner'] = _INNER
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Inner = _reflection.GeneratedProtocolMessageType('Inner', (_message.Message,), dict(
  DESCRIPTOR = _INNER,
  __module__ = 'google.protobuf.internal.import_test_package.inner_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.import_test_package.Inner)
  ))
_sym_db.RegisterMessage(Inner)


# @@protoc_insertion_point(module_scope)
PK�\��y"

3protobuf/internal/import_test_package/inner_pb2.pycnu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!dd"dd#ed$d%d&dd'dddd(ed)dd*dde�gd+gd,gd-gd*dd.eddd/gd0gd1d2d3d4�Zeejd<eje�e	jdejfed5ed6d7��Zeje�dS(8i����NiicCs|S(N((tx((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/inner_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/inner_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames8google/protobuf/internal/import_test_package/inner.prototpackages3google.protobuf.python.internal.import_test_packagetsyntaxtproto2t
serialized_pbs�
8google/protobuf/internal/import_test_package/inner.proto3google.protobuf.python.internal.import_test_package"
Inner
value (:57tInnert	full_names9google.protobuf.python.internal.import_test_package.Innertfilenametfiletcontaining_typetfieldstvalues?google.protobuf.python.internal.import_test_package.Inner.valuetindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuei9tmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiqtserialized_endi�t
DESCRIPTORt
__module__s6google.protobuf.internal.import_test_package.inner_pb2(tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR*t
DescriptortNonetFieldDescriptortTruetFalset_INNERtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessage(((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/inner_pb2.pyt<module>sR%				

PK�\z�J�ff2protobuf/internal/import_test_package/__init__.pyonu�[����
���hc@sdZddlmZdS(s3Sample module importing a nested proto from itself.i����(t	outer_pb2N(t__doc__t,google.protobuf.internal.import_test_packageRtmyproto(((sY/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/__init__.pyt<module>sPK�\�#�\��3protobuf/internal/import_test_package/outer_pb2.pyonu�[����
���hc-@sddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�Zejdddddddedddejdddddddd d!d"d#d$d%d d&ed'dd(dd)dddd*ed+dd,dde�gd-gd.gd/gd,dd0eddd1gd2gd3d4d5d6�Zejejd_eejd<eje�e	jdejfe d7ed8d9��Z!ej"e!�dS(:i����NiicCs|S(N((tx((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/outer_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/outer_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(t	inner_pb2tnames8google/protobuf/internal/import_test_package/outer.prototpackages3google.protobuf.python.internal.import_test_packagetsyntaxtproto2t
serialized_pbs�
8google/protobuf/internal/import_test_package/outer.proto3google.protobuf.python.internal.import_test_package8google/protobuf/internal/import_test_package/inner.proto"R
OuterI
inner (2:.google.protobuf.python.internal.import_test_package.InnertdependenciestOutert	full_names9google.protobuf.python.internal.import_test_package.Outertfilenametfiletcontaining_typetfieldstinners?google.protobuf.python.internal.import_test_package.Outer.innertindextnumberittypeitcpp_typei
tlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti�tserialized_endi�t
DESCRIPTORt
__module__s6google.protobuf.internal.import_test_package.outer_pb2(#tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbt,google.protobuf.internal.import_test_packageR
tIgoogle_dot_protobuf_dot_internal_dot_import__test__package_dot_inner__pb2tFileDescriptorR,t
DescriptortNonetFieldDescriptortFalset_OUTERt_INNERtfields_by_nameRtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessage(((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/outer_pb2.pyt<module>sX%				

PK�\z�J�ff2protobuf/internal/import_test_package/__init__.pycnu�[����
���hc@sdZddlmZdS(s3Sample module importing a nested proto from itself.i����(t	outer_pb2N(t__doc__t,google.protobuf.internal.import_test_packageRtmyproto(((sY/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/__init__.pyt<module>sPK�\�#�\��3protobuf/internal/import_test_package/outer_pb2.pycnu�[����
���hc-@sddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�Zejdddddddedddejdddddddd d!d"d#d$d%d d&ed'dd(dd)dddd*ed+dd,dde�gd-gd.gd/gd,dd0eddd1gd2gd3d4d5d6�Zejejd_eejd<eje�e	jdejfe d7ed8d9��Z!ej"e!�dS(:i����NiicCs|S(N((tx((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/outer_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/outer_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(t	inner_pb2tnames8google/protobuf/internal/import_test_package/outer.prototpackages3google.protobuf.python.internal.import_test_packagetsyntaxtproto2t
serialized_pbs�
8google/protobuf/internal/import_test_package/outer.proto3google.protobuf.python.internal.import_test_package8google/protobuf/internal/import_test_package/inner.proto"R
OuterI
inner (2:.google.protobuf.python.internal.import_test_package.InnertdependenciestOutert	full_names9google.protobuf.python.internal.import_test_package.Outertfilenametfiletcontaining_typetfieldstinners?google.protobuf.python.internal.import_test_package.Outer.innertindextnumberittypeitcpp_typei
tlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti�tserialized_endi�t
DESCRIPTORt
__module__s6google.protobuf.internal.import_test_package.outer_pb2(#tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbt,google.protobuf.internal.import_test_packageR
tIgoogle_dot_protobuf_dot_internal_dot_import__test__package_dot_inner__pb2tFileDescriptorR,t
DescriptortNonetFieldDescriptortFalset_OUTERt_INNERtfields_by_nameRtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessage(((sZ/usr/lib/python2.7/site-packages/google/protobuf/internal/import_test_package/outer_pb2.pyt<module>sX%				

PK�\/�����&protobuf/internal/text_format_test.pycnu�[����
���hc@s)dZdZddlZddlZddlZddlZyddlZWnek
rkddlZnXddl	m
Z
ddlmZddlm
Z
ddlmZddlmZdd	lmZdd
l	mZddl	mZddl	mZddl	mZdd
lmZddlmZdejfd��YZdejfd��YZe
jee�defd��Y�Zdefd��YZdefd��YZdejfd��YZdejfd��YZe
jee�defd��Y�Z e!dkr%ej"�ndS( s%Test for google.protobuf.text_format.s kenton@google.com (Kenton Varda)i����N(t_parameterized(tany_test_pb2(tmap_unittest_pb2(tunittest_mset_pb2(tunittest_pb2(tunittest_proto3_arena_pb2(tapi_implementation(tmessage_set_extensions_pb2(t	test_util(tdescriptor_pool(ttext_formattSimpleTextFormatTestscBseZd�ZRS(cCs.x'tjD]}|jdt|��q
WdS(Ni(R
t_QUOTEStassertEqualtlen(tselftquote((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestQuoteMarksAreSingleCharsFs(t__name__t
__module__R(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR@stTextFormatBasecBs,eZd�Zd�Zd�Zd�ZRS(cCsRtj|��=}ttkr(|j�Sg|D]}|jd�^q/SWdQXdS(Nsutf-8(Rt
GoldenFiletstrtbytest	readlinestdecode(Rtgolden_filenametftgolden_line((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt
ReadGoldenNscCs,|j|�}|j|dj|��dS(Nt(RtassertMultiLineEqualtjoin(RttextRtgolden_lines((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pytCompareToGoldenFileSscCs|j||�dS(N(R
(RR!tgolden_text((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pytCompareToGoldenTextWscCs[|jdd�jdd�jdd�jdd�}tjdtj�jd|�}|S(Nse+0se+se-0se-s\.0$R(treplacetretcompilet	MULTILINEtsub(RR!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pytRemoveRedundantZerosZs!(RRRR#R%R+(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRLs			tTextFormatTestcBseZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs�|j�}|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|j|jtj	|��d�dS(	Nl����l����gw��/�^@g�t�QFքDg��‚�6<s

	\'"uüꜟs�repeated_int64: -9223372036854775808
repeated_uint64: 18446744073709551615
repeated_double: 123.456
repeated_double: 1.23e+22
repeated_double: 1.23e-18
repeated_string: "\000\001\007\010\014\n\r\t\013\\\'\""
repeated_string: "\303\274\352\234\237"
(
tTestAllTypestrepeated_int64tappendtrepeated_uint64trepeated_doubletrepeated_stringR%R+R
tMessageToString(Rtmessage_moduletmessage((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintExotichscCsXdtjfd��Y}|j�}|jj|d��|jtj|�d�dS(Nt
UnicodeSubcBseZRS((RR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR7~suüꜟs(repeated_string: "\303\274\352\234\237"
(tsixt	text_typeR-R2R/R%R
R3(RR4R7R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintExoticUnicodeSubclass|scCsG|j�}|jj�}d|_|jtj|dt�d�dS(Ni*tas_one_lines"repeated_nested_message { bb: 42 }(R-trepeated_nested_messagetaddtbbR%R
R3tTrue(RR4R5tmsg((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintNestedMessageAsOneLine�s	cCs|j�}|jjd�|jjd�|jjd�|jjd�|jjd�|jtj|dt�d�dS(NiitGoogletZurichR;sirepeated_int32: 1 repeated_int32: 1 repeated_int32: 3 repeated_string: "Google" repeated_string: "Zurich"(R-trepeated_int32R/R2R%R
R3R?(RR4R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt testPrintRepeatedFieldsAsOneLine�scCs8|j�}d|_|jtj|dt�d�dS(Ns
a
new
lineR;soptional_string: "a\nnew\nline"(R-toptional_stringR%R
R3R?(RR4R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt'testPrintNestedNewLineInStringAsOneLine�s
	cCs�|j�}|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|j|jtj	|dt
��d	�dS(
Nl����l����gw��/�^@g�t�QFքDg��‚�6<s

	\'"uüꜟR;s�repeated_int64: -9223372036854775808 repeated_uint64: 18446744073709551615 repeated_double: 123.456 repeated_double: 1.23e+22 repeated_double: 1.23e-18 repeated_string: "\000\001\007\010\014\n\r\t\013\\\'\"" repeated_string: "\303\274\352\234\237"(R-R.R/R0R1R2R%R+R
R3R?(RR4R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintExoticAsOneLine�scCs?|j�}|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�tj|dtd	t	�}|j�}tj
||�}|j||�|j||�tj|dtd	t�}|j�}tj
||�}|j||�|j||d
||f�dS(Nl����l����gw��/�^@g�t�QFքDg��‚�6<s

	\'"uüꜟR;tas_utf8s	
%s != %s(
R-R.R/R0R1R2R
R3R?tFalsetParsetassertIsR
(RR4R5t	wire_texttparsed_messagetr((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestRoundTripExoticAsOneLine�s.		cCs~|j�}|jjd�tj|dt�}|j|d�|j�}tj||�|j||d||f�dS(NuüꜟRIsrepeated_string: "üꜟ"
s	
%s != %s(	R-R2R/R
R3R?R%RKR
(RR4R5R!RN((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintRawUtf8String�scCs�|j�}d|j_d|j_|jjjd�|jjjd�ddddg}tj|d	d
�}|j	|j
|�dj|��tj|dtd	d
�}|j	|j
|�d
j|��dS(Ng�?g�/_�e�̾i��g⹭�?soptional_float: 1.25s%optional_double: -3.45678901234568e-6srepeated_float: -5642srepeated_double: 7.89e-5tfloat_formats.15gs&payload {{
  {0}
  {1}
  {2}
  {3}
}}
R;spayload {{ {0} {1} {2} {3} }}(
tNestedTestAllTypestpayloadtoptional_floattoptional_doubletrepeated_floatR/R1R
R3R%R+tformatR?(RR4R5tformatted_fieldsttext_message((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintFloatFormat�s&
	cCs/|j�}d|_|jdt|��dS(Ni{sc: 123
(tForeignMessagetcR
R(RR4R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMessageToString�s	cCs�|j�}|jjd}|j}tjt�}tj|||�|jd|j	��|j
�tjt�}tj|�}|j||�|jd|j	��|j
�dS(NRUsoptional_float: 0.0
(R-t
DESCRIPTORtfields_by_nameRUR
t
TextWriterRJt
PrintFieldR
tgetvaluetcloset_Printer(RR4R5tfieldtvaluetouttprinter((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintFields	
cCs�|j�}|jjd}|j}tjt�}tj|||�|jd|j	��|j
�tjt�}tj|�}|j||�|jd|j	��|j
�dS(NRUs0.0(R-R_R`RUR
RaRJtPrintFieldValueR
RcRdRe(RR4R5RfRgRhRi((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintFieldValues	
cCsw|j�}tj|�tj|�}|j�}tj||�|j||�|tkrstj||�ndS(N(	R-RtSetAllFieldsR
R3RKR
RtExpectAllFieldsSet(RR4R5t
ascii_textRN((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseAllFields"s
cCs=|j�}tj|�tj|�}|jd�}|j�}tj||�|j||�|tkr�tj	||�n|j
�tj||�|j||�|tkr�tj	||�ntj
r9|j�}d}tj||�|j|jd�|j
�tj||�|j|jd�ndS(Nsutf-8uoptional_string: "café"ucafé(R-RRmR
R3tencodeRKR
RRntCleartMergeR8tPY2RF(RR4R5RoRNtmsg2R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseAndMergeUtf8-s,

	
cCs�|j�}d}tj||�|jd|jd�|jd|jd�|jd|jd�|jd|jd�|jd|jd	�|jd
|jd�|jd|jd�|jd|jd	�|jd
|jd�dS(NsSrepeated_int64: -9223372036854775808
repeated_uint64: 18446744073709551615
repeated_double: 123.456
repeated_double: 1.23e+22
repeated_double: 1.23e-18
repeated_string: 
"\000\001\007\010\014\n\r\t\013\\\'\""
repeated_string: "foo" 'corge' "grault"
repeated_string: "\303\274\352\234\237"
repeated_string: "\xc3\xbc"
repeated_string: "ü"
l����il����gw��/�^@g�t�QFքDig��‚�6<is

	\'"tfoocorgegraultuüꜟuüi(R-R
RKR
R.R0R1R2(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseExoticHscCs�|j�}d}tj||�|jd|jd�|jd|jd�|jd|jd�|jd|jd�|jd	|jd�dS(
Nsorepeated_int64: 100;
repeated_int64: 200;
repeated_int64: 300,
repeated_string: "one",
repeated_string: "two";
idii�ii,iuoneutwo(R-R
RKR
R.R2(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseTrailingCommasascCs�|j�}d}tj||�|jd|jd�|jd|jd�|jd|jd�|jd|jd�|jd	|jd�dS(
NsRrepeated_int64: [100, 200];
repeated_int64: 300,
repeated_string: ["one", "two"];
idii�ii,iuoneutwo(R-R
RKR
R.R2(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testParseRepeatedScalarShortFormatpscCs�|j�}d}tj||�|jd|jdj�|jd|jdj�|jd|jdj�|jd|jd	j�dS(
Nsyrepeated_nested_message: [{bb: 100}, {bb: 200}],
repeated_nested_message: {bb: 300}
repeated_nested_message [{bb: 400}];
idii�ii,ii�i(R-R
RKR
R<R>(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt#testParseRepeatedMessageShortFormat}scCs<|j�}d}tj||�|j|j�|�dS(NR(R-R
RKR
(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseEmptyText�scCss|j�}d}|jtj��}tj||�WdQX|j|jj�d�|j|jj�d�dS(Nsrepeated_string: "\xc3\xc3"ii(	R-tassertRaisesR
t
ParseErrorRKR
t	exceptiontGetLinet	GetColumn(RR4R5R!te((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseInvalidUtf8�scCs8|j�}d}tj|tjdtj||�dS(Ntfoos?1:1 : Message type "\w+.TestAllTypes" has no field named "foo".(R-R8tassertRaisesRegexR
R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseSingleWord�s
cCs8|j�}d}tj|tjdtj||�dS(Nsunknown_field: 8
sI1:1 : Message type "\w+.TestAllTypes" has no field named "unknown_field".(R-R8R�R
R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseUnknownField�s
cCs8|j�}d}tj|tjdtj||�dS(Nsoptional_nested_enum: BARRsG1:23 : Enum type "\w+.TestAllTypes.NestedEnum" has no value named BARR.(R-R8R�R
R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadEnumValue�scCs8|j�}d}tj|tjdtj||�dS(Nsoptional_int32: borks#1:17 : Couldn't parse integer: bork(R-R8R�R
R~RK(RR4R5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadIntValue�s
cCs�|j�}d}tj||�d}|jd|jd�|j|d|d|jd�|j|d|d	|jd
�|j||d||d|jd�|j||d||d	|jd�|j|d
|jd�dS(Nsrepeated_string: "\xf\x62"
               repeated_string: "\\xf\\x62"
               repeated_string: "\\\xf\\\x62"
               repeated_string: "\\\\xf\\\\x62"
               repeated_string: "\\\\\xf\\\\\x62"
               repeated_string: "\x5cx20"s\sbitxftx62istbiiitx20i(R-R
RKR
R2(RR4R5R!tSLASH((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseStringFieldUnescape�s##cCsK|j�}d}tj||�}|j||�|jd|j�dS(Ns%optional_int32: 42 optional_int32: 67iC(R-R
RsRLR
toptional_int32(RR4R5R!RO((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeDuplicateScalars�s
cCsQ|j�}d}tj||�}|j||k�|jd|jj�dS(NsCoptional_nested_message { bb: 1 } optional_nested_message { bb: 2 }i(R-R
Rst
assertTrueR
toptional_nested_messageR>(RR4R5R!RO((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt&testMergeDuplicateNestedMessageScalars�s
cCsW|j�}d|_|j�}tjtj|�|�|jd|jd��dS(Nitoneof_uint32toneof_field(R-R�R
RKR3R
t
WhichOneof(RR4tmtm2((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseOneof�s
	cCsNdjddg�}|j�}tj||�|jd|jd��dS(Ns
soneof_uint32: 11soneof_string: "foo"toneof_stringR�(R R-R
RsR
R�(RR4tm_stringR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeMultipleOneof�scCsQdjddg�}|j�}|jtjd��tj||�WdQXdS(Ns
soneof_uint32: 11soneof_string: "foo"s is specified along with field (R R-tassertRaisesRegexpR
R~RK(RR4R�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMultipleOneof�s

( RRR6R:RARERGRHRPRQR[R^RjRlRpRvRxRyRzR{R|R�R�R�R�R�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR,es<								
	!								
												t OnlyWorksWithProto2RightNowTestscBsPeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(cCsEtj�}tj|�|j|jtj|dt��d�dS(Ntpointy_bracketss*text_format_unittest_data_pointy_oneof.txt(	RR-RRmR#R+R
R3R?(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllFieldsPointy�s
cCssdj|jd��}tj�}tj||�}|j||�tj�}tj|�|j	||�dS(Ns
s/text_format_unittest_data_oneof_implemented.txt(
R RRR-R
RKRLRRmR
(RR$RNROR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseGolden�s
cCs?tj�}tj|�|j|jtj|��d�dS(Ns/text_format_unittest_data_oneof_implemented.txt(RR-RRmR#R+R
R3(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllFieldss

cCs�tj�}d|_d|_d|_d|j_d|j_|j|j	t
j|dt��d�|j|j	t
j|��d�dS(	Nt115ieioiituse_index_ordersWmy_string: "115"
my_int: 101
my_float: 111
optional_nested_message {
  oo: 0
  bb: 1
}
sWmy_int: 101
my_string: "115"
my_float: 111
optional_nested_message {
  bb: 1
  oo: 0
}
(
RtTestFieldOrderingst	my_stringtmy_inttmy_floatR�tooR>R%R+R
R3R?(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintInIndexOrders			cCsj|jd�}tj�}tj||�}|j||�tj�}tj|�|j||�dS(Ns/text_format_unittest_data_oneof_implemented.txt(	RRR-R
t
MergeLinesRLRRmR
(RtopenedRNROR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeLinesGoldens
cCsj|jd�}tj�}tj||�}|j||�tj�}tj|�|j||�dS(Ns/text_format_unittest_data_oneof_implemented.txt(	RRR-R
t
ParseLinesRLRRmR
(RR�RNROR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseLinesGolden's
cCsztj�}d|jd<d|jd<d|jd<d|jd<d|jd	<d
|jd_|j	t
j|�d�dS(Ni8���i����ii"i!i�i{t123tabciiosHmap_int32_int32 {
  key: -123
  value: -456
}
map_int64_int64 {
  key: -8589934592
  value: -17179869184
}
map_uint32_uint32 {
  key: 123
  value: 456
}
map_uint64_uint64 {
  key: 8589934592
  value: 17179869184
}
map_string_string {
  key: "abc"
  value: "123"
}
map_int32_foreign_message {
  key: 111
  value {
    c: 5
  }
}
ll����ll����ll(RtTestMaptmap_int32_int32tmap_int64_int64tmap_uint32_uint32tmap_uint64_uint64tmap_string_stringtmap_int32_foreign_messageR]R%R
R3(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMap1s




cCs�tj�}x%tjdd!D]}d|j|<qWx+ttjdd!�D]}d|j|<qKWdjd�tjD��}|jtj	|�|�dS(Ni
itdummyiRcss|]}d|fVqdS(s3map_string_string {
  key: "%c"
  value: "dummy"
}
N((t.0tletter((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pys	<genexpr>_s(
RR�tstringtascii_uppercaseR�treversedR R%R
R3(RR5R�tgolden((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMapOrderEnforcementYs(
RRR�R�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR��s					
	
	(tProto2TestscBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs�tj�}tjj}tjj}d|jj|_d|jj|_|j	t
j|�d�tj
�}tj}d|j|_|j	t
j|�d�dS(NiR�s�message_set {
  [protobuf_unittest.TestMessageSetExtension1] {
    i: 23
  }
  [protobuf_unittest.TestMessageSetExtension2] {
    str: "foo"
  }
}
tbarsF[google.protobuf.internal.TestMessageSetExtension3] {
  text: "bar"
}
(RtTestMessageSetContainertTestMessageSetExtension1tmessage_set_extensiontTestMessageSetExtension2tmessage_sett
ExtensionstiRR%R
R3RtTestMessageSettmessage_set_extension3R!(RR5text1text2text((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMessageSetvs		cCs�tjt�}tj�}tjj}tjj}d|jj	|_
d|jj	|_tj||dt
�|j|j�d�|j�dS(NiR�tuse_field_numbers?1 {
  1545008 {
    15: 23
  }
  1547769 {
    25: "foo"
  }
}
(R
RaRJRR�R�R�R�R�R�R�RtPrintMessageR?R%RcRd(RRhR5R�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt testPrintMessageSetByFieldNumber�scCsmtj�}tjj}tjj}d|jj|_d|jj|_|j	t
j|dt�d�dS(NiR�R;s�message_set { [protobuf_unittest.TestMessageSetExtension1] { i: 23 } [protobuf_unittest.TestMessageSetExtension2] { str: "foo" } }(
RR�R�R�R�R�R�R�RR%R
R3R?(RR5R�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMessageSetAsOneLine�scCs�tj�}d}tj||�|jd|jd�|jd|jd�tj�}d}tj||�tjj	}tj
j	}|jd|jj|j
�|jd|jj|j�dS(Ns&repeated_uint64: 1
repeated_uint64: 2
iiis�message_set {
  [protobuf_unittest.TestMessageSetExtension1] {
    i: 23
  }
  [protobuf_unittest.TestMessageSetExtension2] {
    str: "foo"
  }
}
iR�(RR-R
RKR
R0RR�R�R�R�R�R�R�R(RR5R!R�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMessageSet�scCsWtj�}d}tj||dtj��|jtj|dtj��|�dS(Ns�value {
  [type.googleapis.com/google.protobuf.internal.TestAny] {
    [google.protobuf.internal.TestAnyExtension1.extension1] {
      i: 10
    }
  }
}
R	(ttest_extend_anytTestAnyR
RsR	tDefaultR%R3(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestExtensionInsideAnyMessage�sc	Cs6tj�}d}tj||dt�|jd|jd�|jd|jd�tj�}d}tj||dt�tj	j
}tjj
}|jd|jj
|j�|jd|jj
|j�tj�}d	}tj|tjd
tj||�d}tj|tjdtj||dt�dS(
Ns34: 1
repeated_uint64: 2
tallow_field_numberiiis?1 {
  1545008 {
    15: 23
  }
  1547769 {
    25: "foo"
  }
}
iR�s34:1
s>1:1 : Message type "\w+.TestAllTypes" has no field named "34".s1234:1
s@1:1 : Message type "\w+.TestAllTypes" has no field named "1234".(RR-R
RKR?R
R0RR�R�R�R�R�R�R�RR8R�R~(RR5R!R�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMessageByFieldNumber�s4cCs?tj�}tj|�|j|jtj|��d�dS(Ns(text_format_unittest_extensions_data.txt(RtTestAllExtensionsRtSetAllExtensionsR#R+R
R3(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllExtensionss

cCsEtj�}tj|�|j|jtj|dt��d�dS(NR�s/text_format_unittest_extensions_data_pointy.txt(	RR�RR�R#R+R
R3R?(RR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintAllExtensionsPointys
cCsadj|jd��}tj�}tj||�tj�}tj|�|j||�dS(Ns
s(text_format_unittest_extensions_data.txt(	R RRR�R
RKRR�R
(RR$RNR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseGoldenExtensionss
cCsXtj�}tj|�tj|�}tj�}tj||�|j||�dS(N(RR�RR�R
R3RKR
(RR5RoRN((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseAllExtensionss
c	Cs�tj�}d}tj||dt�d}|jtj|�|�tj�}d}tj|tj	dtj||dt�tj�}d}tj|tj	dtj||dt�tj�}d}tj|tj	dtj||dt�tj�}d	}tj|tj	d
tj||dt�tj�}d}tj|tj	dtj||dt�tj�}d
}tj||dt�tj
j}tjj}|j
d|jj|j�|j
d|jj|j�dS(Ns�message_set {
  [unknown_extension] {
    i: 23
    bin: "�"    [nested_unknown_ext]: {
      i: 23
      x: x
      test: "test_string"
      floaty_float: -0.315
      num: -inf
      multiline_str: "abc"
          "def"
          "xyz."
      [nested_unknown_ext.ext]: <
        i: 23
        i: 24
        pointfloat: .3
        test: "test_string"
        floaty_float: -0.315
        num: -inf
        long_string: "test" "test2" 
      >
    }
  }
  [unknown_extension]: 5
}
tallow_unknown_extensionsmessage_set {
}
s3message_set {
  [unknown_extension] {
    i:
  }
}
sInvalid field value: }sGmessage_set {
  [unknown_extension] {
    str: "malformed string
  }
}
sInvalid field value: "sSmessage_set {
  [unknown_extension] {
    str: "malformed
 multiline
 string
  }
}
s7message_set {
  [malformed_extension] <
    i: -5
  
}
s5:1 : Expected ">".s)message_set {
  unknown_field: true
  
}
sb2:3 : Message type "proto2_wireformat_unittest.TestMessageSet" has no field named "unknown_field".s�message_set {
  [protobuf_unittest.TestMessageSetExtension1] {
    i: 23
  }
  [protobuf_unittest.TestMessageSetExtension2] {
    str: "foo"
  }
}
iR�(RR�R
RKR?R%R3R8R�R~R�R�R�R
R�R�R�R(RR5R!R�t	malformedR�R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt testParseAllowedUnknownExtension"sr					cCsZtj�}d}|jtj��}tj||�WdQX|jt|j�d�dS(Ns#optional_nested_message { "bb": 1 }s/1:27 : Expected identifier or number, got "bb".(	RR-R}R
R~RKR
RR(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadIdentifier�scCsftj�}d}tj|tjdtj||�tj�}tj|tjdtj||�dS(Ns[unknown_extension]: 8
s31:2 : Extension "unknown_extension" not registered.sM1:2 : Message type "protobuf_unittest.TestAllTypes" does not have extensions.(RR�R8R�R
R~RKR-(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseBadExtension�scCs8tj�}d}tj|tjdtj||�dS(Nsoptional_nested_enum: 100sL1:23 : Enum type "\w+.TestAllTypes.NestedEnum" has no value with number 100.(RR-R8R�R
R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseNumericUnknownEnum�scCs@tj�}d}tj||�|jd|jtj�dS(Nsa[protobuf_unittest.optional_int32_extension]: 42 [protobuf_unittest.optional_int32_extension]: 67iC(RR�R
RsR
R�toptional_int32_extension(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testMergeDuplicateExtensionScalars�s
	cCs8tj�}d}tj|tjdtj||�dS(Nsa[protobuf_unittest.optional_int32_extension]: 42 [protobuf_unittest.optional_int32_extension]: 67s�1:96 : Message type "protobuf_unittest.TestAllExtensions" should not have multiple "protobuf_unittest.optional_int32_extension" extensions.(RR�R8R�R
R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testParseDuplicateExtensionScalars�s
cCs8tj�}d}tj|tjdtj||�dS(NsCoptional_nested_message { bb: 1 } optional_nested_message { bb: 2 }sh1:65 : Message type "protobuf_unittest.TestAllTypes.NestedMessage" should not have multiple "bb" fields.(RR-R8R�R
R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt&testParseDuplicateNestedMessageScalars�s	cCs8tj�}d}tj|tjdtj||�dS(Ns%optional_int32: 42 optional_int32: 67sf1:36 : Message type "protobuf_unittest.TestAllTypes" should not have multiple "optional_int32" fields.(RR-R8R�R
R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseDuplicateScalars�s	cCs`tj�}d}tj|tjdtj||�d}tj|tjdtj||�dS(NsRepeatedGroup: <s1:16 : Expected ">".sRepeatedGroup: {s1:16 : Expected "}".(RR-R8R�R
R~RK(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseGroupNotClosed�scCs~tj�}d}tj||�|j|jd��|j�tj�}d}tj||�|j|jd��dS(NsOptionalGroup: {}t
optionalgroupsOptionalGroup: <>(RR-R
RKR�tHasFieldRr(RR5R!((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseEmptyGroup�s
cCs�d}tj�}tj||�|jd|jd�|jd|jd�|jd|jd�|jd|jd�|jd	|j	d
�|jd|j
dj�dS(NsHmap_int32_int32 {
  key: -123
  value: -456
}
map_int64_int64 {
  key: -8589934592
  value: -17179869184
}
map_uint32_uint32 {
  key: 123
  value: 456
}
map_uint64_uint64 {
  key: 8589934592
  value: 17179869184
}
map_string_string {
  key: "abc"
  value: "123"
}
map_int32_foreign_message {
  key: 111
  value {
    c: 5
  }
}
i8���i����ii"i!i�i{R�R�iioll����ll����ll(RR�R
RKR
R�R�R�R�R�R�R](RR!R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestParseMap�s(RRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR�ts*						)			
			z					
						tProto3TestscBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZRS(cCsZtj�}d|_tj�}|jj|�|jtj	|dt
j��d�dS(NR�R	s[any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string"
  }
}
(Rt	OneStringtdataRR�t	any_valuetPackR
R
R3R	R�(Rtpacked_messageR5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrintMessageExpandAnys	cCsstj�}tj�}d|_|jj�j|�d|_|jj�j|�|jt	j
|�d�dS(Ntstring0tstring1s�repeated_any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string0"
  }
}
repeated_any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string1"
  }
}
(RR�RR�R�trepeated_any_valueR=R�R
R
R3(RR�R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt!testPrintMessageExpandAnyRepeated(s		cCs`tj�}d|_tj�}|jj|�tj�}|j	t
j|d|�d�dS(NR�R	sdany_value {
  type_url: "type.googleapis.com/protobuf_unittest.OneString"
  value: "\n\006string"
}
(RR�R�RR�R�R�R	tDescriptorPoolR
R
R3(RR�R5t
empty_pool((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt2testPrintMessageExpandAnyDescriptorPoolMissingType<s	cCsTtj�}d|_tj�}|jj|�|jtj	|dt
�d�dS(NR�R�s[any_value <
  [type.googleapis.com/protobuf_unittest.OneString] <
    data: "string"
  >
>
(RR�R�RR�R�R�R
R
R3R?(RR�R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt'testPrintMessageExpandAnyPointyBracketsIs	cCsTtj�}d|_tj�}|jj|�|jtj	|dt
�d�dS(NR�R;sRany_value { [type.googleapis.com/protobuf_unittest.OneString] { data: "string" } }(RR�R�RR�R�R�R
R
R3R?(RR�R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testPrintMessageExpandAnyAsOneLineWs	c	Csftj�}d|_tj�}|jj|�|jtj	|dt
dt
dtj��d�dS(NR�R;R�R	sRany_value < [type.googleapis.com/protobuf_unittest.OneString] < data: "string" > >(
RR�R�RR�R�R�R
R
R3R?R	R�(RR�R5((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt0testPrintMessageExpandAnyAsOneLinePointyBracketsds	cCsWtj�}tj�}d|_tj|�}tj||�|jd|j�dS(Ni�(RR-toptional_nested_enumR
R3RKR
(RR5tmessage2ttext_string((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestUnknownEnumsss	cCs�tj�}d}tj||�tj�}|jj|�|jd|j	�|j
�tj||�tj�}|jj|�|jd|j	�dS(Ns[any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string"
  }
}
R�(RR�R
RsRR�R�tUnpackR
R�RrRK(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeExpandedAny{s
cCs�tj�}d}tj||�tj�}|jdj|�|jd|j	�|jdj|�|jd|j	�dS(Ns�repeated_any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string0"
  }
}
repeated_any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string1"
  }
}
iR�iR�(
RR�R
RsRR�R�R	R
R�(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeExpandedAnyRepeated�s
cCsUtj�}d}tj||�tj�}|jj|�|jd|j	�dS(Ns[any_value {
  [type.googleapis.com/protobuf_unittest.OneString] <
    data: "string"
  >
}
R�(
RR�R
RsRR�R�R	R
R�(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testMergeExpandedAnyPointyBrackets�scCsHtj�}d}tj||�tj�}|jd|jj�dS(NsYany_value {
  [type.otherapi.com/protobuf_unittest.OneString] {
    data: "string"
  }
}
s-type.otherapi.com/protobuf_unittest.OneString(	RR�R
RsRR�R
R�ttype_url(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeAlternativeUrl�s	c	Csltj�}d}|jtj��)}tj�}tj||d|�WdQX|jt	|j
�d�dS(Ns[any_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string"
  }
}
R	s=Type protobuf_unittest.OneString not found in descriptor pool(RR�R}R
R~R	R�RsR
RR(RR5R!R�R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt-testMergeExpandedAnyDescriptorPoolMissingType�scCsUd}tj�}tj||�tj�}|jj|�|jd|j	�dS(Nsdany_value {
  type_url: "type.googleapis.com/protobuf_unittest.OneString"
  value: "\n\006string"
}
R�(
RR�R
RsRR�R�R	R
R�(RR!R5R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeUnexpandedAny�scCsZtj�}d}|jtj��}tj||�WdQX|jt|j�d�dS(NsUany_value {
  [type.googleapis.com/protobuf_unittest.OneString] {
    data: "string"
s3:11 : Expected "}".(	RR�R}R
R~RsR
RR(RR5R!R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestMergeMissingAnyEndToken�s
(RRR�R�RRRRRR
RRRRRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR�s			
		
								t
TokenizerTestcBs}eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�ZRS(
cTCs�d}tj|j��}|jdfd|jdf|jdfd|jdf|jdfd|jdf|jd	fd|jd
f|jdfd|jdf|jd
fd|jdf|jdfd|jdf|jdfdd|jdfd|jtd�f|jdfd|jtd�f|jdfd|jt	f|jdfd|jt
fd|jdfd|jdf|jdfd|jdf|jdfd|jdf|jdfd|jd f|jd!fd|jd"f|jd#fd|jd$f|jd%fd|jt
f|jd&fd|jt	f|jd'fd|jt	f|jd(fd|jt
f|jd)fd|jt
f|jd*fd|jt	f|jd+fd|jtd�f|jd,fd|jtd-�f|jd.fd|jtd/�fgR}d0}x�|j�s�||}t|t
�rg|j}|j||�|j�nat|d1t�r�tj|d1�r�|jtj|d0���n|j|d1|d0��|d17}qWdS(2Ns�identifier1:"string1"
     

identifier2 : 
 
123  
  identifier3 :'string'
identifiER_4 : 1.1e+2 ID5:-0.23 ID6:'aaaa\'bbbb'
ID7 : "aa\"bb"



 ID8: {A:inf B:-inf C:true D:false}
ID9: 22 ID10: -111111111111111111 ID11: -22
ID12: 2222222222222222222 ID13: 1.23456f ID14: 1.2e+2f false_bool:  0 true_BOOL:t 
 true_bool1:  1 false_BOOL1:f False_bool: False True_bool: True X:iNf Y:-inF Z:nANtidentifier1t:R�tidentifier2i{tidentifier3R�tidentifiER_4g�[@tID5gq=
ףpͿtID6s	aaaa'bbbbtID7saa"bbtID8t{tAtinftBtCtDt}tID9itID10l�����q��{UtID11i��tID12l�c/Y-�vtID13g82�����?tID14g^@t
false_boolt	true_BOOLt
true_bool1tfalse_BOOL1t
False_boolt	True_booltXtYs-inftZtnanii(R
t	Tokenizert
splitlinestConsumeIdentifiert
ConsumeStringtConsumeIntegertConsumeFloattfloattConsumeBoolR?RJtAtEndt
isinstanceRttokenR
t	NextTokentmathtisnanR�(RR!t	tokenizertmethodsR�R�R=((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestSimpleTokenCases�s�
	
& cCsYd
}d}d|d|df}tj|j��}|jd|j��|j|d|j��|j|d|j��|j|j��d}tj|j��}|jd|j��|jd|j��|jt|j��|jt	|j��|j
tj��|j�WdQX|jd|j��|j|j��dS(
Nii?i s-1 %d %di����s
-0 0 0 1.2ig333333�?ll����ll��(
R
R3R4R
R7R�R;R?tTryConsumeIntegerRJR}R~R8(Rt	int64_maxt
uint32_maxR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeAbstractIntegers)s$cCs�d	}d}d|d|df}tj|j��}|jtjtj|�|jtjtj|�|jdtj|��|jtjtj|�|jtjtj|�|j|dtj	|��|jtjtj	|�|j|dtj|��|j
|j��d}tj|j��}|jdtj|��|jdtj|��|jdtj|��|jdtj|��|j
|j��dS(Nii?i s-1 %d %di����s	-0 -0 0 0ill����ll��(R
R3R4R}R~t_ConsumeUint32t_ConsumeUint64R
t
_ConsumeInt32t
_ConsumeInt64R�R;(RRERFR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeIntegersBs2




cCs�d}tj|j��}|jtj|j�d}tj|j��}|jtj|j�d}tj|j��}|jtj|j�d}tj|j��}|jtj|j�d}tj|j��}|jtj|j�dS(Ns	"string1'sstring1"s
"\xt"s
"\"s
"\x"(R
R3R4R}R~tConsumeByteString(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeByteStringbscCs5d}tj|j��}|jtj|j�dS(Ns
not-a-bool(R
R3R4R}R~R:(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeBoolwscCsBtjdj��}|j|j��|jtj|j�dS(Ns# some comment(R
R3R4R�R;R}R~tConsumeComment(RRA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestSkipComment|scCs[tjdj�dt�}|j|j��|jd|j��|j|j��dS(Ns# some commentt
skip_comments(	R
R3R4RJtassertFalseR;R
RPR�(RRA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeComment�s
	cCswd}tj|j�dt�}|jd|j��|j|j��|jd|j��|j|j��dS(Ns # some comment
# another commentRRs# some comments# another comment(	R
R3R4RJR
RPRSR;R�(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeTwoComments�scCs�d}tj|j�dt�}|jtj|j�|jd|j��|j|j	d�|j
�|jtj|j�|jd|j��|j|j
��|jd|j��|j|j
��dS(Nssome_number: 4
# some commentRRtsome_numberRis# some comment(R
R3R4RJR}R~RPR
R5R=R>R7RSR;R�(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeTrailingComment�s
cCsatjdj�dt�}|j|j��|jtdf|j��|j|j��dS(Ns# some commentRR(	R
R3R4RJRSR;R
tConsumeCommentOrTrailingCommentR�(RRA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeLineComment�s	
cCs�d}tj|j�dt�}|jtdf|j��|j|j��|jtdf|j��|j|j��dS(Ns # some comment
# another commentRRs# some comments# another comment(	R
R3R4RJR
RXRSR;R�(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestConsumeTwoLineComments�s

cCs�d}tj|j�dt�}|jtj|j�|jd|j��|j|j	d�|j
�|jtj|j�|jd|j��|j|j
��|jtdf|j��|j|j
��dS(Nssome_number: 4  # some commentRRRVRis# some comment(R
R3R4RJR}R~RXR
R5R=R>R7RSR;R?R�(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt"testConsumeAndCheckTrailingComment�s



cCs�d}tj|j�dt�}|jd|j��|j|jd�|j�|jd|j��|jt	df|j
��|j|j��dS(Ns2some_number: 4  # some comment # not a new commentRRRVRis"# some comment # not a new comment(
R
R3R4RJR
R5R=R>R7R?RXR�R;(RR!RA((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestHashinComment�s

(RRRCRGRLRNRORQRTRURWRYRZR[R\(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR�s	M		 								
	tPrettyPrinterTestcBs5eZd�Zd�Zd�Zd�Zd�ZRS(cCsVd�}|j�}|jj�}d|_|jtj|dtd|�d�dS(NcSs
~~~dS(N(tNone(R5tindentR;((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRi�s	i*R;tmessage_formatters"repeated_nested_message { bb: 42 }(R-R<R=R>R%R
R3R?(RR4RiR5R@((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintNoMatch�s		cs\�fd�}�j�}|jj�}d|_|jtj|dtd|�d�dS(Ncs-~~|j�jjjkr)d|jSdS(NsMy lucky number is %s(R_R-t
NestedMessageR>(R�R_R;(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRi�si*R;R`s1repeated_nested_message { My lucky number is 42 }(R-R<R=R>R%R
R3R?(RR4RiR5R@((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintOneLine�s	cs��fd�}�j�}|jj�}d|_|jtj|dtd|�d�|jtj|dtd|�d�dS(NcsG|j�jjjkrC|r$dndd|}d||jfSdS(Nt s
sMy lucky number is:%s%s(R_R-RbR>R^(R�R_R;tline_deliminator(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRi�si*R;R`s2repeated_nested_message { My lucky number is: 42 }s7repeated_nested_message {
  My lucky number is:
  42
}
(	R-R<R=R>R%R
R3R?RJ(RR4RiR5R@((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintMultiLine�s	csi�fd�}�j�}|jtj|dtd|�d�|jtj|dtd|�d�dS(Ncs#~~|j�jjkrdSdS(NsThe is the message!(R_R-R^(R�R_R;(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRisR;R`sThe is the message!
sThe is the message!(R-R%R
R3RJR?(RR4RiR5((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintEntireMessagescs��fd�}�j�}d|_|jj�}d|_|jj�}d|_|j}d|_|jtj|dt	d|�d�dS(	Ncs-~~|j�jjjkr)d|jSdS(NsMy lucky number is %s(R_R-RbR>R^(R�R_R;(R4(sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyRisi=i*iciR;R`s�optional_int32: 61 optional_nested_message { My lucky number is 1 } repeated_nested_message { My lucky number is 42 } repeated_nested_message { My lucky number is 99 }(
R-R�R<R=R>R�R%R
R3R?(RR4RiR5R@((R4sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyttestPrettyPrintMultiplePartss					(RRRaRcRfRgRh(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyR]�s
				t__main__(#t__doc__t
__author__R?R'R8R�t	unittest2tunittesttImportErrortgoogle.protobuf.internalRtgoogle.protobufRRRRRRR�RRR	R
tTestCaseRRt
ParametersR,R�R�R�RR]Rtmain(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/text_format_test.pyt<module>!sF
�������]PK�\%aȃ��(protobuf/internal/text_encoding_test.pycnu�[����
���hc@s�dZyddlZWnek
r5ddlZnXddlmZddddgZd
ejfd��YZe	dkr�ej
�ndS(s(Tests for google.protobuf.text_encoding.i����N(t
text_encodingsfoo\rbar\nbaz\tsfoo
bar
baz	s"\'full of \"sound\" and \"fury\"\'s'full of "sound" and "fury"'ssigni\\fying\\ nothing\\ssigni\fying\ nothing\s\010\t\n\013\014\rs	\t\n\rs	

tTextEncodingTestCasecBseZd�Zd�ZRS(cCs\xUtD]M\}}}|j|tj|dt��|j|tj|dt��qWdS(Ntas_utf8(tTEST_VALUEStassertEqualRtCEscapetFalsetTrue(tselftescapedtescaped_utf8t	unescaped((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/text_encoding_test.pyttestCEscape9s
		cCsPxItD]A\}}}|j|tj|��|j|tj|��qWdS(N(RRRt	CUnescape(RR	R
R((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/text_encoding_test.pyt
testCUnescape@s(t__name__t
__module__RR(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/text_encoding_test.pyR8s	t__main__(sfoo\rbar\nbaz\tsfoo\rbar\nbaz\tsfoo
bar
baz	(s"\'full of \"sound\" and \"fury\"\'s"\'full of \"sound\" and \"fury\"\'s'full of "sound" and "fury"'(ssigni\\fying\\ nothing\\ssigni\\fying\\ nothing\\ssigni\fying\ nothing\(s\010\t\n\013\014\rs	\t\n\rs	

(t__doc__t	unittest2tunittesttImportErrortgoogle.protobufRRtTestCaseRRtmain(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/text_encoding_test.pyt<module> s(
	PK�\�x'����&protobuf/internal/well_known_types.pycnu�[����
���hc@sdZdZddlZddlmZddlmZddlZddlmZdZdZ	d	Z
d
Zd
Zd	Z
d1Zd
Zdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZd�Zd�Zdefd��YZd�Zd�Zd�Zd�Zd efd!��YZd"�Zd#�Z d$�Z!ej"e#fZ$d%�Z%d&�Z&d'efd(��YZ'ej(j)e'�d)efd*��YZ*ej+j)e*�ied+6ed,6ed-6e*d.6e'd/6ed06Z,dS(2s�Contains well known classes.

This files defines well known classes which need extra maintenance including:
  - Any
  - Duration
  - FieldMask
  - Struct
  - Timestamp
sjieluo@google.com (Jie Luo)i����N(tdatetime(t	timedelta(tFieldDescriptors%Y-%m-%dT%H:%M:%Siʚ;i@Bi�iil�s%tErrorcBseZdZRS(sTop-level module error.(t__name__t
__module__t__doc__(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR<st
ParseErrorcBseZdZRS(s Thrown in case of parsing error.(RRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR@stAnycBs8eZdZddd�Zd�Zd�Zd�ZRS(sClass for Any Message type.stype.googleapis.com/cCspt|�dks"|ddkr>d||jjf|_nd||jjf|_|jd|�|_dS(s5Packs the specified message into current Any message.ii����t/s%s/%ss%s%st
deterministicN(tlent
DESCRIPTORt	full_namettype_urltSerializeToStringtvalue(tselftmsgttype_url_prefixR
((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytPackGs"cCs0|j}|j|�stS|j|j�tS(s7Unpacks the current Any message into specified message.(RtIstFalsetParseFromStringRtTrue(RRt
descriptor((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytUnpackPs
	cCs|jjd�dS(s4Returns the protobuf type name of the inner message.R	i����(Rtsplit(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytTypeNameXscCs|j�|jkS(s6Checks if this Any represents the given protobuf type.(RR
(RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR]sN(RRRtNoneRRRR(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRDs		t	TimestampcBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZRS(s!Class for Timestamp message type.cCs�|jt}|j|j|t}|t}||t}tddd�t||�}|j�}|ddkr�|dS|ddkr�|d|dS|ddkr�|d	|dS|d
|S(s#Converts Timestamp to RFC 3339 date string format.

    Returns:
      A string converted from timestamp. The string is always Z-normalized
      and uses 3, 6 or 9 fractional digits as required to represent the
      exact time. Example of the return format: '1972-01-01T10:00:20.021Z'
    i�ige��AitZg��.As.%03dZg@�@s.%06dZs.%09dZ(tnanost_NANOS_PER_SECONDtsecondst_SECONDS_PER_DAYRRt	isoformat(RR t	total_secR"tdaystdttresult((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytToJsonStringes

c
CsY|jd�}|dkr-|jd�}n|dkrK|jd�}n|dkrftd��n|d|!}|jd�}|dkr�|}d}n|| }||d	}tj|t�}|td
d	d	�}|j|jt}	t	|�dkrtdj
|���n|r>ttd
|�d�}
nd}
||dkr�t	|�|d	kr7tdj
|���q7n�||}|jd�}|dkr�tdj
|���n|ddkr|	t
|d	|!�dt
||d	�d8}	n1|	t
|d	|!�dt
||d	�d7}	t
|	�|_t
|
�|_dS(sNParse a RFC 3339 date string format to Timestamp.

    Args:
      value: A date string. Any fractional digits (or none) and any offset are
          accepted as long as they fit into nano-seconds precision.
          Example of accepted format: '1972-01-01T10:00:20.021-05:00'

    Raises:
      ParseError: On parsing problems.
    Ri����t+t-s9Failed to parse timestamp: missing valid timezone offset.it.tii�i	sCFailed to parse Timestamp: nanos {0} more than 9 fractional digits.s0.ge��As5Failed to parse timestamp: invalid trailing data {0}.t:s#Invalid timezone offset value: {0}.i<N(tfindtrfindRRtstrptimet_TIMESTAMPFOMATR"R&R#RtformattroundtfloattintR (
RRttimezone_offsett
time_valuetpoint_positiontsecond_valuet
nano_valuetdate_objectttdR"R ttimezonetpos((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytFromJsonString�sN
	
	
41cCs|jtj��dS(s#Get the current UTC into Timestamp.N(tFromDatetimeRtutcnow(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytGetCurrentTime�scCs|jt|jS(s.Converts Timestamp to nanoseconds since epoch.(R"R!R (R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt
ToNanoseconds�scCs|jt|jtS(s/Converts Timestamp to microseconds since epoch.(R"t_MICROS_PER_SECONDR t_NANOS_PER_MICROSECOND(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytToMicroseconds�s
cCs|jt|jtS(s/Converts Timestamp to milliseconds since epoch.(R"t_MILLIS_PER_SECONDR t_NANOS_PER_MILLISECOND(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytToMilliseconds�s
cCs|jS(s*Converts Timestamp to seconds since epoch.(R"(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt	ToSeconds�scCs|t|_|t|_dS(s.Converts nanoseconds since epoch to Timestamp.N(R!R"R (RR ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytFromNanoseconds�s
cCs"|t|_|tt|_dS(s/Converts microseconds since epoch to Timestamp.N(RER"RFR (Rtmicros((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytFromMicroseconds�s
cCs"|t|_|tt|_dS(s/Converts milliseconds since epoch to Timestamp.N(RHR"RIR (Rtmillis((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytFromMilliseconds�s
cCs||_d|_dS(s*Converts seconds since epoch to Timestamp.iN(R"R (RR"((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytFromSeconds�s	cCs!tj|j|jtt��S(sConverts Timestamp to datetime.(RtutcfromtimestampR"R R5R!(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt
ToDatetime�scCsA|tddd�}|j|jt|_|jt|_dS(sConverts datetime to Timestamp.i�iN(RR"R&R#tmicrosecondsRFR (RR'R=((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRA�s(RRRR)R@RCRDRGRJRKRLRNRPRQRSRA(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRbs		:										tDurationcBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZRS(s Class for Duration message type.cCs	t|j|j�|jdks1|jdkrjd}|jtd|jd�}d|jd}n-d}|jt|jd�}|jd}|d|7}|ddkr�|dS|ddkr�|d|dS|d	dkr�|d
|d	S|d|S(s+Converts Duration to string format.

    Returns:
      A string converted from self. The string format will contains
      3, 6, or 9 fractional digits depending on the precision required to
      represent the exact Duration value. For example: "1s", "1.010s",
      "1.000000100s", "-3.100s"
    iR+ge��AR-s%dtsg��.As.%03dsg@�@s.%06dss.%09ds(t_CheckDurationValidR"R R6(RR(R"R ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR)�s 	
cCs9t|�dks"|ddkr:tdj|���ny�|jd�}|dkrqt|d �}d}n{t|| �}|ddkr�tttdj||d!��d	��}n,tttd
j||d!��d	��}t||�||_||_	Wn&t
k
r4tdj|���nXdS(
s?Converts a string to Duration.

    Args:
      value: A string to be converted. The string must end with 's'. Any
          fractional digits (or none) are accepted as long as they fit into
          precision. For example: "1s", "1.01s", "1.0000001s", "-3.100s

    Raises:
      ParseError: On parsing problems.
    ii����RVs'Duration must end with letter "s": {0}.R,iR+s-0{0}ge��As0{0}sCouldn't parse duration: {0}.N(RRR3R/R6R4R5RWR"R t
ValueError(RRR?R"R ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR@s$"	/,
	

cCs|jt|jS(s#Converts a Duration to nanoseconds.(R"R!R (R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRD4scCs!t|jt�}|jt|S(s$Converts a Duration to microseconds.(t_RoundTowardZeroR RFR"RE(RRM((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRG8scCs!t|jt�}|jt|S(s$Converts a Duration to milliseconds.(RYR RIR"RH(RRO((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRJ=scCs|jS(sConverts a Duration to seconds.(R"(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRKBscCs|j|t|t�dS(s!Converts nanoseconds to Duration.N(t_NormalizeDurationR!(RR ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRLFs
cCs |j|t|tt�dS(s"Converts microseconds to Duration.N(RZRERF(RRM((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRNKscCs |j|t|tt�dS(s"Converts milliseconds to Duration.N(RZRHRI(RRO((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRPQscCs||_d|_dS(sConverts seconds to Duration.iN(R"R (RR"((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRQWs	cCs"td|jdt|jt��S(sConverts Duration to timedelta.R"RT(RR"RYR RF(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytToTimedelta\scCs)|j|j|jt|jt�dS(sConverts timedelta to Duration.N(RZR"R&R#RTRF(RR=((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt
FromTimedeltabscCsE|dkr/|dkr/|d7}|t8}n||_||_dS(s"Set Duration by seconds and nanos.iiN(R!R"R (RR"R ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRZgs


	(RRRR)R@RDRGRJRKRLRNRPRQR[R\RZ(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRU�s	 	 										cCsf|tks|tkr1tdj|���n|tksJ|tkrbtdj|���ndS(NsRDuration is not valid: Seconds {0} must be in range [-315576000000, 315576000000].sJDuration is not valid: Nanos {0} must be in range [-999999999, 999999999].(t_DURATION_SECONDS_MAXRR3R!(R"R ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRWqscCs<||}||}|dkr4|dkr4|dS|SdS(s,Truncates the remainder part after division.iiN((RtdividerR(t	remainder((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRY|s


t	FieldMaskcBs\eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e
e
d�ZRS(	s!Class for FieldMask message type.cCs:g}x$|jD]}|jt|��qWdj|�S(s;Converts FieldMask to string according to proto3 JSON spec.t,(tpathstappendt_SnakeCaseToCamelCasetjoin(Rtcamelcase_pathstpath((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR)�scCs>|j�x-|jd�D]}|jjt|��qWdS(s;Converts string to FieldMask according to proto3 JSON spec.RaN(tClearRRbRct_CamelCaseToSnakeCase(RRRg((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR@�s
cCs+x$|jD]}t||�s
tSq
WtS(s=Checks whether the FieldMask is valid for Message Descriptor.(Rbt_IsValidPathRR(Rtmessage_descriptorRg((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytIsValidForDescriptor�scCs5|j�x$|jD]}|jj|j�qWdS(s:Gets all direct fields of Message Descriptor to FieldMask.N(RhtfieldsRbRctname(RRktfield((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytAllFieldsFromDescriptor�s
cCst|�}|j|�dS(s:Converts a FieldMask to the canonical form.

    Removes paths that are covered by another path. For example,
    "foo.bar" is covered by "foo" and will be removed if "foo"
    is also in the FieldMask. Then sorts all paths in alphabetical order.

    Args:
      mask: The original FieldMask to be converted.
    N(t_FieldMaskTreetToFieldMask(Rtmaskttree((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytCanonicalFormFromMask�s
cCs>t|�t|�t|�}|j|�|j|�dS(s+Merges mask1 and mask2 into this FieldMask.N(t_CheckFieldMaskMessageRqtMergeFromFieldMaskRr(Rtmask1tmask2Rt((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytUnion�s



cCs^t|�t|�t|�}t�}x!|jD]}|j||�q3W|j|�dS(s/Intersects mask1 and mask2 into this FieldMask.N(RvRqRbt
IntersectPathRr(RRxRyRttintersectionRg((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt	Intersect�s

	cCs&t|�}|j||||�dS(s�Merges fields specified in FieldMask from source to destination.

    Args:
      source: Source message.
      destination: The destination message to be merged into.
      replace_message_field: Replace message field if True. Merge message
          field if False.
      replace_repeated_field: Replace repeated field if True. Append
          elements of repeated field if False.
    N(RqtMergeMessage(Rtsourcetdestinationtreplace_message_fieldtreplace_repeated_fieldRt((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR~�s
(RRRR)R@RlRpRuRzR}RR~(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR`�s					
		cCs�|jd�}|j�}x]|D]U}|jj|�}|dksj|jtjksj|jtj	krnt
S|j}q"W||jkS(s8Checks whether the path is valid for Message Descriptor.R,N(Rtpoptfields_by_nametgetRtlabelRtLABEL_REPEATEDttypetTYPE_MESSAGERtmessage_type(RkRgtpartstlastRnRo((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRj�s

cCsI|j}|jdks*|jjdkrEtdj|j���ndS(s0Raises ValueError if message is not a FieldMask.R`s google/protobuf/field_mask.protosMessage {0} is not a FieldMask.N(RRntfileRXR3R
(tmessageRk((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRv�s
		cCs�g}t}x�|D]�}|j�r=tdj|���n|r�|j�rk|j|j��t}q�tdj|���q|dkr�t}q||7}qW|r�tdj|���ndj|�S(s2Converts a path name from snake_case to camelCase.sYFail to print FieldMask to Json string: Path name {0} must not contain uppercase letters.snFail to print FieldMask to Json string: The character after a "_" must be a lowercase letter in path name {0}.t_sFFail to print FieldMask to Json string: Trailing "_" in path name {0}.R-(	RtisupperRR3tislowerRctupperRRe(t	path_nameR(tafter_underscoretc((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRd�s&
					cCs{g}xe|D]]}|dkr7tdj|���n|j�r`|d7}||j�7}q
||7}q
Wdj|�S(s3Converts a field name from camelCase to snake_case.R�s=Fail to parse FieldMask: Path name {0} must not contain "_"s.R-(RR3R�tlowerRe(R�R(R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRis
	
RqcBsPeZdZdd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	s7Represents a FieldMask in a tree structure.

  For example, given a FieldMask "foo.bar,foo.baz,bar.baz",
  the FieldMaskTree will be:
      [_root] -+- foo -+- bar
            |       |
            |       +- baz
            |
            +- bar --- baz
  In the tree, each leaf node represents a field path.
  cCs#i|_|r|j|�ndS(s"Initializes the tree by FieldMask.N(t_rootRw(Rt
field_mask((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__init__'s	cCs%x|jD]}|j|�q
WdS(sMerges a FieldMask to the tree.N(RbtAddPath(RR�Rg((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRw-scCsb|j}xH|jd�D]7}||kr8i||<n||sFdS||}qW|j�dS(sAdds a field path into the tree.

    If the field path to add is a sub-path of an existing field path
    in the tree (i.e., a leaf node), it means the tree already matches
    the given path so nothing will be added to the tree. If the path
    matches an existing non-leaf node in the tree, that non-leaf node
    will be turned into a leaf node with all its children removed because
    the path matches all the node's children. Otherwise, a new path will
    be added.

    Args:
      path: The field path to add.
    R,N(R�Rtclear(RRgtnodeRn((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�2s	

cCs!|j�t|jd|�dS(s!Converts the tree to a FieldMask.R-N(Rht_AddFieldPathsR�(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRrKs
cCsl|j}xL|jd�D];}||kr/dS||sJ|j|�dS||}qW|j||�dS(s�Calculates the intersection part of a field path with this tree.

    Args:
      path: The field path to calculates.
      intersection: The out tree to record the intersection part.
    R,N(R�RR�tAddLeafNodes(RRgR|R�Rn((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR{Ps	

cCsM|s|j|�nx0|D](}|d|}|j|||�qWdS(s/Adds leaf nodes begin with prefix to this tree.R,N(R�R�(RtprefixR�Rnt
child_path((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�as

cCst|j||||�dS(sCMerge all fields specified by this tree from source to destination.N(t
_MergeMessageR�(RRR�treplace_messagetreplace_repeated((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR~isN(RRRRR�RwR�RrR{R�R~(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRqs					cCs t|t�s|jd�S|S(s#Converts value to str if it is not.sutf-8(t
isinstancetstrtencode(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt_StrConvertqs
cCs�|j}x�|D]�}||}|j|}|dkrWtdj||j���n|r�|jtjks�|j	tj
kr�tdj||j���nt|t||�t||�||�qn|jtjkrb|r�|j
t|��nt||�}	t||�}
|j	tj
krRx1|	D]}|
j�j|�q2Wq�|
j|	�q|j	tj
kr�|r�|j
t|��n|j|�r�t||�jt||��q�qt||t||��qWdS(sDMerge all fields specified by a sub-tree from source to destination.s+Error: Can't find field {0} in message {1}.s[Error: Field {0} in message {1} is not a singular message field and cannot have sub-fields.N(RR�RRXR3R
R�RR�tcpp_typetCPPTYPE_MESSAGER�tgetattrt
ClearFieldR�taddt	MergeFromtextendtHasFieldtsetattr(R�RR�R�R�tsource_descriptorRntchildRotrepeated_sourcetrepeated_destinationtitem((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�{s>	


		

%cCsf|s|jj|�dSxEt|�D]7}|rD|d|}n|}t||||�q'WdS(s7Adds the field paths descended from node to field_mask.NR,(RbRctsortedR�(R�R�R�RnR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR��scCs�|dkrd|_n�t|t�r3||_n�t|tj�rQ||_n�t|t�rl||_	njt|t
�r�|jj�|jj
|�n;t|t�r�|jj�|jj|�ntd��dS(NisUnexpected type(Rt
null_valueR�tboolt
bool_valuetsixtstring_typeststring_valuet
_INT_OR_FLOATtnumber_valuetdicttstruct_valueRhtupdatetlistt
list_valueR�RX(R�R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt_SetStructValue�s

cCs�|jd�}|dkr"|jS|dkr2dS|dkrE|jS|dkrX|jS|dkrk|jS|dkr~|jS|dkr�td��ndS(	NtkindR�R�R�R�R�R�s
Value not set(t
WhichOneofR�RR�R�R�R�RX(R�twhich((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt_GetStructValue�stStructcBs�eZdZgZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�ZRS(
sClass for Struct message type.cCst|j|�S(N(R�Rm(Rtkey((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__getitem__�scCs
||jkS(N(Rm(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__contains__�scCst|j||�dS(N(R�Rm(RR�R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__setitem__�scCs|j|=dS(N(Rm(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__delitem__�scCs
t|j�S(N(RRm(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__len__�scCs
t|j�S(N(titerRm(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt__iter__�scCs
|jj�S(N(Rmtkeys(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR��scCsg|D]}||^qS(N((RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytvalues�scCs!g|D]}|||f^qS(N((RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytitems�scCs;|j|jd�s-|j|jj�n|j|jS(sAReturns a list for this key, creating if it didn't exist already.R�(RmR�R�Rh(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytget_or_create_list�scCs;|j|jd�s-|j|jj�n|j|jS(sCReturns a struct for this key, creating if it didn't exist already.R�(RmR�R�Rh(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytget_or_create_structscCs5x.|j�D] \}}t|j||�q
WdS(N(R�R�Rm(Rt
dictionaryR�R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�	s(RRRt	__slots__R�R�R�R�R�R�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR��s											t	ListValuecBs_eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZRS(
s!Class for ListValue message type.cCs
t|j�S(N(RR�(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�scCst|jj�|�dS(N(R�R�R�(RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyRcscCs"x|D]}|j|�qWdS(N(Rc(Rtelem_seqR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�s
cCst|jj|��S(s&Retrieves item by the specified index.(R�R�R�(Rtindex((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�scCst|jj|�|�dS(N(R�R�R�(RR�R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�!scCs|j|=dS(N(R�(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�$sccs*x#tt|��D]}||VqWdS(N(trangeR(Rti((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�'scCs |jj�j}|j�|S(sAAppends and returns a struct value as the next value in the list.(R�R�R�Rh(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt
add_struct+s
cCs |jj�j}|j�|S(s?Appends and returns a list value as the next value in the list.(R�R�R�Rh(RR�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pytadd_list2s
(RRRR�RcR�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyR�s								sgoogle.protobuf.Anysgoogle.protobuf.Durationsgoogle.protobuf.FieldMasksgoogle.protobuf.ListValuesgoogle.protobuf.Structsgoogle.protobuf.Timestampi�Q(-Rt
__author__tcollectionsRRR�tgoogle.protobuf.descriptorRR2R!RIRFRHRER#R]t	ExceptionRRtobjectRRRURWRYR`RjRvRdRiRqR�R�R�t
integer_typesR5R�R�R�R�tMutableMappingtregisterR�tMutableSequencetWKTBASES(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types.pyt<module>'sX��		N					W	
	)	
		2)PK�\�-}�66(protobuf/internal/unknown_fields_test.pynu�[���# -*- coding: utf-8 -*-
#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Test for preservation of unknown fields in the pure Python implementation."""

__author__ = 'bohdank@google.com (Bohdan Koval)'

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest
from google.protobuf import unittest_mset_pb2
from google.protobuf import unittest_pb2
from google.protobuf import unittest_proto3_arena_pb2
from google.protobuf.internal import api_implementation
from google.protobuf.internal import encoder
from google.protobuf.internal import message_set_extensions_pb2
from google.protobuf.internal import missing_enum_values_pb2
from google.protobuf.internal import test_util
from google.protobuf.internal import testing_refleaks
from google.protobuf.internal import type_checkers


BaseTestCase = testing_refleaks.BaseTestCase


# CheckUnknownField() cannot be used by the C++ implementation because
# some protect members are called. It is not a behavior difference
# for python and C++ implementation.
def SkipCheckUnknownFieldIfCppImplementation(func):
  return unittest.skipIf(
      api_implementation.Type() == 'cpp' and api_implementation.Version() == 2,
      'Addtional test for pure python involved protect members')(func)


class UnknownFieldsTest(BaseTestCase):

  def setUp(self):
    self.descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
    self.all_fields = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(self.all_fields)
    self.all_fields_data = self.all_fields.SerializeToString()
    self.empty_message = unittest_pb2.TestEmptyMessage()
    self.empty_message.ParseFromString(self.all_fields_data)

  def testSerialize(self):
    data = self.empty_message.SerializeToString()

    # Don't use assertEqual because we don't want to dump raw binary data to
    # stdout.
    self.assertTrue(data == self.all_fields_data)

  def expectSerializeProto3(self, preserve):
    message = unittest_proto3_arena_pb2.TestEmptyMessage()
    message.ParseFromString(self.all_fields_data)
    if preserve:
      self.assertEqual(self.all_fields_data, message.SerializeToString())
    else:
      self.assertEqual(0, len(message.SerializeToString()))

  def testSerializeProto3(self):
    # Verify that proto3 unknown fields behavior.
    default_preserve = (api_implementation
                        .GetPythonProto3PreserveUnknownsDefault())
    self.expectSerializeProto3(default_preserve)
    api_implementation.SetPythonProto3PreserveUnknownsDefault(
        not default_preserve)
    self.expectSerializeProto3(not default_preserve)
    api_implementation.SetPythonProto3PreserveUnknownsDefault(default_preserve)

  def testByteSize(self):
    self.assertEqual(self.all_fields.ByteSize(), self.empty_message.ByteSize())

  def testListFields(self):
    # Make sure ListFields doesn't return unknown fields.
    self.assertEqual(0, len(self.empty_message.ListFields()))

  def testSerializeMessageSetWireFormatUnknownExtension(self):
    # Create a message using the message set wire format with an unknown
    # message.
    raw = unittest_mset_pb2.RawMessageSet()

    # Add an unknown extension.
    item = raw.item.add()
    item.type_id = 98418603
    message1 = message_set_extensions_pb2.TestMessageSetExtension1()
    message1.i = 12345
    item.message = message1.SerializeToString()

    serialized = raw.SerializeToString()

    # Parse message using the message set wire format.
    proto = message_set_extensions_pb2.TestMessageSet()
    proto.MergeFromString(serialized)

    # Verify that the unknown extension is serialized unchanged
    reserialized = proto.SerializeToString()
    new_raw = unittest_mset_pb2.RawMessageSet()
    new_raw.MergeFromString(reserialized)
    self.assertEqual(raw, new_raw)

  def testEquals(self):
    message = unittest_pb2.TestEmptyMessage()
    message.ParseFromString(self.all_fields_data)
    self.assertEqual(self.empty_message, message)

    self.all_fields.ClearField('optional_string')
    message.ParseFromString(self.all_fields.SerializeToString())
    self.assertNotEqual(self.empty_message, message)

  def testDiscardUnknownFields(self):
    self.empty_message.DiscardUnknownFields()
    self.assertEqual(b'', self.empty_message.SerializeToString())
    # Test message field and repeated message field.
    message = unittest_pb2.TestAllTypes()
    other_message = unittest_pb2.TestAllTypes()
    other_message.optional_string = 'discard'
    message.optional_nested_message.ParseFromString(
        other_message.SerializeToString())
    message.repeated_nested_message.add().ParseFromString(
        other_message.SerializeToString())
    self.assertNotEqual(
        b'', message.optional_nested_message.SerializeToString())
    self.assertNotEqual(
        b'', message.repeated_nested_message[0].SerializeToString())
    message.DiscardUnknownFields()
    self.assertEqual(b'', message.optional_nested_message.SerializeToString())
    self.assertEqual(
        b'', message.repeated_nested_message[0].SerializeToString())


class UnknownFieldsAccessorsTest(BaseTestCase):

  def setUp(self):
    self.descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
    self.all_fields = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(self.all_fields)
    self.all_fields_data = self.all_fields.SerializeToString()
    self.empty_message = unittest_pb2.TestEmptyMessage()
    self.empty_message.ParseFromString(self.all_fields_data)

  # CheckUnknownField() is an additional Pure Python check which checks
  # a detail of unknown fields. It cannot be used by the C++
  # implementation because some protect members are called.
  # The test is added for historical reasons. It is not necessary as
  # serialized string is checked.

  def CheckUnknownField(self, name, expected_value):
    field_descriptor = self.descriptor.fields_by_name[name]
    wire_type = type_checkers.FIELD_TYPE_TO_WIRE_TYPE[field_descriptor.type]
    field_tag = encoder.TagBytes(field_descriptor.number, wire_type)
    result_dict = {}
    for tag_bytes, value in self.empty_message._unknown_fields:
      if tag_bytes == field_tag:
        decoder = unittest_pb2.TestAllTypes._decoders_by_tag[tag_bytes][0]
        decoder(value, 0, len(value), self.all_fields, result_dict)
    self.assertEqual(expected_value, result_dict[field_descriptor])

  @SkipCheckUnknownFieldIfCppImplementation
  def testCheckUnknownFieldValue(self):
    # Test enum.
    self.CheckUnknownField('optional_nested_enum',
                           self.all_fields.optional_nested_enum)
    # Test repeated enum.
    self.CheckUnknownField('repeated_nested_enum',
                           self.all_fields.repeated_nested_enum)

    # Test varint.
    self.CheckUnknownField('optional_int32',
                           self.all_fields.optional_int32)
    # Test fixed32.
    self.CheckUnknownField('optional_fixed32',
                           self.all_fields.optional_fixed32)

    # Test fixed64.
    self.CheckUnknownField('optional_fixed64',
                           self.all_fields.optional_fixed64)

    # Test lengthd elimited.
    self.CheckUnknownField('optional_string',
                           self.all_fields.optional_string)

    # Test group.
    self.CheckUnknownField('optionalgroup',
                           self.all_fields.optionalgroup)

  def testCopyFrom(self):
    message = unittest_pb2.TestEmptyMessage()
    message.CopyFrom(self.empty_message)
    self.assertEqual(message.SerializeToString(), self.all_fields_data)

  def testMergeFrom(self):
    message = unittest_pb2.TestAllTypes()
    message.optional_int32 = 1
    message.optional_uint32 = 2
    source = unittest_pb2.TestEmptyMessage()
    source.ParseFromString(message.SerializeToString())

    message.ClearField('optional_int32')
    message.optional_int64 = 3
    message.optional_uint32 = 4
    destination = unittest_pb2.TestEmptyMessage()
    destination.ParseFromString(message.SerializeToString())

    destination.MergeFrom(source)
    # Check that the fields where correctly merged, even stored in the unknown
    # fields set.
    message.ParseFromString(destination.SerializeToString())
    self.assertEqual(message.optional_int32, 1)
    self.assertEqual(message.optional_uint32, 2)
    self.assertEqual(message.optional_int64, 3)

  def testClear(self):
    self.empty_message.Clear()
    # All cleared, even unknown fields.
    self.assertEqual(self.empty_message.SerializeToString(), b'')

  def testUnknownExtensions(self):
    message = unittest_pb2.TestEmptyMessageWithExtensions()
    message.ParseFromString(self.all_fields_data)
    self.assertEqual(message.SerializeToString(), self.all_fields_data)


class UnknownEnumValuesTest(BaseTestCase):

  def setUp(self):
    self.descriptor = missing_enum_values_pb2.TestEnumValues.DESCRIPTOR

    self.message = missing_enum_values_pb2.TestEnumValues()
    # TestEnumValues.ZERO = 0, but does not exist in the other NestedEnum.
    self.message.optional_nested_enum = (
        missing_enum_values_pb2.TestEnumValues.ZERO)
    self.message.repeated_nested_enum.extend([
        missing_enum_values_pb2.TestEnumValues.ZERO,
        missing_enum_values_pb2.TestEnumValues.ONE,
        ])
    self.message.packed_nested_enum.extend([
        missing_enum_values_pb2.TestEnumValues.ZERO,
        missing_enum_values_pb2.TestEnumValues.ONE,
        ])
    self.message_data = self.message.SerializeToString()
    self.missing_message = missing_enum_values_pb2.TestMissingEnumValues()
    self.missing_message.ParseFromString(self.message_data)

  # CheckUnknownField() is an additional Pure Python check which checks
  # a detail of unknown fields. It cannot be used by the C++
  # implementation because some protect members are called.
  # The test is added for historical reasons. It is not necessary as
  # serialized string is checked.

  def CheckUnknownField(self, name, expected_value):
    field_descriptor = self.descriptor.fields_by_name[name]
    wire_type = type_checkers.FIELD_TYPE_TO_WIRE_TYPE[field_descriptor.type]
    field_tag = encoder.TagBytes(field_descriptor.number, wire_type)
    result_dict = {}
    for tag_bytes, value in self.missing_message._unknown_fields:
      if tag_bytes == field_tag:
        decoder = missing_enum_values_pb2.TestEnumValues._decoders_by_tag[
            tag_bytes][0]
        decoder(value, 0, len(value), self.message, result_dict)
    self.assertEqual(expected_value, result_dict[field_descriptor])

  def testUnknownParseMismatchEnumValue(self):
    just_string = missing_enum_values_pb2.JustString()
    just_string.dummy = 'blah'

    missing = missing_enum_values_pb2.TestEnumValues()
    # The parse is invalid, storing the string proto into the set of
    # unknown fields.
    missing.ParseFromString(just_string.SerializeToString())

    # Fetching the enum field shouldn't crash, instead returning the
    # default value.
    self.assertEqual(missing.optional_nested_enum, 0)

  def testUnknownEnumValue(self):
    self.assertFalse(self.missing_message.HasField('optional_nested_enum'))
    self.assertEqual(self.missing_message.optional_nested_enum, 2)
    # Clear does not do anything.
    serialized = self.missing_message.SerializeToString()
    self.missing_message.ClearField('optional_nested_enum')
    self.assertEqual(self.missing_message.SerializeToString(), serialized)

  def testUnknownRepeatedEnumValue(self):
    self.assertEqual([], self.missing_message.repeated_nested_enum)

  def testUnknownPackedEnumValue(self):
    self.assertEqual([], self.missing_message.packed_nested_enum)

  @SkipCheckUnknownFieldIfCppImplementation
  def testCheckUnknownFieldValueForEnum(self):
    self.CheckUnknownField('optional_nested_enum',
                           self.message.optional_nested_enum)
    self.CheckUnknownField('repeated_nested_enum',
                           self.message.repeated_nested_enum)
    self.CheckUnknownField('packed_nested_enum',
                           self.message.packed_nested_enum)

  def testRoundTrip(self):
    new_message = missing_enum_values_pb2.TestEnumValues()
    new_message.ParseFromString(self.missing_message.SerializeToString())
    self.assertEqual(self.message, new_message)


if __name__ == '__main__':
  unittest.main()
PK�\\=!!/protobuf/internal/message_set_extensions_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/message_set_extensions.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/message_set_extensions.proto',
  package='google.protobuf.internal',
  syntax='proto2',
  serialized_pb=_b('\n5google/protobuf/internal/message_set_extensions.proto\x12\x18google.protobuf.internal\"\x1e\n\x0eTestMessageSet*\x08\x08\x04\x10\xff\xff\xff\xff\x07:\x02\x08\x01\"\xa5\x01\n\x18TestMessageSetExtension1\x12\t\n\x01i\x18\x0f \x01(\x05\x32~\n\x15message_set_extension\x12(.google.protobuf.internal.TestMessageSet\x18\xab\xff\xf6. \x01(\x0b\x32\x32.google.protobuf.internal.TestMessageSetExtension1\"\xa7\x01\n\x18TestMessageSetExtension2\x12\x0b\n\x03str\x18\x19 \x01(\t2~\n\x15message_set_extension\x12(.google.protobuf.internal.TestMessageSet\x18\xca\xff\xf6. \x01(\x0b\x32\x32.google.protobuf.internal.TestMessageSetExtension2\"(\n\x18TestMessageSetExtension3\x12\x0c\n\x04text\x18# \x01(\t:\x7f\n\x16message_set_extension3\x12(.google.protobuf.internal.TestMessageSet\x18\xdf\xff\xf6. \x01(\x0b\x32\x32.google.protobuf.internal.TestMessageSetExtension3')
)


MESSAGE_SET_EXTENSION3_FIELD_NUMBER = 98418655
message_set_extension3 = _descriptor.FieldDescriptor(
  name='message_set_extension3', full_name='google.protobuf.internal.message_set_extension3', index=0,
  number=98418655, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)


_TESTMESSAGESET = _descriptor.Descriptor(
  name='TestMessageSet',
  full_name='google.protobuf.internal.TestMessageSet',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\010\001')),
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(4, 2147483647), ],
  oneofs=[
  ],
  serialized_start=83,
  serialized_end=113,
)


_TESTMESSAGESETEXTENSION1 = _descriptor.Descriptor(
  name='TestMessageSetExtension1',
  full_name='google.protobuf.internal.TestMessageSetExtension1',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='i', full_name='google.protobuf.internal.TestMessageSetExtension1.i', index=0,
      number=15, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='message_set_extension', full_name='google.protobuf.internal.TestMessageSetExtension1.message_set_extension', index=0,
      number=98418603, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=116,
  serialized_end=281,
)


_TESTMESSAGESETEXTENSION2 = _descriptor.Descriptor(
  name='TestMessageSetExtension2',
  full_name='google.protobuf.internal.TestMessageSetExtension2',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='str', full_name='google.protobuf.internal.TestMessageSetExtension2.str', index=0,
      number=25, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='message_set_extension', full_name='google.protobuf.internal.TestMessageSetExtension2.message_set_extension', index=0,
      number=98418634, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=284,
  serialized_end=451,
)


_TESTMESSAGESETEXTENSION3 = _descriptor.Descriptor(
  name='TestMessageSetExtension3',
  full_name='google.protobuf.internal.TestMessageSetExtension3',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='text', full_name='google.protobuf.internal.TestMessageSetExtension3.text', index=0,
      number=35, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=453,
  serialized_end=493,
)

DESCRIPTOR.message_types_by_name['TestMessageSet'] = _TESTMESSAGESET
DESCRIPTOR.message_types_by_name['TestMessageSetExtension1'] = _TESTMESSAGESETEXTENSION1
DESCRIPTOR.message_types_by_name['TestMessageSetExtension2'] = _TESTMESSAGESETEXTENSION2
DESCRIPTOR.message_types_by_name['TestMessageSetExtension3'] = _TESTMESSAGESETEXTENSION3
DESCRIPTOR.extensions_by_name['message_set_extension3'] = message_set_extension3
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestMessageSet = _reflection.GeneratedProtocolMessageType('TestMessageSet', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGESET,
  __module__ = 'google.protobuf.internal.message_set_extensions_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.TestMessageSet)
  ))
_sym_db.RegisterMessage(TestMessageSet)

TestMessageSetExtension1 = _reflection.GeneratedProtocolMessageType('TestMessageSetExtension1', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGESETEXTENSION1,
  __module__ = 'google.protobuf.internal.message_set_extensions_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.TestMessageSetExtension1)
  ))
_sym_db.RegisterMessage(TestMessageSetExtension1)

TestMessageSetExtension2 = _reflection.GeneratedProtocolMessageType('TestMessageSetExtension2', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGESETEXTENSION2,
  __module__ = 'google.protobuf.internal.message_set_extensions_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.TestMessageSetExtension2)
  ))
_sym_db.RegisterMessage(TestMessageSetExtension2)

TestMessageSetExtension3 = _reflection.GeneratedProtocolMessageType('TestMessageSetExtension3', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGESETEXTENSION3,
  __module__ = 'google.protobuf.internal.message_set_extensions_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.TestMessageSetExtension3)
  ))
_sym_db.RegisterMessage(TestMessageSetExtension3)

message_set_extension3.message_type = _TESTMESSAGESETEXTENSION3
TestMessageSet.RegisterExtension(message_set_extension3)
_TESTMESSAGESETEXTENSION1.extensions_by_name['message_set_extension'].message_type = _TESTMESSAGESETEXTENSION1
TestMessageSet.RegisterExtension(_TESTMESSAGESETEXTENSION1.extensions_by_name['message_set_extension'])
_TESTMESSAGESETEXTENSION2.extensions_by_name['message_set_extension'].message_type = _TESTMESSAGESETEXTENSION2
TestMessageSet.RegisterExtension(_TESTMESSAGESETEXTENSION2.extensions_by_name['message_set_extension'])

_TESTMESSAGESET.has_options = True
_TESTMESSAGESET._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\010\001'))
# @@protoc_insertion_point(module_scope)
PK�\L��""+protobuf/internal/file_options_test_pb2.pyonu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zdd
lmZejddd
dddded�dejg�ZdZejddddddddddddddd ed!dd"dd#dd$dd%ed&dd'dd(e�Zejdd)dd*d+dd(ed$dd,ejdd-dd.dddddd/dd/ddd ed!ed0�jd1�d"dd#dd$dd%ed&dd'dd(e�gd2gd3gd4gd'dd5eddd6gd7gd8d9d:d;�Zeejd)<eejd<eje�e	jd)ejfe d<ed=d>��Z!ej"e!�ee_#ej$j%e�dS(?i����NiicCs|S(N((tx((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/file_options_test_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/file_options_test_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames0google/protobuf/internal/file_options_test.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbs�
0google/protobuf/internal/file_options_test.protogoogle.protobuf.python.internal google/protobuf/descriptor.proto"

FooOptions
foo_name (	:a
foo_options.google.protobuf.FileOptions��9 (2+.google.protobuf.python.internal.FooOptionstdependenciesi,�-tfoo_optionst	full_names+google.protobuf.python.internal.foo_optionstindextnumberttypeitcpp_typei
tlabelithas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfilet
FooOptionss*google.protobuf.python.internal.FooOptionstfilenametfieldstfoo_names3google.protobuf.python.internal.FooOptions.foo_namei	Rsutf-8t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiwtserialized_endi�t
DESCRIPTORt
__module__s.google.protobuf.internal.file_options_test_pb2(&tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbt'google_dot_protobuf_dot_descriptor__pb2tFileDescriptorR,tFOO_OPTIONS_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRt
Descriptortdecodet_FOOOPTIONStmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR tRegisterMessageRtFileOptionstRegisterExtension(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/file_options_test_pb2.pyt<module>sl%					



	PK�\�Ѵ4����%protobuf/internal/text_format_test.pynu�[���# -*- coding: utf-8 -*-
#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Test for google.protobuf.text_format."""

__author__ = 'kenton@google.com (Kenton Varda)'


import math
import re
import six
import string

try:
  import unittest2 as unittest  # PY26, pylint: disable=g-import-not-at-top
except ImportError:
  import unittest  # pylint: disable=g-import-not-at-top

from google.protobuf.internal import _parameterized

from google.protobuf import any_test_pb2
from google.protobuf import map_unittest_pb2
from google.protobuf import unittest_mset_pb2
from google.protobuf import unittest_pb2
from google.protobuf import unittest_proto3_arena_pb2
from google.protobuf.internal import api_implementation
from google.protobuf.internal import any_test_pb2 as test_extend_any
from google.protobuf.internal import message_set_extensions_pb2
from google.protobuf.internal import test_util
from google.protobuf import descriptor_pool
from google.protobuf import text_format


# Low-level nuts-n-bolts tests.
class SimpleTextFormatTests(unittest.TestCase):

  # The members of _QUOTES are formatted into a regexp template that
  # expects single characters.  Therefore it's an error (in addition to being
  # non-sensical in the first place) to try to specify a "quote mark" that is
  # more than one character.
  def testQuoteMarksAreSingleChars(self):
    for quote in text_format._QUOTES:
      self.assertEqual(1, len(quote))


# Base class with some common functionality.
class TextFormatBase(unittest.TestCase):

  def ReadGolden(self, golden_filename):
    with test_util.GoldenFile(golden_filename) as f:
      return (f.readlines() if str is bytes else  # PY3
              [golden_line.decode('utf-8') for golden_line in f])

  def CompareToGoldenFile(self, text, golden_filename):
    golden_lines = self.ReadGolden(golden_filename)
    self.assertMultiLineEqual(text, ''.join(golden_lines))

  def CompareToGoldenText(self, text, golden_text):
    self.assertEqual(text, golden_text)

  def RemoveRedundantZeros(self, text):
    # Some platforms print 1e+5 as 1e+005.  This is fine, but we need to remove
    # these zeros in order to match the golden file.
    text = text.replace('e+0','e+').replace('e+0','e+') \
               .replace('e-0','e-').replace('e-0','e-')
    # Floating point fields are printed with .0 suffix even if they are
    # actualy integer numbers.
    text = re.compile(r'\.0$', re.MULTILINE).sub('', text)
    return text


@_parameterized.Parameters((unittest_pb2), (unittest_proto3_arena_pb2))
class TextFormatTest(TextFormatBase):

  def testPrintExotic(self, message_module):
    message = message_module.TestAllTypes()
    message.repeated_int64.append(-9223372036854775808)
    message.repeated_uint64.append(18446744073709551615)
    message.repeated_double.append(123.456)
    message.repeated_double.append(1.23e22)
    message.repeated_double.append(1.23e-18)
    message.repeated_string.append('\000\001\a\b\f\n\r\t\v\\\'"')
    message.repeated_string.append(u'\u00fc\ua71f')
    self.CompareToGoldenText(
        self.RemoveRedundantZeros(text_format.MessageToString(message)),
        'repeated_int64: -9223372036854775808\n'
        'repeated_uint64: 18446744073709551615\n'
        'repeated_double: 123.456\n'
        'repeated_double: 1.23e+22\n'
        'repeated_double: 1.23e-18\n'
        'repeated_string:'
        ' "\\000\\001\\007\\010\\014\\n\\r\\t\\013\\\\\\\'\\""\n'
        'repeated_string: "\\303\\274\\352\\234\\237"\n')

  def testPrintExoticUnicodeSubclass(self, message_module):

    class UnicodeSub(six.text_type):
      pass

    message = message_module.TestAllTypes()
    message.repeated_string.append(UnicodeSub(u'\u00fc\ua71f'))
    self.CompareToGoldenText(
        text_format.MessageToString(message),
        'repeated_string: "\\303\\274\\352\\234\\237"\n')

  def testPrintNestedMessageAsOneLine(self, message_module):
    message = message_module.TestAllTypes()
    msg = message.repeated_nested_message.add()
    msg.bb = 42
    self.CompareToGoldenText(
        text_format.MessageToString(message, as_one_line=True),
        'repeated_nested_message { bb: 42 }')

  def testPrintRepeatedFieldsAsOneLine(self, message_module):
    message = message_module.TestAllTypes()
    message.repeated_int32.append(1)
    message.repeated_int32.append(1)
    message.repeated_int32.append(3)
    message.repeated_string.append('Google')
    message.repeated_string.append('Zurich')
    self.CompareToGoldenText(
        text_format.MessageToString(message, as_one_line=True),
        'repeated_int32: 1 repeated_int32: 1 repeated_int32: 3 '
        'repeated_string: "Google" repeated_string: "Zurich"')

  def testPrintNestedNewLineInStringAsOneLine(self, message_module):
    message = message_module.TestAllTypes()
    message.optional_string = 'a\nnew\nline'
    self.CompareToGoldenText(
        text_format.MessageToString(message, as_one_line=True),
        'optional_string: "a\\nnew\\nline"')

  def testPrintExoticAsOneLine(self, message_module):
    message = message_module.TestAllTypes()
    message.repeated_int64.append(-9223372036854775808)
    message.repeated_uint64.append(18446744073709551615)
    message.repeated_double.append(123.456)
    message.repeated_double.append(1.23e22)
    message.repeated_double.append(1.23e-18)
    message.repeated_string.append('\000\001\a\b\f\n\r\t\v\\\'"')
    message.repeated_string.append(u'\u00fc\ua71f')
    self.CompareToGoldenText(
        self.RemoveRedundantZeros(text_format.MessageToString(
            message, as_one_line=True)),
        'repeated_int64: -9223372036854775808'
        ' repeated_uint64: 18446744073709551615'
        ' repeated_double: 123.456'
        ' repeated_double: 1.23e+22'
        ' repeated_double: 1.23e-18'
        ' repeated_string: '
        '"\\000\\001\\007\\010\\014\\n\\r\\t\\013\\\\\\\'\\""'
        ' repeated_string: "\\303\\274\\352\\234\\237"')

  def testRoundTripExoticAsOneLine(self, message_module):
    message = message_module.TestAllTypes()
    message.repeated_int64.append(-9223372036854775808)
    message.repeated_uint64.append(18446744073709551615)
    message.repeated_double.append(123.456)
    message.repeated_double.append(1.23e22)
    message.repeated_double.append(1.23e-18)
    message.repeated_string.append('\000\001\a\b\f\n\r\t\v\\\'"')
    message.repeated_string.append(u'\u00fc\ua71f')

    # Test as_utf8 = False.
    wire_text = text_format.MessageToString(message,
                                            as_one_line=True,
                                            as_utf8=False)
    parsed_message = message_module.TestAllTypes()
    r = text_format.Parse(wire_text, parsed_message)
    self.assertIs(r, parsed_message)
    self.assertEqual(message, parsed_message)

    # Test as_utf8 = True.
    wire_text = text_format.MessageToString(message,
                                            as_one_line=True,
                                            as_utf8=True)
    parsed_message = message_module.TestAllTypes()
    r = text_format.Parse(wire_text, parsed_message)
    self.assertIs(r, parsed_message)
    self.assertEqual(message, parsed_message,
                     '\n%s != %s' % (message, parsed_message))

  def testPrintRawUtf8String(self, message_module):
    message = message_module.TestAllTypes()
    message.repeated_string.append(u'\u00fc\ua71f')
    text = text_format.MessageToString(message, as_utf8=True)
    self.CompareToGoldenText(text, 'repeated_string: "\303\274\352\234\237"\n')
    parsed_message = message_module.TestAllTypes()
    text_format.Parse(text, parsed_message)
    self.assertEqual(message, parsed_message,
                     '\n%s != %s' % (message, parsed_message))

  def testPrintFloatFormat(self, message_module):
    # Check that float_format argument is passed to sub-message formatting.
    message = message_module.NestedTestAllTypes()
    # We use 1.25 as it is a round number in binary.  The proto 32-bit float
    # will not gain additional imprecise digits as a 64-bit Python float and
    # show up in its str.  32-bit 1.2 is noisy when extended to 64-bit:
    #  >>> struct.unpack('f', struct.pack('f', 1.2))[0]
    #  1.2000000476837158
    #  >>> struct.unpack('f', struct.pack('f', 1.25))[0]
    #  1.25
    message.payload.optional_float = 1.25
    # Check rounding at 15 significant digits
    message.payload.optional_double = -.000003456789012345678
    # Check no decimal point.
    message.payload.repeated_float.append(-5642)
    # Check no trailing zeros.
    message.payload.repeated_double.append(.000078900)
    formatted_fields = ['optional_float: 1.25',
                        'optional_double: -3.45678901234568e-6',
                        'repeated_float: -5642', 'repeated_double: 7.89e-5']
    text_message = text_format.MessageToString(message, float_format='.15g')
    self.CompareToGoldenText(
        self.RemoveRedundantZeros(text_message),
        'payload {{\n  {0}\n  {1}\n  {2}\n  {3}\n}}\n'.format(
            *formatted_fields))
    # as_one_line=True is a separate code branch where float_format is passed.
    text_message = text_format.MessageToString(message,
                                               as_one_line=True,
                                               float_format='.15g')
    self.CompareToGoldenText(
        self.RemoveRedundantZeros(text_message),
        'payload {{ {0} {1} {2} {3} }}'.format(*formatted_fields))

  def testMessageToString(self, message_module):
    message = message_module.ForeignMessage()
    message.c = 123
    self.assertEqual('c: 123\n', str(message))

  def testPrintField(self, message_module):
    message = message_module.TestAllTypes()
    field = message.DESCRIPTOR.fields_by_name['optional_float']
    value = message.optional_float
    out = text_format.TextWriter(False)
    text_format.PrintField(field, value, out)
    self.assertEqual('optional_float: 0.0\n', out.getvalue())
    out.close()
    # Test Printer
    out = text_format.TextWriter(False)
    printer = text_format._Printer(out)
    printer.PrintField(field, value)
    self.assertEqual('optional_float: 0.0\n', out.getvalue())
    out.close()

  def testPrintFieldValue(self, message_module):
    message = message_module.TestAllTypes()
    field = message.DESCRIPTOR.fields_by_name['optional_float']
    value = message.optional_float
    out = text_format.TextWriter(False)
    text_format.PrintFieldValue(field, value, out)
    self.assertEqual('0.0', out.getvalue())
    out.close()
    # Test Printer
    out = text_format.TextWriter(False)
    printer = text_format._Printer(out)
    printer.PrintFieldValue(field, value)
    self.assertEqual('0.0', out.getvalue())
    out.close()

  def testParseAllFields(self, message_module):
    message = message_module.TestAllTypes()
    test_util.SetAllFields(message)
    ascii_text = text_format.MessageToString(message)

    parsed_message = message_module.TestAllTypes()
    text_format.Parse(ascii_text, parsed_message)
    self.assertEqual(message, parsed_message)
    if message_module is unittest_pb2:
      test_util.ExpectAllFieldsSet(self, message)

  def testParseAndMergeUtf8(self, message_module):
    message = message_module.TestAllTypes()
    test_util.SetAllFields(message)
    ascii_text = text_format.MessageToString(message)
    ascii_text = ascii_text.encode('utf-8')

    parsed_message = message_module.TestAllTypes()
    text_format.Parse(ascii_text, parsed_message)
    self.assertEqual(message, parsed_message)
    if message_module is unittest_pb2:
      test_util.ExpectAllFieldsSet(self, message)

    parsed_message.Clear()
    text_format.Merge(ascii_text, parsed_message)
    self.assertEqual(message, parsed_message)
    if message_module is unittest_pb2:
      test_util.ExpectAllFieldsSet(self, message)

    if six.PY2:
      msg2 = message_module.TestAllTypes()
      text = (u'optional_string: "café"')
      text_format.Merge(text, msg2)
      self.assertEqual(msg2.optional_string, u'café')
      msg2.Clear()
      text_format.Parse(text, msg2)
      self.assertEqual(msg2.optional_string, u'café')

  def testParseExotic(self, message_module):
    message = message_module.TestAllTypes()
    text = ('repeated_int64: -9223372036854775808\n'
            'repeated_uint64: 18446744073709551615\n'
            'repeated_double: 123.456\n'
            'repeated_double: 1.23e+22\n'
            'repeated_double: 1.23e-18\n'
            'repeated_string: \n'
            '"\\000\\001\\007\\010\\014\\n\\r\\t\\013\\\\\\\'\\""\n'
            'repeated_string: "foo" \'corge\' "grault"\n'
            'repeated_string: "\\303\\274\\352\\234\\237"\n'
            'repeated_string: "\\xc3\\xbc"\n'
            'repeated_string: "\xc3\xbc"\n')
    text_format.Parse(text, message)

    self.assertEqual(-9223372036854775808, message.repeated_int64[0])
    self.assertEqual(18446744073709551615, message.repeated_uint64[0])
    self.assertEqual(123.456, message.repeated_double[0])
    self.assertEqual(1.23e22, message.repeated_double[1])
    self.assertEqual(1.23e-18, message.repeated_double[2])
    self.assertEqual('\000\001\a\b\f\n\r\t\v\\\'"', message.repeated_string[0])
    self.assertEqual('foocorgegrault', message.repeated_string[1])
    self.assertEqual(u'\u00fc\ua71f', message.repeated_string[2])
    self.assertEqual(u'\u00fc', message.repeated_string[3])

  def testParseTrailingCommas(self, message_module):
    message = message_module.TestAllTypes()
    text = ('repeated_int64: 100;\n'
            'repeated_int64: 200;\n'
            'repeated_int64: 300,\n'
            'repeated_string: "one",\n'
            'repeated_string: "two";\n')
    text_format.Parse(text, message)

    self.assertEqual(100, message.repeated_int64[0])
    self.assertEqual(200, message.repeated_int64[1])
    self.assertEqual(300, message.repeated_int64[2])
    self.assertEqual(u'one', message.repeated_string[0])
    self.assertEqual(u'two', message.repeated_string[1])

  def testParseRepeatedScalarShortFormat(self, message_module):
    message = message_module.TestAllTypes()
    text = ('repeated_int64: [100, 200];\n'
            'repeated_int64: 300,\n'
            'repeated_string: ["one", "two"];\n')
    text_format.Parse(text, message)

    self.assertEqual(100, message.repeated_int64[0])
    self.assertEqual(200, message.repeated_int64[1])
    self.assertEqual(300, message.repeated_int64[2])
    self.assertEqual(u'one', message.repeated_string[0])
    self.assertEqual(u'two', message.repeated_string[1])

  def testParseRepeatedMessageShortFormat(self, message_module):
    message = message_module.TestAllTypes()
    text = ('repeated_nested_message: [{bb: 100}, {bb: 200}],\n'
            'repeated_nested_message: {bb: 300}\n'
            'repeated_nested_message [{bb: 400}];\n')
    text_format.Parse(text, message)

    self.assertEqual(100, message.repeated_nested_message[0].bb)
    self.assertEqual(200, message.repeated_nested_message[1].bb)
    self.assertEqual(300, message.repeated_nested_message[2].bb)
    self.assertEqual(400, message.repeated_nested_message[3].bb)

  def testParseEmptyText(self, message_module):
    message = message_module.TestAllTypes()
    text = ''
    text_format.Parse(text, message)
    self.assertEqual(message_module.TestAllTypes(), message)

  def testParseInvalidUtf8(self, message_module):
    message = message_module.TestAllTypes()
    text = 'repeated_string: "\\xc3\\xc3"'
    with self.assertRaises(text_format.ParseError) as e:
      text_format.Parse(text, message)
    self.assertEqual(e.exception.GetLine(), 1)
    self.assertEqual(e.exception.GetColumn(), 28)

  def testParseSingleWord(self, message_module):
    message = message_module.TestAllTypes()
    text = 'foo'
    six.assertRaisesRegex(self, text_format.ParseError, (
        r'1:1 : Message type "\w+.TestAllTypes" has no field named '
        r'"foo".'), text_format.Parse, text, message)

  def testParseUnknownField(self, message_module):
    message = message_module.TestAllTypes()
    text = 'unknown_field: 8\n'
    six.assertRaisesRegex(self, text_format.ParseError, (
        r'1:1 : Message type "\w+.TestAllTypes" has no field named '
        r'"unknown_field".'), text_format.Parse, text, message)

  def testParseBadEnumValue(self, message_module):
    message = message_module.TestAllTypes()
    text = 'optional_nested_enum: BARR'
    six.assertRaisesRegex(self, text_format.ParseError,
                          (r'1:23 : Enum type "\w+.TestAllTypes.NestedEnum" '
                           r'has no value named BARR.'), text_format.Parse,
                          text, message)

  def testParseBadIntValue(self, message_module):
    message = message_module.TestAllTypes()
    text = 'optional_int32: bork'
    six.assertRaisesRegex(self, text_format.ParseError,
                          ('1:17 : Couldn\'t parse integer: bork'),
                          text_format.Parse, text, message)

  def testParseStringFieldUnescape(self, message_module):
    message = message_module.TestAllTypes()
    text = r'''repeated_string: "\xf\x62"
               repeated_string: "\\xf\\x62"
               repeated_string: "\\\xf\\\x62"
               repeated_string: "\\\\xf\\\\x62"
               repeated_string: "\\\\\xf\\\\\x62"
               repeated_string: "\x5cx20"'''

    text_format.Parse(text, message)

    SLASH = '\\'
    self.assertEqual('\x0fb', message.repeated_string[0])
    self.assertEqual(SLASH + 'xf' + SLASH + 'x62', message.repeated_string[1])
    self.assertEqual(SLASH + '\x0f' + SLASH + 'b', message.repeated_string[2])
    self.assertEqual(SLASH + SLASH + 'xf' + SLASH + SLASH + 'x62',
                     message.repeated_string[3])
    self.assertEqual(SLASH + SLASH + '\x0f' + SLASH + SLASH + 'b',
                     message.repeated_string[4])
    self.assertEqual(SLASH + 'x20', message.repeated_string[5])

  def testMergeDuplicateScalars(self, message_module):
    message = message_module.TestAllTypes()
    text = ('optional_int32: 42 ' 'optional_int32: 67')
    r = text_format.Merge(text, message)
    self.assertIs(r, message)
    self.assertEqual(67, message.optional_int32)

  def testMergeDuplicateNestedMessageScalars(self, message_module):
    message = message_module.TestAllTypes()
    text = ('optional_nested_message { bb: 1 } '
            'optional_nested_message { bb: 2 }')
    r = text_format.Merge(text, message)
    self.assertTrue(r is message)
    self.assertEqual(2, message.optional_nested_message.bb)

  def testParseOneof(self, message_module):
    m = message_module.TestAllTypes()
    m.oneof_uint32 = 11
    m2 = message_module.TestAllTypes()
    text_format.Parse(text_format.MessageToString(m), m2)
    self.assertEqual('oneof_uint32', m2.WhichOneof('oneof_field'))

  def testMergeMultipleOneof(self, message_module):
    m_string = '\n'.join(['oneof_uint32: 11', 'oneof_string: "foo"'])
    m2 = message_module.TestAllTypes()
    text_format.Merge(m_string, m2)
    self.assertEqual('oneof_string', m2.WhichOneof('oneof_field'))

  def testParseMultipleOneof(self, message_module):
    m_string = '\n'.join(['oneof_uint32: 11', 'oneof_string: "foo"'])
    m2 = message_module.TestAllTypes()
    with self.assertRaisesRegexp(text_format.ParseError,
                                 ' is specified along with field '):
      text_format.Parse(m_string, m2)


# These are tests that aren't fundamentally specific to proto2, but are at
# the moment because of differences between the proto2 and proto3 test schemas.
# Ideally the schemas would be made more similar so these tests could pass.
class OnlyWorksWithProto2RightNowTests(TextFormatBase):

  def testPrintAllFieldsPointy(self):
    message = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(message)
    self.CompareToGoldenFile(
        self.RemoveRedundantZeros(text_format.MessageToString(
            message, pointy_brackets=True)),
        'text_format_unittest_data_pointy_oneof.txt')

  def testParseGolden(self):
    golden_text = '\n'.join(self.ReadGolden(
        'text_format_unittest_data_oneof_implemented.txt'))
    parsed_message = unittest_pb2.TestAllTypes()
    r = text_format.Parse(golden_text, parsed_message)
    self.assertIs(r, parsed_message)

    message = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(message)
    self.assertEqual(message, parsed_message)

  def testPrintAllFields(self):
    message = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(message)
    self.CompareToGoldenFile(
        self.RemoveRedundantZeros(text_format.MessageToString(message)),
        'text_format_unittest_data_oneof_implemented.txt')

  def testPrintInIndexOrder(self):
    message = unittest_pb2.TestFieldOrderings()
    message.my_string = '115'
    message.my_int = 101
    message.my_float = 111
    message.optional_nested_message.oo = 0
    message.optional_nested_message.bb = 1
    self.CompareToGoldenText(
        self.RemoveRedundantZeros(text_format.MessageToString(
            message, use_index_order=True)),
        'my_string: \"115\"\nmy_int: 101\nmy_float: 111\n'
        'optional_nested_message {\n  oo: 0\n  bb: 1\n}\n')
    self.CompareToGoldenText(
        self.RemoveRedundantZeros(text_format.MessageToString(message)),
        'my_int: 101\nmy_string: \"115\"\nmy_float: 111\n'
        'optional_nested_message {\n  bb: 1\n  oo: 0\n}\n')

  def testMergeLinesGolden(self):
    opened = self.ReadGolden('text_format_unittest_data_oneof_implemented.txt')
    parsed_message = unittest_pb2.TestAllTypes()
    r = text_format.MergeLines(opened, parsed_message)
    self.assertIs(r, parsed_message)

    message = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(message)
    self.assertEqual(message, parsed_message)

  def testParseLinesGolden(self):
    opened = self.ReadGolden('text_format_unittest_data_oneof_implemented.txt')
    parsed_message = unittest_pb2.TestAllTypes()
    r = text_format.ParseLines(opened, parsed_message)
    self.assertIs(r, parsed_message)

    message = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(message)
    self.assertEqual(message, parsed_message)

  def testPrintMap(self):
    message = map_unittest_pb2.TestMap()

    message.map_int32_int32[-123] = -456
    message.map_int64_int64[-2**33] = -2**34
    message.map_uint32_uint32[123] = 456
    message.map_uint64_uint64[2**33] = 2**34
    message.map_string_string['abc'] = '123'
    message.map_int32_foreign_message[111].c = 5

    # Maps are serialized to text format using their underlying repeated
    # representation.
    self.CompareToGoldenText(
        text_format.MessageToString(message), 'map_int32_int32 {\n'
        '  key: -123\n'
        '  value: -456\n'
        '}\n'
        'map_int64_int64 {\n'
        '  key: -8589934592\n'
        '  value: -17179869184\n'
        '}\n'
        'map_uint32_uint32 {\n'
        '  key: 123\n'
        '  value: 456\n'
        '}\n'
        'map_uint64_uint64 {\n'
        '  key: 8589934592\n'
        '  value: 17179869184\n'
        '}\n'
        'map_string_string {\n'
        '  key: "abc"\n'
        '  value: "123"\n'
        '}\n'
        'map_int32_foreign_message {\n'
        '  key: 111\n'
        '  value {\n'
        '    c: 5\n'
        '  }\n'
        '}\n')

  def testMapOrderEnforcement(self):
    message = map_unittest_pb2.TestMap()
    for letter in string.ascii_uppercase[13:26]:
      message.map_string_string[letter] = 'dummy'
    for letter in reversed(string.ascii_uppercase[0:13]):
      message.map_string_string[letter] = 'dummy'
    golden = ''.join(('map_string_string {\n  key: "%c"\n  value: "dummy"\n}\n'
                      % (letter,) for letter in string.ascii_uppercase))
    self.CompareToGoldenText(text_format.MessageToString(message), golden)

  # TODO(teboring): In c/137553523, not serializing default value for map entry
  # message has been fixed. This test needs to be disabled in order to submit
  # that cl. Add this back when c/137553523 has been submitted.
  # def testMapOrderSemantics(self):
  #   golden_lines = self.ReadGolden('map_test_data.txt')

  #   message = map_unittest_pb2.TestMap()
  #   text_format.ParseLines(golden_lines, message)
  #   candidate = text_format.MessageToString(message)
  #   # The Python implementation emits "1.0" for the double value that the C++
  #   # implementation emits as "1".
  #   candidate = candidate.replace('1.0', '1', 2)
  #   candidate = candidate.replace('0.0', '0', 2)
  #   self.assertMultiLineEqual(candidate, ''.join(golden_lines))


# Tests of proto2-only features (MessageSet, extensions, etc.).
class Proto2Tests(TextFormatBase):

  def testPrintMessageSet(self):
    message = unittest_mset_pb2.TestMessageSetContainer()
    ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension
    ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension
    message.message_set.Extensions[ext1].i = 23
    message.message_set.Extensions[ext2].str = 'foo'
    self.CompareToGoldenText(
        text_format.MessageToString(message), 'message_set {\n'
        '  [protobuf_unittest.TestMessageSetExtension1] {\n'
        '    i: 23\n'
        '  }\n'
        '  [protobuf_unittest.TestMessageSetExtension2] {\n'
        '    str: \"foo\"\n'
        '  }\n'
        '}\n')

    message = message_set_extensions_pb2.TestMessageSet()
    ext = message_set_extensions_pb2.message_set_extension3
    message.Extensions[ext].text = 'bar'
    self.CompareToGoldenText(
        text_format.MessageToString(message),
        '[google.protobuf.internal.TestMessageSetExtension3] {\n'
        '  text: \"bar\"\n'
        '}\n')

  def testPrintMessageSetByFieldNumber(self):
    out = text_format.TextWriter(False)
    message = unittest_mset_pb2.TestMessageSetContainer()
    ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension
    ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension
    message.message_set.Extensions[ext1].i = 23
    message.message_set.Extensions[ext2].str = 'foo'
    text_format.PrintMessage(message, out, use_field_number=True)
    self.CompareToGoldenText(out.getvalue(), '1 {\n'
                             '  1545008 {\n'
                             '    15: 23\n'
                             '  }\n'
                             '  1547769 {\n'
                             '    25: \"foo\"\n'
                             '  }\n'
                             '}\n')
    out.close()

  def testPrintMessageSetAsOneLine(self):
    message = unittest_mset_pb2.TestMessageSetContainer()
    ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension
    ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension
    message.message_set.Extensions[ext1].i = 23
    message.message_set.Extensions[ext2].str = 'foo'
    self.CompareToGoldenText(
        text_format.MessageToString(message, as_one_line=True),
        'message_set {'
        ' [protobuf_unittest.TestMessageSetExtension1] {'
        ' i: 23'
        ' }'
        ' [protobuf_unittest.TestMessageSetExtension2] {'
        ' str: \"foo\"'
        ' }'
        ' }')

  def testParseMessageSet(self):
    message = unittest_pb2.TestAllTypes()
    text = ('repeated_uint64: 1\n' 'repeated_uint64: 2\n')
    text_format.Parse(text, message)
    self.assertEqual(1, message.repeated_uint64[0])
    self.assertEqual(2, message.repeated_uint64[1])

    message = unittest_mset_pb2.TestMessageSetContainer()
    text = ('message_set {\n'
            '  [protobuf_unittest.TestMessageSetExtension1] {\n'
            '    i: 23\n'
            '  }\n'
            '  [protobuf_unittest.TestMessageSetExtension2] {\n'
            '    str: \"foo\"\n'
            '  }\n'
            '}\n')
    text_format.Parse(text, message)
    ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension
    ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension
    self.assertEqual(23, message.message_set.Extensions[ext1].i)
    self.assertEqual('foo', message.message_set.Extensions[ext2].str)

  def testExtensionInsideAnyMessage(self):
    message = test_extend_any.TestAny()
    text = ('value {\n'
            '  [type.googleapis.com/google.protobuf.internal.TestAny] {\n'
            '    [google.protobuf.internal.TestAnyExtension1.extension1] {\n'
            '      i: 10\n'
            '    }\n'
            '  }\n'
            '}\n')
    text_format.Merge(text, message, descriptor_pool=descriptor_pool.Default())
    self.CompareToGoldenText(
        text_format.MessageToString(
            message, descriptor_pool=descriptor_pool.Default()),
        text)

  def testParseMessageByFieldNumber(self):
    message = unittest_pb2.TestAllTypes()
    text = ('34: 1\n' 'repeated_uint64: 2\n')
    text_format.Parse(text, message, allow_field_number=True)
    self.assertEqual(1, message.repeated_uint64[0])
    self.assertEqual(2, message.repeated_uint64[1])

    message = unittest_mset_pb2.TestMessageSetContainer()
    text = ('1 {\n'
            '  1545008 {\n'
            '    15: 23\n'
            '  }\n'
            '  1547769 {\n'
            '    25: \"foo\"\n'
            '  }\n'
            '}\n')
    text_format.Parse(text, message, allow_field_number=True)
    ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension
    ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension
    self.assertEqual(23, message.message_set.Extensions[ext1].i)
    self.assertEqual('foo', message.message_set.Extensions[ext2].str)

    # Can't parse field number without set allow_field_number=True.
    message = unittest_pb2.TestAllTypes()
    text = '34:1\n'
    six.assertRaisesRegex(self, text_format.ParseError, (
        r'1:1 : Message type "\w+.TestAllTypes" has no field named '
        r'"34".'), text_format.Parse, text, message)

    # Can't parse if field number is not found.
    text = '1234:1\n'
    six.assertRaisesRegex(
        self,
        text_format.ParseError,
        (r'1:1 : Message type "\w+.TestAllTypes" has no field named '
         r'"1234".'),
        text_format.Parse,
        text,
        message,
        allow_field_number=True)

  def testPrintAllExtensions(self):
    message = unittest_pb2.TestAllExtensions()
    test_util.SetAllExtensions(message)
    self.CompareToGoldenFile(
        self.RemoveRedundantZeros(text_format.MessageToString(message)),
        'text_format_unittest_extensions_data.txt')

  def testPrintAllExtensionsPointy(self):
    message = unittest_pb2.TestAllExtensions()
    test_util.SetAllExtensions(message)
    self.CompareToGoldenFile(
        self.RemoveRedundantZeros(text_format.MessageToString(
            message, pointy_brackets=True)),
        'text_format_unittest_extensions_data_pointy.txt')

  def testParseGoldenExtensions(self):
    golden_text = '\n'.join(self.ReadGolden(
        'text_format_unittest_extensions_data.txt'))
    parsed_message = unittest_pb2.TestAllExtensions()
    text_format.Parse(golden_text, parsed_message)

    message = unittest_pb2.TestAllExtensions()
    test_util.SetAllExtensions(message)
    self.assertEqual(message, parsed_message)

  def testParseAllExtensions(self):
    message = unittest_pb2.TestAllExtensions()
    test_util.SetAllExtensions(message)
    ascii_text = text_format.MessageToString(message)

    parsed_message = unittest_pb2.TestAllExtensions()
    text_format.Parse(ascii_text, parsed_message)
    self.assertEqual(message, parsed_message)

  def testParseAllowedUnknownExtension(self):
    # Skip over unknown extension correctly.
    message = unittest_mset_pb2.TestMessageSetContainer()
    text = ('message_set {\n'
            '  [unknown_extension] {\n'
            '    i: 23\n'
            '    bin: "\xe0"'
            '    [nested_unknown_ext]: {\n'
            '      i: 23\n'
            '      x: x\n'
            '      test: "test_string"\n'
            '      floaty_float: -0.315\n'
            '      num: -inf\n'
            '      multiline_str: "abc"\n'
            '          "def"\n'
            '          "xyz."\n'
            '      [nested_unknown_ext.ext]: <\n'
            '        i: 23\n'
            '        i: 24\n'
            '        pointfloat: .3\n'
            '        test: "test_string"\n'
            '        floaty_float: -0.315\n'
            '        num: -inf\n'
            '        long_string: "test" "test2" \n'
            '      >\n'
            '    }\n'
            '  }\n'
            '  [unknown_extension]: 5\n'
            '}\n')
    text_format.Parse(text, message, allow_unknown_extension=True)
    golden = 'message_set {\n}\n'
    self.CompareToGoldenText(text_format.MessageToString(message), golden)

    # Catch parse errors in unknown extension.
    message = unittest_mset_pb2.TestMessageSetContainer()
    malformed = ('message_set {\n'
                 '  [unknown_extension] {\n'
                 '    i:\n'  # Missing value.
                 '  }\n'
                 '}\n')
    six.assertRaisesRegex(self,
                          text_format.ParseError,
                          'Invalid field value: }',
                          text_format.Parse,
                          malformed,
                          message,
                          allow_unknown_extension=True)

    message = unittest_mset_pb2.TestMessageSetContainer()
    malformed = ('message_set {\n'
                 '  [unknown_extension] {\n'
                 '    str: "malformed string\n'  # Missing closing quote.
                 '  }\n'
                 '}\n')
    six.assertRaisesRegex(self,
                          text_format.ParseError,
                          'Invalid field value: "',
                          text_format.Parse,
                          malformed,
                          message,
                          allow_unknown_extension=True)

    message = unittest_mset_pb2.TestMessageSetContainer()
    malformed = ('message_set {\n'
                 '  [unknown_extension] {\n'
                 '    str: "malformed\n multiline\n string\n'
                 '  }\n'
                 '}\n')
    six.assertRaisesRegex(self,
                          text_format.ParseError,
                          'Invalid field value: "',
                          text_format.Parse,
                          malformed,
                          message,
                          allow_unknown_extension=True)

    message = unittest_mset_pb2.TestMessageSetContainer()
    malformed = ('message_set {\n'
                 '  [malformed_extension] <\n'
                 '    i: -5\n'
                 '  \n'  # Missing '>' here.
                 '}\n')
    six.assertRaisesRegex(self,
                          text_format.ParseError,
                          '5:1 : Expected ">".',
                          text_format.Parse,
                          malformed,
                          message,
                          allow_unknown_extension=True)

    # Don't allow unknown fields with allow_unknown_extension=True.
    message = unittest_mset_pb2.TestMessageSetContainer()
    malformed = ('message_set {\n'
                 '  unknown_field: true\n'
                 '  \n'  # Missing '>' here.
                 '}\n')
    six.assertRaisesRegex(self,
                          text_format.ParseError,
                          ('2:3 : Message type '
                           '"proto2_wireformat_unittest.TestMessageSet" has no'
                           ' field named "unknown_field".'),
                          text_format.Parse,
                          malformed,
                          message,
                          allow_unknown_extension=True)

    # Parse known extension correcty.
    message = unittest_mset_pb2.TestMessageSetContainer()
    text = ('message_set {\n'
            '  [protobuf_unittest.TestMessageSetExtension1] {\n'
            '    i: 23\n'
            '  }\n'
            '  [protobuf_unittest.TestMessageSetExtension2] {\n'
            '    str: \"foo\"\n'
            '  }\n'
            '}\n')
    text_format.Parse(text, message, allow_unknown_extension=True)
    ext1 = unittest_mset_pb2.TestMessageSetExtension1.message_set_extension
    ext2 = unittest_mset_pb2.TestMessageSetExtension2.message_set_extension
    self.assertEqual(23, message.message_set.Extensions[ext1].i)
    self.assertEqual('foo', message.message_set.Extensions[ext2].str)

  def testParseBadIdentifier(self):
    message = unittest_pb2.TestAllTypes()
    text = ('optional_nested_message { "bb": 1 }')
    with self.assertRaises(text_format.ParseError) as e:
      text_format.Parse(text, message)
    self.assertEqual(str(e.exception),
                     '1:27 : Expected identifier or number, got "bb".')

  def testParseBadExtension(self):
    message = unittest_pb2.TestAllExtensions()
    text = '[unknown_extension]: 8\n'
    six.assertRaisesRegex(self, text_format.ParseError,
                          '1:2 : Extension "unknown_extension" not registered.',
                          text_format.Parse, text, message)
    message = unittest_pb2.TestAllTypes()
    six.assertRaisesRegex(self, text_format.ParseError, (
        '1:2 : Message type "protobuf_unittest.TestAllTypes" does not have '
        'extensions.'), text_format.Parse, text, message)

  def testParseNumericUnknownEnum(self):
    message = unittest_pb2.TestAllTypes()
    text = 'optional_nested_enum: 100'
    six.assertRaisesRegex(self, text_format.ParseError,
                          (r'1:23 : Enum type "\w+.TestAllTypes.NestedEnum" '
                           r'has no value with number 100.'), text_format.Parse,
                          text, message)

  def testMergeDuplicateExtensionScalars(self):
    message = unittest_pb2.TestAllExtensions()
    text = ('[protobuf_unittest.optional_int32_extension]: 42 '
            '[protobuf_unittest.optional_int32_extension]: 67')
    text_format.Merge(text, message)
    self.assertEqual(67,
                     message.Extensions[unittest_pb2.optional_int32_extension])

  def testParseDuplicateExtensionScalars(self):
    message = unittest_pb2.TestAllExtensions()
    text = ('[protobuf_unittest.optional_int32_extension]: 42 '
            '[protobuf_unittest.optional_int32_extension]: 67')
    six.assertRaisesRegex(self, text_format.ParseError, (
        '1:96 : Message type "protobuf_unittest.TestAllExtensions" '
        'should not have multiple '
        '"protobuf_unittest.optional_int32_extension" extensions.'),
                          text_format.Parse, text, message)

  def testParseDuplicateNestedMessageScalars(self):
    message = unittest_pb2.TestAllTypes()
    text = ('optional_nested_message { bb: 1 } '
            'optional_nested_message { bb: 2 }')
    six.assertRaisesRegex(self, text_format.ParseError, (
        '1:65 : Message type "protobuf_unittest.TestAllTypes.NestedMessage" '
        'should not have multiple "bb" fields.'), text_format.Parse, text,
                          message)

  def testParseDuplicateScalars(self):
    message = unittest_pb2.TestAllTypes()
    text = ('optional_int32: 42 ' 'optional_int32: 67')
    six.assertRaisesRegex(self, text_format.ParseError, (
        '1:36 : Message type "protobuf_unittest.TestAllTypes" should not '
        'have multiple "optional_int32" fields.'), text_format.Parse, text,
                          message)

  def testParseGroupNotClosed(self):
    message = unittest_pb2.TestAllTypes()
    text = 'RepeatedGroup: <'
    six.assertRaisesRegex(self, text_format.ParseError, '1:16 : Expected ">".',
                          text_format.Parse, text, message)
    text = 'RepeatedGroup: {'
    six.assertRaisesRegex(self, text_format.ParseError, '1:16 : Expected "}".',
                          text_format.Parse, text, message)

  def testParseEmptyGroup(self):
    message = unittest_pb2.TestAllTypes()
    text = 'OptionalGroup: {}'
    text_format.Parse(text, message)
    self.assertTrue(message.HasField('optionalgroup'))

    message.Clear()

    message = unittest_pb2.TestAllTypes()
    text = 'OptionalGroup: <>'
    text_format.Parse(text, message)
    self.assertTrue(message.HasField('optionalgroup'))

  # Maps aren't really proto2-only, but our test schema only has maps for
  # proto2.
  def testParseMap(self):
    text = ('map_int32_int32 {\n'
            '  key: -123\n'
            '  value: -456\n'
            '}\n'
            'map_int64_int64 {\n'
            '  key: -8589934592\n'
            '  value: -17179869184\n'
            '}\n'
            'map_uint32_uint32 {\n'
            '  key: 123\n'
            '  value: 456\n'
            '}\n'
            'map_uint64_uint64 {\n'
            '  key: 8589934592\n'
            '  value: 17179869184\n'
            '}\n'
            'map_string_string {\n'
            '  key: "abc"\n'
            '  value: "123"\n'
            '}\n'
            'map_int32_foreign_message {\n'
            '  key: 111\n'
            '  value {\n'
            '    c: 5\n'
            '  }\n'
            '}\n')
    message = map_unittest_pb2.TestMap()
    text_format.Parse(text, message)

    self.assertEqual(-456, message.map_int32_int32[-123])
    self.assertEqual(-2**34, message.map_int64_int64[-2**33])
    self.assertEqual(456, message.map_uint32_uint32[123])
    self.assertEqual(2**34, message.map_uint64_uint64[2**33])
    self.assertEqual('123', message.map_string_string['abc'])
    self.assertEqual(5, message.map_int32_foreign_message[111].c)


class Proto3Tests(unittest.TestCase):

  def testPrintMessageExpandAny(self):
    packed_message = unittest_pb2.OneString()
    packed_message.data = 'string'
    message = any_test_pb2.TestAny()
    message.any_value.Pack(packed_message)
    self.assertEqual(
        text_format.MessageToString(message,
                                    descriptor_pool=descriptor_pool.Default()),
        'any_value {\n'
        '  [type.googleapis.com/protobuf_unittest.OneString] {\n'
        '    data: "string"\n'
        '  }\n'
        '}\n')

  def testPrintMessageExpandAnyRepeated(self):
    packed_message = unittest_pb2.OneString()
    message = any_test_pb2.TestAny()
    packed_message.data = 'string0'
    message.repeated_any_value.add().Pack(packed_message)
    packed_message.data = 'string1'
    message.repeated_any_value.add().Pack(packed_message)
    self.assertEqual(
        text_format.MessageToString(message),
        'repeated_any_value {\n'
        '  [type.googleapis.com/protobuf_unittest.OneString] {\n'
        '    data: "string0"\n'
        '  }\n'
        '}\n'
        'repeated_any_value {\n'
        '  [type.googleapis.com/protobuf_unittest.OneString] {\n'
        '    data: "string1"\n'
        '  }\n'
        '}\n')

  def testPrintMessageExpandAnyDescriptorPoolMissingType(self):
    packed_message = unittest_pb2.OneString()
    packed_message.data = 'string'
    message = any_test_pb2.TestAny()
    message.any_value.Pack(packed_message)
    empty_pool = descriptor_pool.DescriptorPool()
    self.assertEqual(
        text_format.MessageToString(message, descriptor_pool=empty_pool),
        'any_value {\n'
        '  type_url: "type.googleapis.com/protobuf_unittest.OneString"\n'
        '  value: "\\n\\006string"\n'
        '}\n')

  def testPrintMessageExpandAnyPointyBrackets(self):
    packed_message = unittest_pb2.OneString()
    packed_message.data = 'string'
    message = any_test_pb2.TestAny()
    message.any_value.Pack(packed_message)
    self.assertEqual(
        text_format.MessageToString(message,
                                    pointy_brackets=True),
        'any_value <\n'
        '  [type.googleapis.com/protobuf_unittest.OneString] <\n'
        '    data: "string"\n'
        '  >\n'
        '>\n')

  def testPrintMessageExpandAnyAsOneLine(self):
    packed_message = unittest_pb2.OneString()
    packed_message.data = 'string'
    message = any_test_pb2.TestAny()
    message.any_value.Pack(packed_message)
    self.assertEqual(
        text_format.MessageToString(message,
                                    as_one_line=True),
        'any_value {'
        ' [type.googleapis.com/protobuf_unittest.OneString]'
        ' { data: "string" } '
        '}')

  def testPrintMessageExpandAnyAsOneLinePointyBrackets(self):
    packed_message = unittest_pb2.OneString()
    packed_message.data = 'string'
    message = any_test_pb2.TestAny()
    message.any_value.Pack(packed_message)
    self.assertEqual(
        text_format.MessageToString(message,
                                    as_one_line=True,
                                    pointy_brackets=True,
                                    descriptor_pool=descriptor_pool.Default()),
        'any_value <'
        ' [type.googleapis.com/protobuf_unittest.OneString]'
        ' < data: "string" > '
        '>')

  def testUnknownEnums(self):
    message = unittest_proto3_arena_pb2.TestAllTypes()
    message2 = unittest_proto3_arena_pb2.TestAllTypes()
    message.optional_nested_enum = 999
    text_string = text_format.MessageToString(message)
    text_format.Parse(text_string, message2)
    self.assertEqual(999, message2.optional_nested_enum)

  def testMergeExpandedAny(self):
    message = any_test_pb2.TestAny()
    text = ('any_value {\n'
            '  [type.googleapis.com/protobuf_unittest.OneString] {\n'
            '    data: "string"\n'
            '  }\n'
            '}\n')
    text_format.Merge(text, message)
    packed_message = unittest_pb2.OneString()
    message.any_value.Unpack(packed_message)
    self.assertEqual('string', packed_message.data)
    message.Clear()
    text_format.Parse(text, message)
    packed_message = unittest_pb2.OneString()
    message.any_value.Unpack(packed_message)
    self.assertEqual('string', packed_message.data)

  def testMergeExpandedAnyRepeated(self):
    message = any_test_pb2.TestAny()
    text = ('repeated_any_value {\n'
            '  [type.googleapis.com/protobuf_unittest.OneString] {\n'
            '    data: "string0"\n'
            '  }\n'
            '}\n'
            'repeated_any_value {\n'
            '  [type.googleapis.com/protobuf_unittest.OneString] {\n'
            '    data: "string1"\n'
            '  }\n'
            '}\n')
    text_format.Merge(text, message)
    packed_message = unittest_pb2.OneString()
    message.repeated_any_value[0].Unpack(packed_message)
    self.assertEqual('string0', packed_message.data)
    message.repeated_any_value[1].Unpack(packed_message)
    self.assertEqual('string1', packed_message.data)

  def testMergeExpandedAnyPointyBrackets(self):
    message = any_test_pb2.TestAny()
    text = ('any_value {\n'
            '  [type.googleapis.com/protobuf_unittest.OneString] <\n'
            '    data: "string"\n'
            '  >\n'
            '}\n')
    text_format.Merge(text, message)
    packed_message = unittest_pb2.OneString()
    message.any_value.Unpack(packed_message)
    self.assertEqual('string', packed_message.data)

  def testMergeAlternativeUrl(self):
    message = any_test_pb2.TestAny()
    text = ('any_value {\n'
            '  [type.otherapi.com/protobuf_unittest.OneString] {\n'
            '    data: "string"\n'
            '  }\n'
            '}\n')
    text_format.Merge(text, message)
    packed_message = unittest_pb2.OneString()
    self.assertEqual('type.otherapi.com/protobuf_unittest.OneString',
                     message.any_value.type_url)

  def testMergeExpandedAnyDescriptorPoolMissingType(self):
    message = any_test_pb2.TestAny()
    text = ('any_value {\n'
            '  [type.googleapis.com/protobuf_unittest.OneString] {\n'
            '    data: "string"\n'
            '  }\n'
            '}\n')
    with self.assertRaises(text_format.ParseError) as e:
      empty_pool = descriptor_pool.DescriptorPool()
      text_format.Merge(text, message, descriptor_pool=empty_pool)
    self.assertEqual(
        str(e.exception),
        'Type protobuf_unittest.OneString not found in descriptor pool')

  def testMergeUnexpandedAny(self):
    text = ('any_value {\n'
            '  type_url: "type.googleapis.com/protobuf_unittest.OneString"\n'
            '  value: "\\n\\006string"\n'
            '}\n')
    message = any_test_pb2.TestAny()
    text_format.Merge(text, message)
    packed_message = unittest_pb2.OneString()
    message.any_value.Unpack(packed_message)
    self.assertEqual('string', packed_message.data)

  def testMergeMissingAnyEndToken(self):
    message = any_test_pb2.TestAny()
    text = ('any_value {\n'
            '  [type.googleapis.com/protobuf_unittest.OneString] {\n'
            '    data: "string"\n')
    with self.assertRaises(text_format.ParseError) as e:
      text_format.Merge(text, message)
    self.assertEqual(str(e.exception), '3:11 : Expected "}".')


class TokenizerTest(unittest.TestCase):

  def testSimpleTokenCases(self):
    text = ('identifier1:"string1"\n     \n\n'
            'identifier2 : \n \n123  \n  identifier3 :\'string\'\n'
            'identifiER_4 : 1.1e+2 ID5:-0.23 ID6:\'aaaa\\\'bbbb\'\n'
            'ID7 : "aa\\"bb"\n\n\n\n ID8: {A:inf B:-inf C:true D:false}\n'
            'ID9: 22 ID10: -111111111111111111 ID11: -22\n'
            'ID12: 2222222222222222222 ID13: 1.23456f ID14: 1.2e+2f '
            'false_bool:  0 true_BOOL:t \n true_bool1:  1 false_BOOL1:f '
            'False_bool: False True_bool: True X:iNf Y:-inF Z:nAN')
    tokenizer = text_format.Tokenizer(text.splitlines())
    methods = [(tokenizer.ConsumeIdentifier, 'identifier1'), ':',
               (tokenizer.ConsumeString, 'string1'),
               (tokenizer.ConsumeIdentifier, 'identifier2'), ':',
               (tokenizer.ConsumeInteger, 123),
               (tokenizer.ConsumeIdentifier, 'identifier3'), ':',
               (tokenizer.ConsumeString, 'string'),
               (tokenizer.ConsumeIdentifier, 'identifiER_4'), ':',
               (tokenizer.ConsumeFloat, 1.1e+2),
               (tokenizer.ConsumeIdentifier, 'ID5'), ':',
               (tokenizer.ConsumeFloat, -0.23),
               (tokenizer.ConsumeIdentifier, 'ID6'), ':',
               (tokenizer.ConsumeString, 'aaaa\'bbbb'),
               (tokenizer.ConsumeIdentifier, 'ID7'), ':',
               (tokenizer.ConsumeString, 'aa\"bb'),
               (tokenizer.ConsumeIdentifier, 'ID8'), ':', '{',
               (tokenizer.ConsumeIdentifier, 'A'), ':',
               (tokenizer.ConsumeFloat, float('inf')),
               (tokenizer.ConsumeIdentifier, 'B'), ':',
               (tokenizer.ConsumeFloat, -float('inf')),
               (tokenizer.ConsumeIdentifier, 'C'), ':',
               (tokenizer.ConsumeBool, True),
               (tokenizer.ConsumeIdentifier, 'D'), ':',
               (tokenizer.ConsumeBool, False), '}',
               (tokenizer.ConsumeIdentifier, 'ID9'), ':',
               (tokenizer.ConsumeInteger, 22),
               (tokenizer.ConsumeIdentifier, 'ID10'), ':',
               (tokenizer.ConsumeInteger, -111111111111111111),
               (tokenizer.ConsumeIdentifier, 'ID11'), ':',
               (tokenizer.ConsumeInteger, -22),
               (tokenizer.ConsumeIdentifier, 'ID12'), ':',
               (tokenizer.ConsumeInteger, 2222222222222222222),
               (tokenizer.ConsumeIdentifier, 'ID13'), ':',
               (tokenizer.ConsumeFloat, 1.23456),
               (tokenizer.ConsumeIdentifier, 'ID14'), ':',
               (tokenizer.ConsumeFloat, 1.2e+2),
               (tokenizer.ConsumeIdentifier, 'false_bool'), ':',
               (tokenizer.ConsumeBool, False),
               (tokenizer.ConsumeIdentifier, 'true_BOOL'), ':',
               (tokenizer.ConsumeBool, True),
               (tokenizer.ConsumeIdentifier, 'true_bool1'), ':',
               (tokenizer.ConsumeBool, True),
               (tokenizer.ConsumeIdentifier, 'false_BOOL1'), ':',
               (tokenizer.ConsumeBool, False),
               (tokenizer.ConsumeIdentifier, 'False_bool'), ':',
               (tokenizer.ConsumeBool, False),
               (tokenizer.ConsumeIdentifier, 'True_bool'), ':',
               (tokenizer.ConsumeBool, True),
               (tokenizer.ConsumeIdentifier, 'X'), ':',
               (tokenizer.ConsumeFloat, float('inf')),
               (tokenizer.ConsumeIdentifier, 'Y'), ':',
               (tokenizer.ConsumeFloat, float('-inf')),
               (tokenizer.ConsumeIdentifier, 'Z'), ':',
               (tokenizer.ConsumeFloat, float('nan'))]

    i = 0
    while not tokenizer.AtEnd():
      m = methods[i]
      if isinstance(m, str):
        token = tokenizer.token
        self.assertEqual(token, m)
        tokenizer.NextToken()
      elif isinstance(m[1], float) and math.isnan(m[1]):
        self.assertTrue(math.isnan(m[0]()))
      else:
        self.assertEqual(m[1], m[0]())
      i += 1

  def testConsumeAbstractIntegers(self):
    # This test only tests the failures in the integer parsing methods as well
    # as the '0' special cases.
    int64_max = (1 << 63) - 1
    uint32_max = (1 << 32) - 1
    text = '-1 %d %d' % (uint32_max + 1, int64_max + 1)
    tokenizer = text_format.Tokenizer(text.splitlines())
    self.assertEqual(-1, tokenizer.ConsumeInteger())

    self.assertEqual(uint32_max + 1, tokenizer.ConsumeInteger())

    self.assertEqual(int64_max + 1, tokenizer.ConsumeInteger())
    self.assertTrue(tokenizer.AtEnd())

    text = '-0 0 0 1.2'
    tokenizer = text_format.Tokenizer(text.splitlines())
    self.assertEqual(0, tokenizer.ConsumeInteger())
    self.assertEqual(0, tokenizer.ConsumeInteger())
    self.assertEqual(True, tokenizer.TryConsumeInteger())
    self.assertEqual(False, tokenizer.TryConsumeInteger())
    with self.assertRaises(text_format.ParseError):
      tokenizer.ConsumeInteger()
    self.assertEqual(1.2, tokenizer.ConsumeFloat())
    self.assertTrue(tokenizer.AtEnd())

  def testConsumeIntegers(self):
    # This test only tests the failures in the integer parsing methods as well
    # as the '0' special cases.
    int64_max = (1 << 63) - 1
    uint32_max = (1 << 32) - 1
    text = '-1 %d %d' % (uint32_max + 1, int64_max + 1)
    tokenizer = text_format.Tokenizer(text.splitlines())
    self.assertRaises(text_format.ParseError,
                      text_format._ConsumeUint32, tokenizer)
    self.assertRaises(text_format.ParseError,
                      text_format._ConsumeUint64, tokenizer)
    self.assertEqual(-1, text_format._ConsumeInt32(tokenizer))

    self.assertRaises(text_format.ParseError,
                      text_format._ConsumeUint32, tokenizer)
    self.assertRaises(text_format.ParseError,
                      text_format._ConsumeInt32, tokenizer)
    self.assertEqual(uint32_max + 1, text_format._ConsumeInt64(tokenizer))

    self.assertRaises(text_format.ParseError,
                      text_format._ConsumeInt64, tokenizer)
    self.assertEqual(int64_max + 1, text_format._ConsumeUint64(tokenizer))
    self.assertTrue(tokenizer.AtEnd())

    text = '-0 -0 0 0'
    tokenizer = text_format.Tokenizer(text.splitlines())
    self.assertEqual(0, text_format._ConsumeUint32(tokenizer))
    self.assertEqual(0, text_format._ConsumeUint64(tokenizer))
    self.assertEqual(0, text_format._ConsumeUint32(tokenizer))
    self.assertEqual(0, text_format._ConsumeUint64(tokenizer))
    self.assertTrue(tokenizer.AtEnd())

  def testConsumeByteString(self):
    text = '"string1\''
    tokenizer = text_format.Tokenizer(text.splitlines())
    self.assertRaises(text_format.ParseError, tokenizer.ConsumeByteString)

    text = 'string1"'
    tokenizer = text_format.Tokenizer(text.splitlines())
    self.assertRaises(text_format.ParseError, tokenizer.ConsumeByteString)

    text = '\n"\\xt"'
    tokenizer = text_format.Tokenizer(text.splitlines())
    self.assertRaises(text_format.ParseError, tokenizer.ConsumeByteString)

    text = '\n"\\"'
    tokenizer = text_format.Tokenizer(text.splitlines())
    self.assertRaises(text_format.ParseError, tokenizer.ConsumeByteString)

    text = '\n"\\x"'
    tokenizer = text_format.Tokenizer(text.splitlines())
    self.assertRaises(text_format.ParseError, tokenizer.ConsumeByteString)

  def testConsumeBool(self):
    text = 'not-a-bool'
    tokenizer = text_format.Tokenizer(text.splitlines())
    self.assertRaises(text_format.ParseError, tokenizer.ConsumeBool)

  def testSkipComment(self):
    tokenizer = text_format.Tokenizer('# some comment'.splitlines())
    self.assertTrue(tokenizer.AtEnd())
    self.assertRaises(text_format.ParseError, tokenizer.ConsumeComment)

  def testConsumeComment(self):
    tokenizer = text_format.Tokenizer('# some comment'.splitlines(),
                                      skip_comments=False)
    self.assertFalse(tokenizer.AtEnd())
    self.assertEqual('# some comment', tokenizer.ConsumeComment())
    self.assertTrue(tokenizer.AtEnd())

  def testConsumeTwoComments(self):
    text = '# some comment\n# another comment'
    tokenizer = text_format.Tokenizer(text.splitlines(), skip_comments=False)
    self.assertEqual('# some comment', tokenizer.ConsumeComment())
    self.assertFalse(tokenizer.AtEnd())
    self.assertEqual('# another comment', tokenizer.ConsumeComment())
    self.assertTrue(tokenizer.AtEnd())

  def testConsumeTrailingComment(self):
    text = 'some_number: 4\n# some comment'
    tokenizer = text_format.Tokenizer(text.splitlines(), skip_comments=False)
    self.assertRaises(text_format.ParseError, tokenizer.ConsumeComment)

    self.assertEqual('some_number', tokenizer.ConsumeIdentifier())
    self.assertEqual(tokenizer.token, ':')
    tokenizer.NextToken()
    self.assertRaises(text_format.ParseError, tokenizer.ConsumeComment)
    self.assertEqual(4, tokenizer.ConsumeInteger())
    self.assertFalse(tokenizer.AtEnd())

    self.assertEqual('# some comment', tokenizer.ConsumeComment())
    self.assertTrue(tokenizer.AtEnd())

  def testConsumeLineComment(self):
    tokenizer = text_format.Tokenizer('# some comment'.splitlines(),
                                      skip_comments=False)
    self.assertFalse(tokenizer.AtEnd())
    self.assertEqual((False, '# some comment'),
                     tokenizer.ConsumeCommentOrTrailingComment())
    self.assertTrue(tokenizer.AtEnd())

  def testConsumeTwoLineComments(self):
    text = '# some comment\n# another comment'
    tokenizer = text_format.Tokenizer(text.splitlines(), skip_comments=False)
    self.assertEqual((False, '# some comment'),
                     tokenizer.ConsumeCommentOrTrailingComment())
    self.assertFalse(tokenizer.AtEnd())
    self.assertEqual((False, '# another comment'),
                     tokenizer.ConsumeCommentOrTrailingComment())
    self.assertTrue(tokenizer.AtEnd())

  def testConsumeAndCheckTrailingComment(self):
    text = 'some_number: 4  # some comment'  # trailing comment on the same line
    tokenizer = text_format.Tokenizer(text.splitlines(), skip_comments=False)
    self.assertRaises(text_format.ParseError,
                      tokenizer.ConsumeCommentOrTrailingComment)

    self.assertEqual('some_number', tokenizer.ConsumeIdentifier())
    self.assertEqual(tokenizer.token, ':')
    tokenizer.NextToken()
    self.assertRaises(text_format.ParseError,
                      tokenizer.ConsumeCommentOrTrailingComment)
    self.assertEqual(4, tokenizer.ConsumeInteger())
    self.assertFalse(tokenizer.AtEnd())

    self.assertEqual((True, '# some comment'),
                     tokenizer.ConsumeCommentOrTrailingComment())
    self.assertTrue(tokenizer.AtEnd())

  def testHashinComment(self):
    text = 'some_number: 4  # some comment # not a new comment'
    tokenizer = text_format.Tokenizer(text.splitlines(), skip_comments=False)
    self.assertEqual('some_number', tokenizer.ConsumeIdentifier())
    self.assertEqual(tokenizer.token, ':')
    tokenizer.NextToken()
    self.assertEqual(4, tokenizer.ConsumeInteger())
    self.assertEqual((True, '# some comment # not a new comment'),
                     tokenizer.ConsumeCommentOrTrailingComment())
    self.assertTrue(tokenizer.AtEnd())


# Tests for pretty printer functionality.
@_parameterized.Parameters((unittest_pb2), (unittest_proto3_arena_pb2))
class PrettyPrinterTest(TextFormatBase):

  def testPrettyPrintNoMatch(self, message_module):

    def printer(message, indent, as_one_line):
      del message, indent, as_one_line
      return None

    message = message_module.TestAllTypes()
    msg = message.repeated_nested_message.add()
    msg.bb = 42
    self.CompareToGoldenText(
        text_format.MessageToString(
            message, as_one_line=True, message_formatter=printer),
        'repeated_nested_message { bb: 42 }')

  def testPrettyPrintOneLine(self, message_module):

    def printer(m, indent, as_one_line):
      del indent, as_one_line
      if m.DESCRIPTOR == message_module.TestAllTypes.NestedMessage.DESCRIPTOR:
        return 'My lucky number is %s' % m.bb

    message = message_module.TestAllTypes()
    msg = message.repeated_nested_message.add()
    msg.bb = 42
    self.CompareToGoldenText(
        text_format.MessageToString(
            message, as_one_line=True, message_formatter=printer),
        'repeated_nested_message { My lucky number is 42 }')

  def testPrettyPrintMultiLine(self, message_module):

    def printer(m, indent, as_one_line):
      if m.DESCRIPTOR == message_module.TestAllTypes.NestedMessage.DESCRIPTOR:
        line_deliminator = (' ' if as_one_line else '\n') + ' ' * indent
        return 'My lucky number is:%s%s' % (line_deliminator, m.bb)
      return None

    message = message_module.TestAllTypes()
    msg = message.repeated_nested_message.add()
    msg.bb = 42
    self.CompareToGoldenText(
        text_format.MessageToString(
            message, as_one_line=True, message_formatter=printer),
        'repeated_nested_message { My lucky number is: 42 }')
    self.CompareToGoldenText(
        text_format.MessageToString(
            message, as_one_line=False, message_formatter=printer),
        'repeated_nested_message {\n  My lucky number is:\n  42\n}\n')

  def testPrettyPrintEntireMessage(self, message_module):

    def printer(m, indent, as_one_line):
      del indent, as_one_line
      if m.DESCRIPTOR == message_module.TestAllTypes.DESCRIPTOR:
        return 'The is the message!'
      return None

    message = message_module.TestAllTypes()
    self.CompareToGoldenText(
        text_format.MessageToString(
            message, as_one_line=False, message_formatter=printer),
        'The is the message!\n')
    self.CompareToGoldenText(
        text_format.MessageToString(
            message, as_one_line=True, message_formatter=printer),
        'The is the message!')

  def testPrettyPrintMultipleParts(self, message_module):

    def printer(m, indent, as_one_line):
      del indent, as_one_line
      if m.DESCRIPTOR == message_module.TestAllTypes.NestedMessage.DESCRIPTOR:
        return 'My lucky number is %s' % m.bb
      return None

    message = message_module.TestAllTypes()
    message.optional_int32 = 61
    msg = message.repeated_nested_message.add()
    msg.bb = 42
    msg = message.repeated_nested_message.add()
    msg.bb = 99
    msg = message.optional_nested_message
    msg.bb = 1
    self.CompareToGoldenText(
        text_format.MessageToString(
            message, as_one_line=True, message_formatter=printer),
        ('optional_int32: 61 '
         'optional_nested_message { My lucky number is 1 } '
         'repeated_nested_message { My lucky number is 42 } '
         'repeated_nested_message { My lucky number is 99 }'))

if __name__ == '__main__':
  unittest.main()
PK�\Q�ND#D#!protobuf/internal/wire_format.pycnu�[����
���hc@s'dZdZddlZddlmZddlmZdZde>dZdZdZ	d	Z
dZd
ZdZ
dZed3�Zed5�Zd7Zd9Zd;Zd=ZdZdZdZdZeje�d
kr�ed��neje�dkred��nd�Zd�Zd�Zd�Zd�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,d(�Z-d)�Z.d*�Z/d+�Z0d,�Z1d-�Z2d.�Z3d/�Z4d0�Z5ej6j7ej6j8ej6j9ej6j:fZ;d1�Z<dS(>sFConstants and static functions to support protocol buffer wire format.s#robinson@google.com (Will Robinson)i����N(t
descriptor(tmessageiiiiiiii i?i@s<Is<Qs<fs<ds"Format "I" is not a 32-bit number.is"Format "Q" is not a 64-bit number.cCs>d|kotkns2tjd|��n|t>|BS(sReturns an unsigned 32-bit integer that encodes the field number and
  wire type information in standard protocol message wire format.

  Args:
    field_number: Expected to be an integer in the range [1, 1 << 29)
    wire_type: One of the WIRETYPE_* constants.
  isUnknown wire type: %d(t
_WIRETYPE_MAXRtEncodeErrort
TAG_TYPE_BITS(tfield_numbert	wire_type((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytPackTagPscCs|t?|t@fS(skThe inverse of PackTag().  Given an unsigned 32-bit number,
  returns a (field_number, wire_type) tuple.
  (Rt
TAG_TYPE_MASK(ttag((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyt	UnpackTag]scCs |dkr|d>S|d>dAS(s�ZigZag Transform:  Encodes signed integers so that they can be
  effectively used with varint encoding.  See wire_format.h for
  more details.
  iii����((tvalue((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytZigZagEncodedscCs|d@s|d?S|d?dAS(sInverse of ZigZagEncode().iii����((R((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytZigZagDecodens
cCs
t||�S(N(t
Int64ByteSize(Rtint32((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyt
Int32ByteSizezscCstd|@�S(Nl����(t_VarUInt64ByteSizeNoTag(R((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytInt32ByteSizeNoTag~scCst|d|@�S(Nl����(tUInt64ByteSize(Rtint64((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyR�scCs
t||�S(N(R(Rtuint32((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytUInt32ByteSize�scCst|�t|�S(N(tTagByteSizeR(Rtuint64((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyR�scCst|t|��S(N(RR(RR((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytSInt32ByteSize�scCst|t|��S(N(RR(RR((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytSInt64ByteSize�scCst|�dS(Ni(R(Rtfixed32((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytFixed32ByteSize�scCst|�dS(Ni(R(Rtfixed64((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytFixed64ByteSize�scCst|�dS(Ni(R(Rtsfixed32((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytSFixed32ByteSize�scCst|�dS(Ni(R(Rtsfixed64((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytSFixed64ByteSize�scCst|�dS(Ni(R(Rtflt((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyt
FloatByteSize�scCst|�dS(Ni(R(Rtdouble((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytDoubleByteSize�scCst|�dS(Ni(R(Rtb((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytBoolByteSize�scCs
t||�S(N(R(Rtenum((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytEnumByteSize�scCst||jd��S(Nsutf-8(t
BytesByteSizetencode(Rtstring((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytStringByteSize�scCs$t|�tt|��t|�S(N(RRtlen(RR'((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyR+�scCsdt|�|j�S(Ni(RtByteSize(RR((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyt
GroupByteSize�s
cCs$t|�t|j��|j�S(N(RRR0(RR((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytMessageByteSize�scCs^dtd�td�td�}|t|�7}|j�}|t|�7}||7}|S(Niii(RRR0(Rtmsgt
total_sizetmessage_size((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytMessageSetItemByteSize�s$
cCstt|d��S(sEReturns the bytes required to serialize a tag with this field number.i(RR(R((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyR�scCs�|dkrdS|dkr dS|dkr0dS|dkr@dS|d	krPd
S|dkr`dS|d
krpdS|dkr�dS|dkr�dS|tkr�tjd|��ndS(s�Returns the number of bytes required to serialize a single varint
  using boundary value comparisons. (unrolled loop optimization -WPierce)
  uint64 must be unsigned.
  iii�?ii��ii���il��il���il���il����il����i	sValue out of range: %di
(t
UINT64_MAXRR(R((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyR�s*cCs
|tkS(s�Return true iff packable = true is valid for fields of this type.

  Args:
    field_type: a FieldDescriptor::Type value.

  Returns:
    True iff fields of this type are packable.
  (tNON_PACKABLE_TYPES(t
field_type((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pytIsTypePackables	ll��ll����ll��ll����ll����ll����(=t__doc__t
__author__tstructtgoogle.protobufRRRRtWIRETYPE_VARINTtWIRETYPE_FIXED64tWIRETYPE_LENGTH_DELIMITEDtWIRETYPE_START_GROUPtWIRETYPE_END_GROUPtWIRETYPE_FIXED32Rtintt	INT32_MAXt	INT32_MINt
UINT32_MAXt	INT64_MAXt	INT64_MINR7tFORMAT_UINT32_LITTLE_ENDIANtFORMAT_UINT64_LITTLE_ENDIANtFORMAT_FLOAT_LITTLE_ENDIANtFORMAT_DOUBLE_LITTLE_ENDIANtcalcsizetAssertionErrorRR
RR
RRRRRRRRRR R"R$R&R(R*R.R+R1R2R6RRtFieldDescriptortTYPE_STRINGt
TYPE_GROUPtTYPE_MESSAGEt
TYPE_BYTESR8R:(((sH/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format.pyt<module>st	
		
																										PK�\��H�����#protobuf/internal/python_message.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# This code is meant to work on Python 2.4 and above only.
#
# TODO(robinson): Helpers for verbose, common checks like seeing if a
# descriptor's cpp_type is CPPTYPE_MESSAGE.

"""Contains a metaclass and helper functions used to create
protocol message classes from Descriptor objects at runtime.

Recall that a metaclass is the "type" of a class.
(A class is to a metaclass what an instance is to a class.)

In this case, we use the GeneratedProtocolMessageType metaclass
to inject all the useful functionality into the classes
output by the protocol compiler at compile-time.

The upshot of all this is that the real implementation
details for ALL pure-Python protocol buffers are *here in
this file*.
"""

__author__ = 'robinson@google.com (Will Robinson)'

from io import BytesIO
import struct
import sys
import weakref

import six

# We use "as" to avoid name collisions with variables.
from google.protobuf.internal import api_implementation
from google.protobuf.internal import containers
from google.protobuf.internal import decoder
from google.protobuf.internal import encoder
from google.protobuf.internal import enum_type_wrapper
from google.protobuf.internal import message_listener as message_listener_mod
from google.protobuf.internal import type_checkers
from google.protobuf.internal import well_known_types
from google.protobuf.internal import wire_format
from google.protobuf import descriptor as descriptor_mod
from google.protobuf import message as message_mod
from google.protobuf import text_format

_FieldDescriptor = descriptor_mod.FieldDescriptor
_AnyFullTypeName = 'google.protobuf.Any'


class GeneratedProtocolMessageType(type):

  """Metaclass for protocol message classes created at runtime from Descriptors.

  We add implementations for all methods described in the Message class.  We
  also create properties to allow getting/setting all fields in the protocol
  message.  Finally, we create slots to prevent users from accidentally
  "setting" nonexistent fields in the protocol message, which then wouldn't get
  serialized / deserialized properly.

  The protocol compiler currently uses this metaclass to create protocol
  message classes at runtime.  Clients can also manually create their own
  classes at runtime, as in this example:

  mydescriptor = Descriptor(.....)
  factory = symbol_database.Default()
  factory.pool.AddDescriptor(mydescriptor)
  MyProtoClass = factory.GetPrototype(mydescriptor)
  myproto_instance = MyProtoClass()
  myproto.foo_field = 23
  ...
  """

  # Must be consistent with the protocol-compiler code in
  # proto2/compiler/internal/generator.*.
  _DESCRIPTOR_KEY = 'DESCRIPTOR'

  def __new__(cls, name, bases, dictionary):
    """Custom allocation for runtime-generated class types.

    We override __new__ because this is apparently the only place
    where we can meaningfully set __slots__ on the class we're creating(?).
    (The interplay between metaclasses and slots is not very well-documented).

    Args:
      name: Name of the class (ignored, but required by the
        metaclass protocol).
      bases: Base classes of the class we're constructing.
        (Should be message.Message).  We ignore this field, but
        it's required by the metaclass protocol
      dictionary: The class dictionary of the class we're
        constructing.  dictionary[_DESCRIPTOR_KEY] must contain
        a Descriptor object describing this protocol message
        type.

    Returns:
      Newly-allocated class.
    """
    descriptor = dictionary[GeneratedProtocolMessageType._DESCRIPTOR_KEY]
    if descriptor.full_name in well_known_types.WKTBASES:
      bases += (well_known_types.WKTBASES[descriptor.full_name],)
    _AddClassAttributesForNestedExtensions(descriptor, dictionary)
    _AddSlots(descriptor, dictionary)

    superclass = super(GeneratedProtocolMessageType, cls)
    new_class = superclass.__new__(cls, name, bases, dictionary)
    return new_class

  def __init__(cls, name, bases, dictionary):
    """Here we perform the majority of our work on the class.
    We add enum getters, an __init__ method, implementations
    of all Message methods, and properties for all fields
    in the protocol type.

    Args:
      name: Name of the class (ignored, but required by the
        metaclass protocol).
      bases: Base classes of the class we're constructing.
        (Should be message.Message).  We ignore this field, but
        it's required by the metaclass protocol
      dictionary: The class dictionary of the class we're
        constructing.  dictionary[_DESCRIPTOR_KEY] must contain
        a Descriptor object describing this protocol message
        type.
    """
    descriptor = dictionary[GeneratedProtocolMessageType._DESCRIPTOR_KEY]
    cls._decoders_by_tag = {}
    if (descriptor.has_options and
        descriptor.GetOptions().message_set_wire_format):
      cls._decoders_by_tag[decoder.MESSAGE_SET_ITEM_TAG] = (
          decoder.MessageSetItemDecoder(descriptor), None)

    # Attach stuff to each FieldDescriptor for quick lookup later on.
    for field in descriptor.fields:
      _AttachFieldHelpers(cls, field)

    descriptor._concrete_class = cls  # pylint: disable=protected-access
    _AddEnumValues(descriptor, cls)
    _AddInitMethod(descriptor, cls)
    _AddPropertiesForFields(descriptor, cls)
    _AddPropertiesForExtensions(descriptor, cls)
    _AddStaticMethods(cls)
    _AddMessageMethods(descriptor, cls)
    _AddPrivateHelperMethods(descriptor, cls)

    superclass = super(GeneratedProtocolMessageType, cls)
    superclass.__init__(name, bases, dictionary)


# Stateless helpers for GeneratedProtocolMessageType below.
# Outside clients should not access these directly.
#
# I opted not to make any of these methods on the metaclass, to make it more
# clear that I'm not really using any state there and to keep clients from
# thinking that they have direct access to these construction helpers.


def _PropertyName(proto_field_name):
  """Returns the name of the public property attribute which
  clients can use to get and (in some cases) set the value
  of a protocol message field.

  Args:
    proto_field_name: The protocol message field name, exactly
      as it appears (or would appear) in a .proto file.
  """
  # TODO(robinson): Escape Python keywords (e.g., yield), and test this support.
  # nnorwitz makes my day by writing:
  # """
  # FYI.  See the keyword module in the stdlib. This could be as simple as:
  #
  # if keyword.iskeyword(proto_field_name):
  #   return proto_field_name + "_"
  # return proto_field_name
  # """
  # Kenton says:  The above is a BAD IDEA.  People rely on being able to use
  #   getattr() and setattr() to reflectively manipulate field values.  If we
  #   rename the properties, then every such user has to also make sure to apply
  #   the same transformation.  Note that currently if you name a field "yield",
  #   you can still access it just fine using getattr/setattr -- it's not even
  #   that cumbersome to do so.
  # TODO(kenton):  Remove this method entirely if/when everyone agrees with my
  #   position.
  return proto_field_name


def _VerifyExtensionHandle(message, extension_handle):
  """Verify that the given extension handle is valid."""

  if not isinstance(extension_handle, _FieldDescriptor):
    raise KeyError('HasExtension() expects an extension handle, got: %s' %
                   extension_handle)

  if not extension_handle.is_extension:
    raise KeyError('"%s" is not an extension.' % extension_handle.full_name)

  if not extension_handle.containing_type:
    raise KeyError('"%s" is missing a containing_type.'
                   % extension_handle.full_name)

  if extension_handle.containing_type is not message.DESCRIPTOR:
    raise KeyError('Extension "%s" extends message type "%s", but this '
                   'message is of type "%s".' %
                   (extension_handle.full_name,
                    extension_handle.containing_type.full_name,
                    message.DESCRIPTOR.full_name))


def _AddSlots(message_descriptor, dictionary):
  """Adds a __slots__ entry to dictionary, containing the names of all valid
  attributes for this message type.

  Args:
    message_descriptor: A Descriptor instance describing this message type.
    dictionary: Class dictionary to which we'll add a '__slots__' entry.
  """
  dictionary['__slots__'] = ['_cached_byte_size',
                             '_cached_byte_size_dirty',
                             '_fields',
                             '_unknown_fields',
                             '_is_present_in_parent',
                             '_listener',
                             '_listener_for_children',
                             '__weakref__',
                             '_oneofs']


def _IsMessageSetExtension(field):
  return (field.is_extension and
          field.containing_type.has_options and
          field.containing_type.GetOptions().message_set_wire_format and
          field.type == _FieldDescriptor.TYPE_MESSAGE and
          field.label == _FieldDescriptor.LABEL_OPTIONAL)


def _IsMapField(field):
  return (field.type == _FieldDescriptor.TYPE_MESSAGE and
          field.message_type.has_options and
          field.message_type.GetOptions().map_entry)


def _IsMessageMapField(field):
  value_type = field.message_type.fields_by_name["value"]
  return value_type.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE


def _AttachFieldHelpers(cls, field_descriptor):
  is_repeated = (field_descriptor.label == _FieldDescriptor.LABEL_REPEATED)
  is_packable = (is_repeated and
                 wire_format.IsTypePackable(field_descriptor.type))
  if not is_packable:
    is_packed = False
  elif field_descriptor.containing_type.syntax == "proto2":
    is_packed = (field_descriptor.has_options and
                field_descriptor.GetOptions().packed)
  else:
    has_packed_false = (field_descriptor.has_options and
                        field_descriptor.GetOptions().HasField("packed") and
                        field_descriptor.GetOptions().packed == False)
    is_packed = not has_packed_false
  is_map_entry = _IsMapField(field_descriptor)

  if is_map_entry:
    field_encoder = encoder.MapEncoder(field_descriptor)
    sizer = encoder.MapSizer(field_descriptor,
                             _IsMessageMapField(field_descriptor))
  elif _IsMessageSetExtension(field_descriptor):
    field_encoder = encoder.MessageSetItemEncoder(field_descriptor.number)
    sizer = encoder.MessageSetItemSizer(field_descriptor.number)
  else:
    field_encoder = type_checkers.TYPE_TO_ENCODER[field_descriptor.type](
        field_descriptor.number, is_repeated, is_packed)
    sizer = type_checkers.TYPE_TO_SIZER[field_descriptor.type](
        field_descriptor.number, is_repeated, is_packed)

  field_descriptor._encoder = field_encoder
  field_descriptor._sizer = sizer
  field_descriptor._default_constructor = _DefaultValueConstructorForField(
      field_descriptor)

  def AddDecoder(wiretype, is_packed):
    tag_bytes = encoder.TagBytes(field_descriptor.number, wiretype)
    decode_type = field_descriptor.type
    if (decode_type == _FieldDescriptor.TYPE_ENUM and
        type_checkers.SupportsOpenEnums(field_descriptor)):
      decode_type = _FieldDescriptor.TYPE_INT32

    oneof_descriptor = None
    if field_descriptor.containing_oneof is not None:
      oneof_descriptor = field_descriptor

    if is_map_entry:
      is_message_map = _IsMessageMapField(field_descriptor)

      field_decoder = decoder.MapDecoder(
          field_descriptor, _GetInitializeDefaultForMap(field_descriptor),
          is_message_map)
    else:
      field_decoder = type_checkers.TYPE_TO_DECODER[decode_type](
              field_descriptor.number, is_repeated, is_packed,
              field_descriptor, field_descriptor._default_constructor)

    cls._decoders_by_tag[tag_bytes] = (field_decoder, oneof_descriptor)

  AddDecoder(type_checkers.FIELD_TYPE_TO_WIRE_TYPE[field_descriptor.type],
             False)

  if is_repeated and wire_format.IsTypePackable(field_descriptor.type):
    # To support wire compatibility of adding packed = true, add a decoder for
    # packed values regardless of the field's options.
    AddDecoder(wire_format.WIRETYPE_LENGTH_DELIMITED, True)


def _AddClassAttributesForNestedExtensions(descriptor, dictionary):
  extension_dict = descriptor.extensions_by_name
  for extension_name, extension_field in extension_dict.items():
    assert extension_name not in dictionary
    dictionary[extension_name] = extension_field


def _AddEnumValues(descriptor, cls):
  """Sets class-level attributes for all enum fields defined in this message.

  Also exporting a class-level object that can name enum values.

  Args:
    descriptor: Descriptor object for this message type.
    cls: Class we're constructing for this message type.
  """
  for enum_type in descriptor.enum_types:
    setattr(cls, enum_type.name, enum_type_wrapper.EnumTypeWrapper(enum_type))
    for enum_value in enum_type.values:
      setattr(cls, enum_value.name, enum_value.number)


def _GetInitializeDefaultForMap(field):
  if field.label != _FieldDescriptor.LABEL_REPEATED:
    raise ValueError('map_entry set on non-repeated field %s' % (
        field.name))
  fields_by_name = field.message_type.fields_by_name
  key_checker = type_checkers.GetTypeChecker(fields_by_name['key'])

  value_field = fields_by_name['value']
  if _IsMessageMapField(field):
    def MakeMessageMapDefault(message):
      return containers.MessageMap(
          message._listener_for_children, value_field.message_type, key_checker,
          field.message_type)
    return MakeMessageMapDefault
  else:
    value_checker = type_checkers.GetTypeChecker(value_field)
    def MakePrimitiveMapDefault(message):
      return containers.ScalarMap(
          message._listener_for_children, key_checker, value_checker,
          field.message_type)
    return MakePrimitiveMapDefault

def _DefaultValueConstructorForField(field):
  """Returns a function which returns a default value for a field.

  Args:
    field: FieldDescriptor object for this field.

  The returned function has one argument:
    message: Message instance containing this field, or a weakref proxy
      of same.

  That function in turn returns a default value for this field.  The default
    value may refer back to |message| via a weak reference.
  """

  if _IsMapField(field):
    return _GetInitializeDefaultForMap(field)

  if field.label == _FieldDescriptor.LABEL_REPEATED:
    if field.has_default_value and field.default_value != []:
      raise ValueError('Repeated field default value not empty list: %s' % (
          field.default_value))
    if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
      # We can't look at _concrete_class yet since it might not have
      # been set.  (Depends on order in which we initialize the classes).
      message_type = field.message_type
      def MakeRepeatedMessageDefault(message):
        return containers.RepeatedCompositeFieldContainer(
            message._listener_for_children, field.message_type)
      return MakeRepeatedMessageDefault
    else:
      type_checker = type_checkers.GetTypeChecker(field)
      def MakeRepeatedScalarDefault(message):
        return containers.RepeatedScalarFieldContainer(
            message._listener_for_children, type_checker)
      return MakeRepeatedScalarDefault

  if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
    # _concrete_class may not yet be initialized.
    message_type = field.message_type
    def MakeSubMessageDefault(message):
      result = message_type._concrete_class()
      result._SetListener(
          _OneofListener(message, field)
          if field.containing_oneof is not None
          else message._listener_for_children)
      return result
    return MakeSubMessageDefault

  def MakeScalarDefault(message):
    # TODO(protobuf-team): This may be broken since there may not be
    # default_value.  Combine with has_default_value somehow.
    return field.default_value
  return MakeScalarDefault


def _ReraiseTypeErrorWithFieldName(message_name, field_name):
  """Re-raise the currently-handled TypeError with the field name added."""
  exc = sys.exc_info()[1]
  if len(exc.args) == 1 and type(exc) is TypeError:
    # simple TypeError; add field name to exception message
    exc = TypeError('%s for field %s.%s' % (str(exc), message_name, field_name))

  # re-raise possibly-amended exception with original traceback:
  six.reraise(type(exc), exc, sys.exc_info()[2])


def _AddInitMethod(message_descriptor, cls):
  """Adds an __init__ method to cls."""

  def _GetIntegerEnumValue(enum_type, value):
    """Convert a string or integer enum value to an integer.

    If the value is a string, it is converted to the enum value in
    enum_type with the same name.  If the value is not a string, it's
    returned as-is.  (No conversion or bounds-checking is done.)
    """
    if isinstance(value, six.string_types):
      try:
        return enum_type.values_by_name[value].number
      except KeyError:
        raise ValueError('Enum type %s: unknown label "%s"' % (
            enum_type.full_name, value))
    return value

  def init(self, **kwargs):
    self._cached_byte_size = 0
    self._cached_byte_size_dirty = len(kwargs) > 0
    self._fields = {}
    # Contains a mapping from oneof field descriptors to the descriptor
    # of the currently set field in that oneof field.
    self._oneofs = {}

    # _unknown_fields is () when empty for efficiency, and will be turned into
    # a list if fields are added.
    self._unknown_fields = ()
    self._is_present_in_parent = False
    self._listener = message_listener_mod.NullMessageListener()
    self._listener_for_children = _Listener(self)
    for field_name, field_value in kwargs.items():
      field = _GetFieldByName(message_descriptor, field_name)
      if field is None:
        raise TypeError("%s() got an unexpected keyword argument '%s'" %
                        (message_descriptor.name, field_name))
      if field_value is None:
        # field=None is the same as no field at all.
        continue
      if field.label == _FieldDescriptor.LABEL_REPEATED:
        copy = field._default_constructor(self)
        if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:  # Composite
          if _IsMapField(field):
            if _IsMessageMapField(field):
              for key in field_value:
                copy[key].MergeFrom(field_value[key])
            else:
              copy.update(field_value)
          else:
            for val in field_value:
              if isinstance(val, dict):
                copy.add(**val)
              else:
                copy.add().MergeFrom(val)
        else:  # Scalar
          if field.cpp_type == _FieldDescriptor.CPPTYPE_ENUM:
            field_value = [_GetIntegerEnumValue(field.enum_type, val)
                           for val in field_value]
          copy.extend(field_value)
        self._fields[field] = copy
      elif field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
        copy = field._default_constructor(self)
        new_val = field_value
        if isinstance(field_value, dict):
          new_val = field.message_type._concrete_class(**field_value)
        try:
          copy.MergeFrom(new_val)
        except TypeError:
          _ReraiseTypeErrorWithFieldName(message_descriptor.name, field_name)
        self._fields[field] = copy
      else:
        if field.cpp_type == _FieldDescriptor.CPPTYPE_ENUM:
          field_value = _GetIntegerEnumValue(field.enum_type, field_value)
        try:
          setattr(self, field_name, field_value)
        except TypeError:
          _ReraiseTypeErrorWithFieldName(message_descriptor.name, field_name)

  init.__module__ = None
  init.__doc__ = None
  cls.__init__ = init


def _GetFieldByName(message_descriptor, field_name):
  """Returns a field descriptor by field name.

  Args:
    message_descriptor: A Descriptor describing all fields in message.
    field_name: The name of the field to retrieve.
  Returns:
    The field descriptor associated with the field name.
  """
  try:
    return message_descriptor.fields_by_name[field_name]
  except KeyError:
    raise ValueError('Protocol message %s has no "%s" field.' %
                     (message_descriptor.name, field_name))


def _AddPropertiesForFields(descriptor, cls):
  """Adds properties for all fields in this protocol message type."""
  for field in descriptor.fields:
    _AddPropertiesForField(field, cls)

  if descriptor.is_extendable:
    # _ExtensionDict is just an adaptor with no state so we allocate a new one
    # every time it is accessed.
    cls.Extensions = property(lambda self: _ExtensionDict(self))


def _AddPropertiesForField(field, cls):
  """Adds a public property for a protocol message field.
  Clients can use this property to get and (in the case
  of non-repeated scalar fields) directly set the value
  of a protocol message field.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  """
  # Catch it if we add other types that we should
  # handle specially here.
  assert _FieldDescriptor.MAX_CPPTYPE == 10

  constant_name = field.name.upper() + "_FIELD_NUMBER"
  setattr(cls, constant_name, field.number)

  if field.label == _FieldDescriptor.LABEL_REPEATED:
    _AddPropertiesForRepeatedField(field, cls)
  elif field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
    _AddPropertiesForNonRepeatedCompositeField(field, cls)
  else:
    _AddPropertiesForNonRepeatedScalarField(field, cls)


def _AddPropertiesForRepeatedField(field, cls):
  """Adds a public property for a "repeated" protocol message field.  Clients
  can use this property to get the value of the field, which will be either a
  _RepeatedScalarFieldContainer or _RepeatedCompositeFieldContainer (see
  below).

  Note that when clients add values to these containers, we perform
  type-checking in the case of repeated scalar fields, and we also set any
  necessary "has" bits as a side-effect.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  """
  proto_field_name = field.name
  property_name = _PropertyName(proto_field_name)

  def getter(self):
    field_value = self._fields.get(field)
    if field_value is None:
      # Construct a new object to represent this field.
      field_value = field._default_constructor(self)

      # Atomically check if another thread has preempted us and, if not, swap
      # in the new object we just created.  If someone has preempted us, we
      # take that object and discard ours.
      # WARNING:  We are relying on setdefault() being atomic.  This is true
      #   in CPython but we haven't investigated others.  This warning appears
      #   in several other locations in this file.
      field_value = self._fields.setdefault(field, field_value)
    return field_value
  getter.__module__ = None
  getter.__doc__ = 'Getter for %s.' % proto_field_name

  # We define a setter just so we can throw an exception with a more
  # helpful error message.
  def setter(self, new_value):
    raise AttributeError('Assignment not allowed to repeated field '
                         '"%s" in protocol message object.' % proto_field_name)

  doc = 'Magic attribute generated for "%s" proto field.' % proto_field_name
  setattr(cls, property_name, property(getter, setter, doc=doc))


def _AddPropertiesForNonRepeatedScalarField(field, cls):
  """Adds a public property for a nonrepeated, scalar protocol message field.
  Clients can use this property to get and directly set the value of the field.
  Note that when the client sets the value of a field by using this property,
  all necessary "has" bits are set as a side-effect, and we also perform
  type-checking.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  """
  proto_field_name = field.name
  property_name = _PropertyName(proto_field_name)
  type_checker = type_checkers.GetTypeChecker(field)
  default_value = field.default_value
  valid_values = set()
  is_proto3 = field.containing_type.syntax == "proto3"

  def getter(self):
    # TODO(protobuf-team): This may be broken since there may not be
    # default_value.  Combine with has_default_value somehow.
    return self._fields.get(field, default_value)
  getter.__module__ = None
  getter.__doc__ = 'Getter for %s.' % proto_field_name

  clear_when_set_to_default = is_proto3 and not field.containing_oneof

  def field_setter(self, new_value):
    # pylint: disable=protected-access
    # Testing the value for truthiness captures all of the proto3 defaults
    # (0, 0.0, enum 0, and False).
    new_value = type_checker.CheckValue(new_value)
    if clear_when_set_to_default and not new_value:
      self._fields.pop(field, None)
    else:
      self._fields[field] = new_value
    # Check _cached_byte_size_dirty inline to improve performance, since scalar
    # setters are called frequently.
    if not self._cached_byte_size_dirty:
      self._Modified()

  if field.containing_oneof:
    def setter(self, new_value):
      field_setter(self, new_value)
      self._UpdateOneofState(field)
  else:
    setter = field_setter

  setter.__module__ = None
  setter.__doc__ = 'Setter for %s.' % proto_field_name

  # Add a property to encapsulate the getter/setter.
  doc = 'Magic attribute generated for "%s" proto field.' % proto_field_name
  setattr(cls, property_name, property(getter, setter, doc=doc))


def _AddPropertiesForNonRepeatedCompositeField(field, cls):
  """Adds a public property for a nonrepeated, composite protocol message field.
  A composite field is a "group" or "message" field.

  Clients can use this property to get the value of the field, but cannot
  assign to the property directly.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  """
  # TODO(robinson): Remove duplication with similar method
  # for non-repeated scalars.
  proto_field_name = field.name
  property_name = _PropertyName(proto_field_name)

  def getter(self):
    field_value = self._fields.get(field)
    if field_value is None:
      # Construct a new object to represent this field.
      field_value = field._default_constructor(self)

      # Atomically check if another thread has preempted us and, if not, swap
      # in the new object we just created.  If someone has preempted us, we
      # take that object and discard ours.
      # WARNING:  We are relying on setdefault() being atomic.  This is true
      #   in CPython but we haven't investigated others.  This warning appears
      #   in several other locations in this file.
      field_value = self._fields.setdefault(field, field_value)
    return field_value
  getter.__module__ = None
  getter.__doc__ = 'Getter for %s.' % proto_field_name

  # We define a setter just so we can throw an exception with a more
  # helpful error message.
  def setter(self, new_value):
    raise AttributeError('Assignment not allowed to composite field '
                         '"%s" in protocol message object.' % proto_field_name)

  # Add a property to encapsulate the getter.
  doc = 'Magic attribute generated for "%s" proto field.' % proto_field_name
  setattr(cls, property_name, property(getter, setter, doc=doc))


def _AddPropertiesForExtensions(descriptor, cls):
  """Adds properties for all fields in this protocol message type."""
  extension_dict = descriptor.extensions_by_name
  for extension_name, extension_field in extension_dict.items():
    constant_name = extension_name.upper() + "_FIELD_NUMBER"
    setattr(cls, constant_name, extension_field.number)

  # TODO(amauryfa): Migrate all users of these attributes to functions like
  #   pool.FindExtensionByNumber(descriptor).
  if descriptor.file is not None:
    # TODO(amauryfa): Use cls.MESSAGE_FACTORY.pool when available.
    pool = descriptor.file.pool
    cls._extensions_by_number = pool._extensions_by_number[descriptor]
    cls._extensions_by_name = pool._extensions_by_name[descriptor]

def _AddStaticMethods(cls):
  # TODO(robinson): This probably needs to be thread-safe(?)
  def RegisterExtension(extension_handle):
    extension_handle.containing_type = cls.DESCRIPTOR
    # TODO(amauryfa): Use cls.MESSAGE_FACTORY.pool when available.
    cls.DESCRIPTOR.file.pool.AddExtensionDescriptor(extension_handle)
    _AttachFieldHelpers(cls, extension_handle)
  cls.RegisterExtension = staticmethod(RegisterExtension)

  def FromString(s):
    message = cls()
    message.MergeFromString(s)
    return message
  cls.FromString = staticmethod(FromString)


def _IsPresent(item):
  """Given a (FieldDescriptor, value) tuple from _fields, return true if the
  value should be included in the list returned by ListFields()."""

  if item[0].label == _FieldDescriptor.LABEL_REPEATED:
    return bool(item[1])
  elif item[0].cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
    return item[1]._is_present_in_parent
  else:
    return True


def _AddListFieldsMethod(message_descriptor, cls):
  """Helper for _AddMessageMethods()."""

  def ListFields(self):
    all_fields = [item for item in self._fields.items() if _IsPresent(item)]
    all_fields.sort(key = lambda item: item[0].number)
    return all_fields

  cls.ListFields = ListFields

_Proto3HasError = 'Protocol message has no non-repeated submessage field "%s"'
_Proto2HasError = 'Protocol message has no non-repeated field "%s"'

def _AddHasFieldMethod(message_descriptor, cls):
  """Helper for _AddMessageMethods()."""

  is_proto3 = (message_descriptor.syntax == "proto3")
  error_msg = _Proto3HasError if is_proto3 else _Proto2HasError

  hassable_fields = {}
  for field in message_descriptor.fields:
    if field.label == _FieldDescriptor.LABEL_REPEATED:
      continue
    # For proto3, only submessages and fields inside a oneof have presence.
    if (is_proto3 and field.cpp_type != _FieldDescriptor.CPPTYPE_MESSAGE and
        not field.containing_oneof):
      continue
    hassable_fields[field.name] = field

  if not is_proto3:
    # Fields inside oneofs are never repeated (enforced by the compiler).
    for oneof in message_descriptor.oneofs:
      hassable_fields[oneof.name] = oneof

  def HasField(self, field_name):
    try:
      field = hassable_fields[field_name]
    except KeyError:
      raise ValueError(error_msg % field_name)

    if isinstance(field, descriptor_mod.OneofDescriptor):
      try:
        return HasField(self, self._oneofs[field].name)
      except KeyError:
        return False
    else:
      if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
        value = self._fields.get(field)
        return value is not None and value._is_present_in_parent
      else:
        return field in self._fields

  cls.HasField = HasField


def _AddClearFieldMethod(message_descriptor, cls):
  """Helper for _AddMessageMethods()."""
  def ClearField(self, field_name):
    try:
      field = message_descriptor.fields_by_name[field_name]
    except KeyError:
      try:
        field = message_descriptor.oneofs_by_name[field_name]
        if field in self._oneofs:
          field = self._oneofs[field]
        else:
          return
      except KeyError:
        raise ValueError('Protocol message %s() has no "%s" field.' %
                         (message_descriptor.name, field_name))

    if field in self._fields:
      # To match the C++ implementation, we need to invalidate iterators
      # for map fields when ClearField() happens.
      if hasattr(self._fields[field], 'InvalidateIterators'):
        self._fields[field].InvalidateIterators()

      # Note:  If the field is a sub-message, its listener will still point
      #   at us.  That's fine, because the worst than can happen is that it
      #   will call _Modified() and invalidate our byte size.  Big deal.
      del self._fields[field]

      if self._oneofs.get(field.containing_oneof, None) is field:
        del self._oneofs[field.containing_oneof]

    # Always call _Modified() -- even if nothing was changed, this is
    # a mutating method, and thus calling it should cause the field to become
    # present in the parent message.
    self._Modified()

  cls.ClearField = ClearField


def _AddClearExtensionMethod(cls):
  """Helper for _AddMessageMethods()."""
  def ClearExtension(self, extension_handle):
    _VerifyExtensionHandle(self, extension_handle)

    # Similar to ClearField(), above.
    if extension_handle in self._fields:
      del self._fields[extension_handle]
    self._Modified()
  cls.ClearExtension = ClearExtension


def _AddHasExtensionMethod(cls):
  """Helper for _AddMessageMethods()."""
  def HasExtension(self, extension_handle):
    _VerifyExtensionHandle(self, extension_handle)
    if extension_handle.label == _FieldDescriptor.LABEL_REPEATED:
      raise KeyError('"%s" is repeated.' % extension_handle.full_name)

    if extension_handle.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
      value = self._fields.get(extension_handle)
      return value is not None and value._is_present_in_parent
    else:
      return extension_handle in self._fields
  cls.HasExtension = HasExtension

def _InternalUnpackAny(msg):
  """Unpacks Any message and returns the unpacked message.

  This internal method is different from public Any Unpack method which takes
  the target message as argument. _InternalUnpackAny method does not have
  target message type and need to find the message type in descriptor pool.

  Args:
    msg: An Any message to be unpacked.

  Returns:
    The unpacked message.
  """
  # TODO(amauryfa): Don't use the factory of generated messages.
  # To make Any work with custom factories, use the message factory of the
  # parent message.
  # pylint: disable=g-import-not-at-top
  from google.protobuf import symbol_database
  factory = symbol_database.Default()

  type_url = msg.type_url

  if not type_url:
    return None

  # TODO(haberman): For now we just strip the hostname.  Better logic will be
  # required.
  type_name = type_url.split('/')[-1]
  descriptor = factory.pool.FindMessageTypeByName(type_name)

  if descriptor is None:
    return None

  message_class = factory.GetPrototype(descriptor)
  message = message_class()

  message.ParseFromString(msg.value)
  return message


def _AddEqualsMethod(message_descriptor, cls):
  """Helper for _AddMessageMethods()."""
  def __eq__(self, other):
    if (not isinstance(other, message_mod.Message) or
        other.DESCRIPTOR != self.DESCRIPTOR):
      return False

    if self is other:
      return True

    if self.DESCRIPTOR.full_name == _AnyFullTypeName:
      any_a = _InternalUnpackAny(self)
      any_b = _InternalUnpackAny(other)
      if any_a and any_b:
        return any_a == any_b

    if not self.ListFields() == other.ListFields():
      return False

    # Sort unknown fields because their order shouldn't affect equality test.
    unknown_fields = list(self._unknown_fields)
    unknown_fields.sort()
    other_unknown_fields = list(other._unknown_fields)
    other_unknown_fields.sort()

    return unknown_fields == other_unknown_fields

  cls.__eq__ = __eq__


def _AddStrMethod(message_descriptor, cls):
  """Helper for _AddMessageMethods()."""
  def __str__(self):
    return text_format.MessageToString(self)
  cls.__str__ = __str__


def _AddReprMethod(message_descriptor, cls):
  """Helper for _AddMessageMethods()."""
  def __repr__(self):
    return text_format.MessageToString(self)
  cls.__repr__ = __repr__


def _AddUnicodeMethod(unused_message_descriptor, cls):
  """Helper for _AddMessageMethods()."""

  def __unicode__(self):
    return text_format.MessageToString(self, as_utf8=True).decode('utf-8')
  cls.__unicode__ = __unicode__


def _BytesForNonRepeatedElement(value, field_number, field_type):
  """Returns the number of bytes needed to serialize a non-repeated element.
  The returned byte count includes space for tag information and any
  other additional space associated with serializing value.

  Args:
    value: Value we're serializing.
    field_number: Field number of this value.  (Since the field number
      is stored as part of a varint-encoded tag, this has an impact
      on the total bytes required to serialize the value).
    field_type: The type of the field.  One of the TYPE_* constants
      within FieldDescriptor.
  """
  try:
    fn = type_checkers.TYPE_TO_BYTE_SIZE_FN[field_type]
    return fn(field_number, value)
  except KeyError:
    raise message_mod.EncodeError('Unrecognized field type: %d' % field_type)


def _AddByteSizeMethod(message_descriptor, cls):
  """Helper for _AddMessageMethods()."""

  def ByteSize(self):
    if not self._cached_byte_size_dirty:
      return self._cached_byte_size

    size = 0
    descriptor = self.DESCRIPTOR
    if descriptor.GetOptions().map_entry:
      # Fields of map entry should always be serialized.
      size = descriptor.fields_by_name['key']._sizer(self.key)
      size += descriptor.fields_by_name['value']._sizer(self.value)
    else:
      for field_descriptor, field_value in self.ListFields():
        size += field_descriptor._sizer(field_value)
      for tag_bytes, value_bytes in self._unknown_fields:
        size += len(tag_bytes) + len(value_bytes)

    self._cached_byte_size = size
    self._cached_byte_size_dirty = False
    self._listener_for_children.dirty = False
    return size

  cls.ByteSize = ByteSize


def _AddSerializeToStringMethod(message_descriptor, cls):
  """Helper for _AddMessageMethods()."""

  def SerializeToString(self, **kwargs):
    # Check if the message has all of its required fields set.
    errors = []
    if not self.IsInitialized():
      raise message_mod.EncodeError(
          'Message %s is missing required fields: %s' % (
          self.DESCRIPTOR.full_name, ','.join(self.FindInitializationErrors())))
    return self.SerializePartialToString(**kwargs)
  cls.SerializeToString = SerializeToString


def _AddSerializePartialToStringMethod(message_descriptor, cls):
  """Helper for _AddMessageMethods()."""

  def SerializePartialToString(self, **kwargs):
    out = BytesIO()
    self._InternalSerialize(out.write, **kwargs)
    return out.getvalue()
  cls.SerializePartialToString = SerializePartialToString

  def InternalSerialize(self, write_bytes, deterministic=None):
    if deterministic is None:
      deterministic = (
          api_implementation.IsPythonDefaultSerializationDeterministic())
    else:
      deterministic = bool(deterministic)

    descriptor = self.DESCRIPTOR
    if descriptor.GetOptions().map_entry:
      # Fields of map entry should always be serialized.
      descriptor.fields_by_name['key']._encoder(
          write_bytes, self.key, deterministic)
      descriptor.fields_by_name['value']._encoder(
          write_bytes, self.value, deterministic)
    else:
      for field_descriptor, field_value in self.ListFields():
        field_descriptor._encoder(write_bytes, field_value, deterministic)
      for tag_bytes, value_bytes in self._unknown_fields:
        write_bytes(tag_bytes)
        write_bytes(value_bytes)
  cls._InternalSerialize = InternalSerialize


def _AddMergeFromStringMethod(message_descriptor, cls):
  """Helper for _AddMessageMethods()."""
  def MergeFromString(self, serialized):
    length = len(serialized)
    try:
      if self._InternalParse(serialized, 0, length) != length:
        # The only reason _InternalParse would return early is if it
        # encountered an end-group tag.
        raise message_mod.DecodeError('Unexpected end-group tag.')
    except (IndexError, TypeError):
      # Now ord(buf[p:p+1]) == ord('') gets TypeError.
      raise message_mod.DecodeError('Truncated message.')
    except struct.error as e:
      raise message_mod.DecodeError(e)
    return length   # Return this for legacy reasons.
  cls.MergeFromString = MergeFromString

  local_ReadTag = decoder.ReadTag
  local_SkipField = decoder.SkipField
  decoders_by_tag = cls._decoders_by_tag
  is_proto3 = message_descriptor.syntax == "proto3"

  def InternalParse(self, buffer, pos, end):
    self._Modified()
    field_dict = self._fields
    unknown_field_list = self._unknown_fields
    while pos != end:
      (tag_bytes, new_pos) = local_ReadTag(buffer, pos)
      field_decoder, field_desc = decoders_by_tag.get(tag_bytes, (None, None))
      if field_decoder is None:
        value_start_pos = new_pos
        new_pos = local_SkipField(buffer, new_pos, end, tag_bytes)
        if new_pos == -1:
          return pos
        if (not is_proto3 or
            api_implementation.GetPythonProto3PreserveUnknownsDefault()):
          if not unknown_field_list:
            unknown_field_list = self._unknown_fields = []
          unknown_field_list.append(
              (tag_bytes, buffer[value_start_pos:new_pos]))
        pos = new_pos
      else:
        pos = field_decoder(buffer, new_pos, end, self, field_dict)
        if field_desc:
          self._UpdateOneofState(field_desc)
    return pos
  cls._InternalParse = InternalParse


def _AddIsInitializedMethod(message_descriptor, cls):
  """Adds the IsInitialized and FindInitializationError methods to the
  protocol message class."""

  required_fields = [field for field in message_descriptor.fields
                           if field.label == _FieldDescriptor.LABEL_REQUIRED]

  def IsInitialized(self, errors=None):
    """Checks if all required fields of a message are set.

    Args:
      errors:  A list which, if provided, will be populated with the field
               paths of all missing required fields.

    Returns:
      True iff the specified message has all required fields set.
    """

    # Performance is critical so we avoid HasField() and ListFields().

    for field in required_fields:
      if (field not in self._fields or
          (field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE and
           not self._fields[field]._is_present_in_parent)):
        if errors is not None:
          errors.extend(self.FindInitializationErrors())
        return False

    for field, value in list(self._fields.items()):  # dict can change size!
      if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
        if field.label == _FieldDescriptor.LABEL_REPEATED:
          if (field.message_type.has_options and
              field.message_type.GetOptions().map_entry):
            continue
          for element in value:
            if not element.IsInitialized():
              if errors is not None:
                errors.extend(self.FindInitializationErrors())
              return False
        elif value._is_present_in_parent and not value.IsInitialized():
          if errors is not None:
            errors.extend(self.FindInitializationErrors())
          return False

    return True

  cls.IsInitialized = IsInitialized

  def FindInitializationErrors(self):
    """Finds required fields which are not initialized.

    Returns:
      A list of strings.  Each string is a path to an uninitialized field from
      the top-level message, e.g. "foo.bar[5].baz".
    """

    errors = []  # simplify things

    for field in required_fields:
      if not self.HasField(field.name):
        errors.append(field.name)

    for field, value in self.ListFields():
      if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
        if field.is_extension:
          name = "(%s)" % field.full_name
        else:
          name = field.name

        if _IsMapField(field):
          if _IsMessageMapField(field):
            for key in value:
              element = value[key]
              prefix = "%s[%s]." % (name, key)
              sub_errors = element.FindInitializationErrors()
              errors += [prefix + error for error in sub_errors]
          else:
            # ScalarMaps can't have any initialization errors.
            pass
        elif field.label == _FieldDescriptor.LABEL_REPEATED:
          for i in range(len(value)):
            element = value[i]
            prefix = "%s[%d]." % (name, i)
            sub_errors = element.FindInitializationErrors()
            errors += [prefix + error for error in sub_errors]
        else:
          prefix = name + "."
          sub_errors = value.FindInitializationErrors()
          errors += [prefix + error for error in sub_errors]

    return errors

  cls.FindInitializationErrors = FindInitializationErrors


def _AddMergeFromMethod(cls):
  LABEL_REPEATED = _FieldDescriptor.LABEL_REPEATED
  CPPTYPE_MESSAGE = _FieldDescriptor.CPPTYPE_MESSAGE

  def MergeFrom(self, msg):
    if not isinstance(msg, cls):
      raise TypeError(
          "Parameter to MergeFrom() must be instance of same class: "
          'expected %s got %s.' % (cls.__name__, msg.__class__.__name__))

    assert msg is not self
    self._Modified()

    fields = self._fields

    for field, value in msg._fields.items():
      if field.label == LABEL_REPEATED:
        field_value = fields.get(field)
        if field_value is None:
          # Construct a new object to represent this field.
          field_value = field._default_constructor(self)
          fields[field] = field_value
        field_value.MergeFrom(value)
      elif field.cpp_type == CPPTYPE_MESSAGE:
        if value._is_present_in_parent:
          field_value = fields.get(field)
          if field_value is None:
            # Construct a new object to represent this field.
            field_value = field._default_constructor(self)
            fields[field] = field_value
          field_value.MergeFrom(value)
      else:
        self._fields[field] = value
        if field.containing_oneof:
          self._UpdateOneofState(field)

    if msg._unknown_fields:
      if not self._unknown_fields:
        self._unknown_fields = []
      self._unknown_fields.extend(msg._unknown_fields)

  cls.MergeFrom = MergeFrom


def _AddWhichOneofMethod(message_descriptor, cls):
  def WhichOneof(self, oneof_name):
    """Returns the name of the currently set field inside a oneof, or None."""
    try:
      field = message_descriptor.oneofs_by_name[oneof_name]
    except KeyError:
      raise ValueError(
          'Protocol message has no oneof "%s" field.' % oneof_name)

    nested_field = self._oneofs.get(field, None)
    if nested_field is not None and self.HasField(nested_field.name):
      return nested_field.name
    else:
      return None

  cls.WhichOneof = WhichOneof


def _AddReduceMethod(cls):
  def __reduce__(self):  # pylint: disable=invalid-name
    return (type(self), (), self.__getstate__())
  cls.__reduce__ = __reduce__


def _Clear(self):
  # Clear fields.
  self._fields = {}
  self._unknown_fields = ()
  self._oneofs = {}
  self._Modified()


def _DiscardUnknownFields(self):
  self._unknown_fields = []
  for field, value in self.ListFields():
    if field.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
      if field.label == _FieldDescriptor.LABEL_REPEATED:
        for sub_message in value:
          sub_message.DiscardUnknownFields()
      else:
        value.DiscardUnknownFields()


def _SetListener(self, listener):
  if listener is None:
    self._listener = message_listener_mod.NullMessageListener()
  else:
    self._listener = listener


def _AddMessageMethods(message_descriptor, cls):
  """Adds implementations of all Message methods to cls."""
  _AddListFieldsMethod(message_descriptor, cls)
  _AddHasFieldMethod(message_descriptor, cls)
  _AddClearFieldMethod(message_descriptor, cls)
  if message_descriptor.is_extendable:
    _AddClearExtensionMethod(cls)
    _AddHasExtensionMethod(cls)
  _AddEqualsMethod(message_descriptor, cls)
  _AddStrMethod(message_descriptor, cls)
  _AddReprMethod(message_descriptor, cls)
  _AddUnicodeMethod(message_descriptor, cls)
  _AddByteSizeMethod(message_descriptor, cls)
  _AddSerializeToStringMethod(message_descriptor, cls)
  _AddSerializePartialToStringMethod(message_descriptor, cls)
  _AddMergeFromStringMethod(message_descriptor, cls)
  _AddIsInitializedMethod(message_descriptor, cls)
  _AddMergeFromMethod(cls)
  _AddWhichOneofMethod(message_descriptor, cls)
  _AddReduceMethod(cls)
  # Adds methods which do not depend on cls.
  cls.Clear = _Clear
  cls.DiscardUnknownFields = _DiscardUnknownFields
  cls._SetListener = _SetListener


def _AddPrivateHelperMethods(message_descriptor, cls):
  """Adds implementation of private helper methods to cls."""

  def Modified(self):
    """Sets the _cached_byte_size_dirty bit to true,
    and propagates this to our listener iff this was a state change.
    """

    # Note:  Some callers check _cached_byte_size_dirty before calling
    #   _Modified() as an extra optimization.  So, if this method is ever
    #   changed such that it does stuff even when _cached_byte_size_dirty is
    #   already true, the callers need to be updated.
    if not self._cached_byte_size_dirty:
      self._cached_byte_size_dirty = True
      self._listener_for_children.dirty = True
      self._is_present_in_parent = True
      self._listener.Modified()

  def _UpdateOneofState(self, field):
    """Sets field as the active field in its containing oneof.

    Will also delete currently active field in the oneof, if it is different
    from the argument. Does not mark the message as modified.
    """
    other_field = self._oneofs.setdefault(field.containing_oneof, field)
    if other_field is not field:
      del self._fields[other_field]
      self._oneofs[field.containing_oneof] = field

  cls._Modified = Modified
  cls.SetInParent = Modified
  cls._UpdateOneofState = _UpdateOneofState


class _Listener(object):

  """MessageListener implementation that a parent message registers with its
  child message.

  In order to support semantics like:

    foo.bar.baz.qux = 23
    assert foo.HasField('bar')

  ...child objects must have back references to their parents.
  This helper class is at the heart of this support.
  """

  def __init__(self, parent_message):
    """Args:
      parent_message: The message whose _Modified() method we should call when
        we receive Modified() messages.
    """
    # This listener establishes a back reference from a child (contained) object
    # to its parent (containing) object.  We make this a weak reference to avoid
    # creating cyclic garbage when the client finishes with the 'parent' object
    # in the tree.
    if isinstance(parent_message, weakref.ProxyType):
      self._parent_message_weakref = parent_message
    else:
      self._parent_message_weakref = weakref.proxy(parent_message)

    # As an optimization, we also indicate directly on the listener whether
    # or not the parent message is dirty.  This way we can avoid traversing
    # up the tree in the common case.
    self.dirty = False

  def Modified(self):
    if self.dirty:
      return
    try:
      # Propagate the signal to our parents iff this is the first field set.
      self._parent_message_weakref._Modified()
    except ReferenceError:
      # We can get here if a client has kept a reference to a child object,
      # and is now setting a field on it, but the child's parent has been
      # garbage-collected.  This is not an error.
      pass


class _OneofListener(_Listener):
  """Special listener implementation for setting composite oneof fields."""

  def __init__(self, parent_message, field):
    """Args:
      parent_message: The message whose _Modified() method we should call when
        we receive Modified() messages.
      field: The descriptor of the field being set in the parent message.
    """
    super(_OneofListener, self).__init__(parent_message)
    self._field = field

  def Modified(self):
    """Also updates the state of the containing oneof in the parent message."""
    try:
      self._parent_message_weakref._UpdateOneofState(self._field)
      super(_OneofListener, self).Modified()
    except ReferenceError:
      pass


# TODO(robinson): Move elsewhere?  This file is getting pretty ridiculous...
# TODO(robinson): Unify error handling of "unknown extension" crap.
# TODO(robinson): Support iteritems()-style iteration over all
# extensions with the "has" bits turned on?
class _ExtensionDict(object):

  """Dict-like container for supporting an indexable "Extensions"
  field on proto instances.

  Note that in all cases we expect extension handles to be
  FieldDescriptors.
  """

  def __init__(self, extended_message):
    """extended_message: Message instance for which we are the Extensions dict.
    """

    self._extended_message = extended_message

  def __getitem__(self, extension_handle):
    """Returns the current value of the given extension handle."""

    _VerifyExtensionHandle(self._extended_message, extension_handle)

    result = self._extended_message._fields.get(extension_handle)
    if result is not None:
      return result

    if extension_handle.label == _FieldDescriptor.LABEL_REPEATED:
      result = extension_handle._default_constructor(self._extended_message)
    elif extension_handle.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE:
      result = extension_handle.message_type._concrete_class()
      try:
        result._SetListener(self._extended_message._listener_for_children)
      except ReferenceError:
        pass
    else:
      # Singular scalar -- just return the default without inserting into the
      # dict.
      return extension_handle.default_value

    # Atomically check if another thread has preempted us and, if not, swap
    # in the new object we just created.  If someone has preempted us, we
    # take that object and discard ours.
    # WARNING:  We are relying on setdefault() being atomic.  This is true
    #   in CPython but we haven't investigated others.  This warning appears
    #   in several other locations in this file.
    result = self._extended_message._fields.setdefault(
        extension_handle, result)

    return result

  def __eq__(self, other):
    if not isinstance(other, self.__class__):
      return False

    my_fields = self._extended_message.ListFields()
    other_fields = other._extended_message.ListFields()

    # Get rid of non-extension fields.
    my_fields    = [ field for field in my_fields    if field.is_extension ]
    other_fields = [ field for field in other_fields if field.is_extension ]

    return my_fields == other_fields

  def __ne__(self, other):
    return not self == other

  def __hash__(self):
    raise TypeError('unhashable object')

  # Note that this is only meaningful for non-repeated, scalar extension
  # fields.  Note also that we may have to call _Modified() when we do
  # successfully set a field this way, to set any necssary "has" bits in the
  # ancestors of the extended message.
  def __setitem__(self, extension_handle, value):
    """If extension_handle specifies a non-repeated, scalar extension
    field, sets the value of that field.
    """

    _VerifyExtensionHandle(self._extended_message, extension_handle)

    if (extension_handle.label == _FieldDescriptor.LABEL_REPEATED or
        extension_handle.cpp_type == _FieldDescriptor.CPPTYPE_MESSAGE):
      raise TypeError(
          'Cannot assign to extension "%s" because it is a repeated or '
          'composite type.' % extension_handle.full_name)

    # It's slightly wasteful to lookup the type checker each time,
    # but we expect this to be a vanishingly uncommon case anyway.
    type_checker = type_checkers.GetTypeChecker(extension_handle)
    # pylint: disable=protected-access
    self._extended_message._fields[extension_handle] = (
        type_checker.CheckValue(value))
    self._extended_message._Modified()

  def _FindExtensionByName(self, name):
    """Tries to find a known extension with the specified name.

    Args:
      name: Extension full name.

    Returns:
      Extension field descriptor.
    """
    return self._extended_message._extensions_by_name.get(name, None)

  def _FindExtensionByNumber(self, number):
    """Tries to find a known extension with the field number.

    Args:
      number: Extension field number.

    Returns:
      Extension field descriptor.
    """
    return self._extended_message._extensions_by_number.get(number, None)
PK�\��
�K<K<#protobuf/internal/_parameterized.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Adds support for parameterized tests to Python's unittest TestCase class.

A parameterized test is a method in a test case that is invoked with different
argument tuples.

A simple example:

  class AdditionExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
       (1, 2, 3),
       (4, 5, 9),
       (1, 1, 3))
    def testAddition(self, op1, op2, result):
      self.assertEqual(result, op1 + op2)


Each invocation is a separate test case and properly isolated just
like a normal test method, with its own setUp/tearDown cycle. In the
example above, there are three separate testcases, one of which will
fail due to an assertion error (1 + 1 != 3).

Parameters for invididual test cases can be tuples (with positional parameters)
or dictionaries (with named parameters):

  class AdditionExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
       {'op1': 1, 'op2': 2, 'result': 3},
       {'op1': 4, 'op2': 5, 'result': 9},
    )
    def testAddition(self, op1, op2, result):
      self.assertEqual(result, op1 + op2)

If a parameterized test fails, the error message will show the
original test name (which is modified internally) and the arguments
for the specific invocation, which are part of the string returned by
the shortDescription() method on test cases.

The id method of the test, used internally by the unittest framework,
is also modified to show the arguments. To make sure that test names
stay the same across several invocations, object representations like

  >>> class Foo(object):
  ...  pass
  >>> repr(Foo())
  '<__main__.Foo object at 0x23d8610>'

are turned into '<__main__.Foo>'. For even more descriptive names,
especially in test logs, you can use the NamedParameters decorator. In
this case, only tuples are supported, and the first parameters has to
be a string (or an object that returns an apt name when converted via
str()):

  class NamedExample(parameterized.ParameterizedTestCase):
    @parameterized.NamedParameters(
       ('Normal', 'aa', 'aaa', True),
       ('EmptyPrefix', '', 'abc', True),
       ('BothEmpty', '', '', True))
    def testStartsWith(self, prefix, string, result):
      self.assertEqual(result, strings.startswith(prefix))

Named tests also have the benefit that they can be run individually
from the command line:

  $ testmodule.py NamedExample.testStartsWithNormal
  .
  --------------------------------------------------------------------
  Ran 1 test in 0.000s

  OK

Parameterized Classes
=====================
If invocation arguments are shared across test methods in a single
ParameterizedTestCase class, instead of decorating all test methods
individually, the class itself can be decorated:

  @parameterized.Parameters(
    (1, 2, 3)
    (4, 5, 9))
  class ArithmeticTest(parameterized.ParameterizedTestCase):
    def testAdd(self, arg1, arg2, result):
      self.assertEqual(arg1 + arg2, result)

    def testSubtract(self, arg2, arg2, result):
      self.assertEqual(result - arg1, arg2)

Inputs from Iterables
=====================
If parameters should be shared across several test cases, or are dynamically
created from other sources, a single non-tuple iterable can be passed into
the decorator. This iterable will be used to obtain the test cases:

  class AdditionExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
      c.op1, c.op2, c.result for c in testcases
    )
    def testAddition(self, op1, op2, result):
      self.assertEqual(result, op1 + op2)


Single-Argument Test Methods
============================
If a test method takes only one argument, the single argument does not need to
be wrapped into a tuple:

  class NegativeNumberExample(parameterized.ParameterizedTestCase):
    @parameterized.Parameters(
       -1, -3, -4, -5
    )
    def testIsNegative(self, arg):
      self.assertTrue(IsNegative(arg))
"""

__author__ = 'tmarek@google.com (Torsten Marek)'

import collections
import functools
import re
import types
try:
  import unittest2 as unittest
except ImportError:
  import unittest
import uuid

import six

ADDR_RE = re.compile(r'\<([a-zA-Z0-9_\-\.]+) object at 0x[a-fA-F0-9]+\>')
_SEPARATOR = uuid.uuid1().hex
_FIRST_ARG = object()
_ARGUMENT_REPR = object()


def _CleanRepr(obj):
  return ADDR_RE.sub(r'<\1>', repr(obj))


# Helper function formerly from the unittest module, removed from it in
# Python 2.7.
def _StrClass(cls):
  return '%s.%s' % (cls.__module__, cls.__name__)


def _NonStringIterable(obj):
  return (isinstance(obj, collections.Iterable) and not
          isinstance(obj, six.string_types))


def _FormatParameterList(testcase_params):
  if isinstance(testcase_params, collections.Mapping):
    return ', '.join('%s=%s' % (argname, _CleanRepr(value))
                     for argname, value in testcase_params.items())
  elif _NonStringIterable(testcase_params):
    return ', '.join(map(_CleanRepr, testcase_params))
  else:
    return _FormatParameterList((testcase_params,))


class _ParameterizedTestIter(object):
  """Callable and iterable class for producing new test cases."""

  def __init__(self, test_method, testcases, naming_type):
    """Returns concrete test functions for a test and a list of parameters.

    The naming_type is used to determine the name of the concrete
    functions as reported by the unittest framework. If naming_type is
    _FIRST_ARG, the testcases must be tuples, and the first element must
    have a string representation that is a valid Python identifier.

    Args:
      test_method: The decorated test method.
      testcases: (list of tuple/dict) A list of parameter
                 tuples/dicts for individual test invocations.
      naming_type: The test naming type, either _NAMED or _ARGUMENT_REPR.
    """
    self._test_method = test_method
    self.testcases = testcases
    self._naming_type = naming_type

  def __call__(self, *args, **kwargs):
    raise RuntimeError('You appear to be running a parameterized test case '
                       'without having inherited from parameterized.'
                       'ParameterizedTestCase. This is bad because none of '
                       'your test cases are actually being run.')

  def __iter__(self):
    test_method = self._test_method
    naming_type = self._naming_type

    def MakeBoundParamTest(testcase_params):
      @functools.wraps(test_method)
      def BoundParamTest(self):
        if isinstance(testcase_params, collections.Mapping):
          test_method(self, **testcase_params)
        elif _NonStringIterable(testcase_params):
          test_method(self, *testcase_params)
        else:
          test_method(self, testcase_params)

      if naming_type is _FIRST_ARG:
        # Signal the metaclass that the name of the test function is unique
        # and descriptive.
        BoundParamTest.__x_use_name__ = True
        BoundParamTest.__name__ += str(testcase_params[0])
        testcase_params = testcase_params[1:]
      elif naming_type is _ARGUMENT_REPR:
        # __x_extra_id__ is used to pass naming information to the __new__
        # method of TestGeneratorMetaclass.
        # The metaclass will make sure to create a unique, but nondescriptive
        # name for this test.
        BoundParamTest.__x_extra_id__ = '(%s)' % (
            _FormatParameterList(testcase_params),)
      else:
        raise RuntimeError('%s is not a valid naming type.' % (naming_type,))

      BoundParamTest.__doc__ = '%s(%s)' % (
          BoundParamTest.__name__, _FormatParameterList(testcase_params))
      if test_method.__doc__:
        BoundParamTest.__doc__ += '\n%s' % (test_method.__doc__,)
      return BoundParamTest
    return (MakeBoundParamTest(c) for c in self.testcases)


def _IsSingletonList(testcases):
  """True iff testcases contains only a single non-tuple element."""
  return len(testcases) == 1 and not isinstance(testcases[0], tuple)


def _ModifyClass(class_object, testcases, naming_type):
  assert not getattr(class_object, '_id_suffix', None), (
      'Cannot add parameters to %s,'
      ' which already has parameterized methods.' % (class_object,))
  class_object._id_suffix = id_suffix = {}
  # We change the size of __dict__ while we iterate over it, 
  # which Python 3.x will complain about, so use copy().
  for name, obj in class_object.__dict__.copy().items():
    if (name.startswith(unittest.TestLoader.testMethodPrefix)
        and isinstance(obj, types.FunctionType)):
      delattr(class_object, name)
      methods = {}
      _UpdateClassDictForParamTestCase(
          methods, id_suffix, name,
          _ParameterizedTestIter(obj, testcases, naming_type))
      for name, meth in methods.items():
        setattr(class_object, name, meth)


def _ParameterDecorator(naming_type, testcases):
  """Implementation of the parameterization decorators.

  Args:
    naming_type: The naming type.
    testcases: Testcase parameters.

  Returns:
    A function for modifying the decorated object.
  """
  def _Apply(obj):
    if isinstance(obj, type):
      _ModifyClass(
          obj,
          list(testcases) if not isinstance(testcases, collections.Sequence)
          else testcases,
          naming_type)
      return obj
    else:
      return _ParameterizedTestIter(obj, testcases, naming_type)

  if _IsSingletonList(testcases):
    assert _NonStringIterable(testcases[0]), (
        'Single parameter argument must be a non-string iterable')
    testcases = testcases[0]

  return _Apply


def Parameters(*testcases):
  """A decorator for creating parameterized tests.

  See the module docstring for a usage example.
  Args:
    *testcases: Parameters for the decorated method, either a single
                iterable, or a list of tuples/dicts/objects (for tests
                with only one argument).

  Returns:
     A test generator to be handled by TestGeneratorMetaclass.
  """
  return _ParameterDecorator(_ARGUMENT_REPR, testcases)


def NamedParameters(*testcases):
  """A decorator for creating parameterized tests.

  See the module docstring for a usage example. The first element of
  each parameter tuple should be a string and will be appended to the
  name of the test method.

  Args:
    *testcases: Parameters for the decorated method, either a single
                iterable, or a list of tuples.

  Returns:
     A test generator to be handled by TestGeneratorMetaclass.
  """
  return _ParameterDecorator(_FIRST_ARG, testcases)


class TestGeneratorMetaclass(type):
  """Metaclass for test cases with test generators.

  A test generator is an iterable in a testcase that produces callables. These
  callables must be single-argument methods. These methods are injected into
  the class namespace and the original iterable is removed. If the name of the
  iterable conforms to the test pattern, the injected methods will be picked
  up as tests by the unittest framework.

  In general, it is supposed to be used in conjunction with the
  Parameters decorator.
  """

  def __new__(mcs, class_name, bases, dct):
    dct['_id_suffix'] = id_suffix = {}
    for name, obj in dct.items():
      if (name.startswith(unittest.TestLoader.testMethodPrefix) and
          _NonStringIterable(obj)):
        iterator = iter(obj)
        dct.pop(name)
        _UpdateClassDictForParamTestCase(dct, id_suffix, name, iterator)

    return type.__new__(mcs, class_name, bases, dct)


def _UpdateClassDictForParamTestCase(dct, id_suffix, name, iterator):
  """Adds individual test cases to a dictionary.

  Args:
    dct: The target dictionary.
    id_suffix: The dictionary for mapping names to test IDs.
    name: The original name of the test case.
    iterator: The iterator generating the individual test cases.
  """
  for idx, func in enumerate(iterator):
    assert callable(func), 'Test generators must yield callables, got %r' % (
        func,)
    if getattr(func, '__x_use_name__', False):
      new_name = func.__name__
    else:
      new_name = '%s%s%d' % (name, _SEPARATOR, idx)
    assert new_name not in dct, (
        'Name of parameterized test case "%s" not unique' % (new_name,))
    dct[new_name] = func
    id_suffix[new_name] = getattr(func, '__x_extra_id__', '')


class ParameterizedTestCase(unittest.TestCase):
  """Base class for test cases using the Parameters decorator."""
  __metaclass__ = TestGeneratorMetaclass

  def _OriginalName(self):
    return self._testMethodName.split(_SEPARATOR)[0]

  def __str__(self):
    return '%s (%s)' % (self._OriginalName(), _StrClass(self.__class__))

  def id(self):  # pylint: disable=invalid-name
    """Returns the descriptive ID of the test.

    This is used internally by the unittesting framework to get a name
    for the test to be used in reports.

    Returns:
      The test id.
    """
    return '%s.%s%s' % (_StrClass(self.__class__),
                        self._OriginalName(),
                        self._id_suffix.get(self._testMethodName, ''))


def CoopParameterizedTestCase(other_base_class):
  """Returns a new base class with a cooperative metaclass base.

  This enables the ParameterizedTestCase to be used in combination
  with other base classes that have custom metaclasses, such as
  mox.MoxTestBase.

  Only works with metaclasses that do not override type.__new__.

  Example:

    import google3
    import mox

    from google3.testing.pybase import parameterized

    class ExampleTest(parameterized.CoopParameterizedTestCase(mox.MoxTestBase)):
      ...

  Args:
    other_base_class: (class) A test case base class.

  Returns:
    A new class object.
  """
  metaclass = type(
      'CoopMetaclass',
      (other_base_class.__metaclass__,
       TestGeneratorMetaclass), {})
  return metaclass(
      'CoopParameterizedTestCase',
      (other_base_class, ParameterizedTestCase), {})
PK�\��zʇ�(protobuf/internal/more_extensions_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/more_extensions.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/more_extensions.proto',
  package='google.protobuf.internal',
  syntax='proto2',
  serialized_pb=_b('\n.google/protobuf/internal/more_extensions.proto\x12\x18google.protobuf.internal\"P\n\x0fTopLevelMessage\x12=\n\nsubmessage\x18\x01 \x01(\x0b\x32).google.protobuf.internal.ExtendedMessage\"\x1b\n\x0f\x45xtendedMessage*\x08\x08\x01\x10\x80\x80\x80\x80\x02\"-\n\x0e\x46oreignMessage\x12\x1b\n\x13\x66oreign_message_int\x18\x01 \x01(\x05:I\n\x16optional_int_extension\x12).google.protobuf.internal.ExtendedMessage\x18\x01 \x01(\x05:w\n\x1aoptional_message_extension\x12).google.protobuf.internal.ExtendedMessage\x18\x02 \x01(\x0b\x32(.google.protobuf.internal.ForeignMessage:I\n\x16repeated_int_extension\x12).google.protobuf.internal.ExtendedMessage\x18\x03 \x03(\x05:w\n\x1arepeated_message_extension\x12).google.protobuf.internal.ExtendedMessage\x18\x04 \x03(\x0b\x32(.google.protobuf.internal.ForeignMessage')
)


OPTIONAL_INT_EXTENSION_FIELD_NUMBER = 1
optional_int_extension = _descriptor.FieldDescriptor(
  name='optional_int_extension', full_name='google.protobuf.internal.optional_int_extension', index=0,
  number=1, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_MESSAGE_EXTENSION_FIELD_NUMBER = 2
optional_message_extension = _descriptor.FieldDescriptor(
  name='optional_message_extension', full_name='google.protobuf.internal.optional_message_extension', index=1,
  number=2, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_INT_EXTENSION_FIELD_NUMBER = 3
repeated_int_extension = _descriptor.FieldDescriptor(
  name='repeated_int_extension', full_name='google.protobuf.internal.repeated_int_extension', index=2,
  number=3, type=5, cpp_type=1, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_MESSAGE_EXTENSION_FIELD_NUMBER = 4
repeated_message_extension = _descriptor.FieldDescriptor(
  name='repeated_message_extension', full_name='google.protobuf.internal.repeated_message_extension', index=3,
  number=4, type=11, cpp_type=10, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)


_TOPLEVELMESSAGE = _descriptor.Descriptor(
  name='TopLevelMessage',
  full_name='google.protobuf.internal.TopLevelMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='submessage', full_name='google.protobuf.internal.TopLevelMessage.submessage', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=76,
  serialized_end=156,
)


_EXTENDEDMESSAGE = _descriptor.Descriptor(
  name='ExtendedMessage',
  full_name='google.protobuf.internal.ExtendedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1, 536870912), ],
  oneofs=[
  ],
  serialized_start=158,
  serialized_end=185,
)


_FOREIGNMESSAGE = _descriptor.Descriptor(
  name='ForeignMessage',
  full_name='google.protobuf.internal.ForeignMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='foreign_message_int', full_name='google.protobuf.internal.ForeignMessage.foreign_message_int', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=187,
  serialized_end=232,
)

_TOPLEVELMESSAGE.fields_by_name['submessage'].message_type = _EXTENDEDMESSAGE
DESCRIPTOR.message_types_by_name['TopLevelMessage'] = _TOPLEVELMESSAGE
DESCRIPTOR.message_types_by_name['ExtendedMessage'] = _EXTENDEDMESSAGE
DESCRIPTOR.message_types_by_name['ForeignMessage'] = _FOREIGNMESSAGE
DESCRIPTOR.extensions_by_name['optional_int_extension'] = optional_int_extension
DESCRIPTOR.extensions_by_name['optional_message_extension'] = optional_message_extension
DESCRIPTOR.extensions_by_name['repeated_int_extension'] = repeated_int_extension
DESCRIPTOR.extensions_by_name['repeated_message_extension'] = repeated_message_extension
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TopLevelMessage = _reflection.GeneratedProtocolMessageType('TopLevelMessage', (_message.Message,), dict(
  DESCRIPTOR = _TOPLEVELMESSAGE,
  __module__ = 'google.protobuf.internal.more_extensions_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.TopLevelMessage)
  ))
_sym_db.RegisterMessage(TopLevelMessage)

ExtendedMessage = _reflection.GeneratedProtocolMessageType('ExtendedMessage', (_message.Message,), dict(
  DESCRIPTOR = _EXTENDEDMESSAGE,
  __module__ = 'google.protobuf.internal.more_extensions_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.ExtendedMessage)
  ))
_sym_db.RegisterMessage(ExtendedMessage)

ForeignMessage = _reflection.GeneratedProtocolMessageType('ForeignMessage', (_message.Message,), dict(
  DESCRIPTOR = _FOREIGNMESSAGE,
  __module__ = 'google.protobuf.internal.more_extensions_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.ForeignMessage)
  ))
_sym_db.RegisterMessage(ForeignMessage)

ExtendedMessage.RegisterExtension(optional_int_extension)
optional_message_extension.message_type = _FOREIGNMESSAGE
ExtendedMessage.RegisterExtension(optional_message_extension)
ExtendedMessage.RegisterExtension(repeated_int_extension)
repeated_message_extension.message_type = _FOREIGNMESSAGE
ExtendedMessage.RegisterExtension(repeated_message_extension)

# @@protoc_insertion_point(module_scope)
PK�\f�`�����$protobuf/internal/python_message.pycnu�[����
���hc@s!dZdZddlmZddlZddlZddlZddlZddlm	Z	ddlm
Z
ddlmZddlmZdd	lm
Z
dd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZejZdZdefd��YZd�Zd�Zd�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,d#�Z-d$�Z.d%�Z/d&�Z0d'�Z1d(�Z2d)�Z3d*�Z4d+Z5d,Z6d-�Z7d.�Z8d/�Z9d0�Z:d1�Z;d2�Z<d3�Z=d4�Z>d5�Z?d6�Z@d7�ZAd8�ZBd9�ZCd:�ZDd;�ZEd<�ZFd=�ZGd>�ZHd?�ZId@�ZJdA�ZKdB�ZLdC�ZMdDeNfdE��YZOdFeOfdG��YZPdHeNfdI��YZQdS(Js
Contains a metaclass and helper functions used to create
protocol message classes from Descriptor objects at runtime.

Recall that a metaclass is the "type" of a class.
(A class is to a metaclass what an instance is to a class.)

In this case, we use the GeneratedProtocolMessageType metaclass
to inject all the useful functionality into the classes
output by the protocol compiler at compile-time.

The upshot of all this is that the real implementation
details for ALL pure-Python protocol buffers are *here in
this file*.
s#robinson@google.com (Will Robinson)i����(tBytesION(tapi_implementation(t
containers(tdecoder(tencoder(tenum_type_wrapper(tmessage_listener(t
type_checkers(twell_known_types(twire_format(t
descriptor(tmessage(ttext_formatsgoogle.protobuf.AnytGeneratedProtocolMessageTypecBs&eZdZdZd�Zd�ZRS(sQMetaclass for protocol message classes created at runtime from Descriptors.

  We add implementations for all methods described in the Message class.  We
  also create properties to allow getting/setting all fields in the protocol
  message.  Finally, we create slots to prevent users from accidentally
  "setting" nonexistent fields in the protocol message, which then wouldn't get
  serialized / deserialized properly.

  The protocol compiler currently uses this metaclass to create protocol
  message classes at runtime.  Clients can also manually create their own
  classes at runtime, as in this example:

  mydescriptor = Descriptor(.....)
  factory = symbol_database.Default()
  factory.pool.AddDescriptor(mydescriptor)
  MyProtoClass = factory.GetPrototype(mydescriptor)
  myproto_instance = MyProtoClass()
  myproto.foo_field = 23
  ...
  t
DESCRIPTORcCs~|tj}|jtjkr9|tj|jf7}nt||�t||�tt|�}|j||||�}|S(sCustom allocation for runtime-generated class types.

    We override __new__ because this is apparently the only place
    where we can meaningfully set __slots__ on the class we're creating(?).
    (The interplay between metaclasses and slots is not very well-documented).

    Args:
      name: Name of the class (ignored, but required by the
        metaclass protocol).
      bases: Base classes of the class we're constructing.
        (Should be message.Message).  We ignore this field, but
        it's required by the metaclass protocol
      dictionary: The class dictionary of the class we're
        constructing.  dictionary[_DESCRIPTOR_KEY] must contain
        a Descriptor object describing this protocol message
        type.

    Returns:
      Newly-allocated class.
    (	R
t_DESCRIPTOR_KEYt	full_nameRtWKTBASESt&_AddClassAttributesForNestedExtensionst	_AddSlotstsupert__new__(tclstnametbasest
dictionaryR
t
superclasst	new_class((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRis


cCs�|tj}i|_|jrP|j�jrPtj|�df|jtj	<nx|j
D]}t||�qZW||_t
||�t||�t||�t||�t|�t||�t||�tt|�}|j|||�dS(s�Here we perform the majority of our work on the class.
    We add enum getters, an __init__ method, implementations
    of all Message methods, and properties for all fields
    in the protocol type.

    Args:
      name: Name of the class (ignored, but required by the
        metaclass protocol).
      bases: Base classes of the class we're constructing.
        (Should be message.Message).  We ignore this field, but
        it's required by the metaclass protocol
      dictionary: The class dictionary of the class we're
        constructing.  dictionary[_DESCRIPTOR_KEY] must contain
        a Descriptor object describing this protocol message
        type.
    N(R
Rt_decoders_by_tagthas_optionst
GetOptionstmessage_set_wire_formatRtMessageSetItemDecodertNonetMESSAGE_SET_ITEM_TAGtfieldst_AttachFieldHelperst_concrete_classt_AddEnumValuest_AddInitMethodt_AddPropertiesForFieldst_AddPropertiesForExtensionst_AddStaticMethodst_AddMessageMethodst_AddPrivateHelperMethodsRt__init__(RRRRR
tfieldR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR-�s"
		"	






(t__name__t
__module__t__doc__RRR-(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR
Ns	cCs|S(sReturns the name of the public property attribute which
  clients can use to get and (in some cases) set the value
  of a protocol message field.

  Args:
    proto_field_name: The protocol message field name, exactly
      as it appears (or would appear) in a .proto file.
  ((tproto_field_name((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
_PropertyName�scCs�t|t�s"td|��n|jsAtd|j��n|js`td|j��n|j|jk	r�td|j|jj|jjf��ndS(s0Verify that the given extension handle is valid.s3HasExtension() expects an extension handle, got: %ss"%s" is not an extension.s""%s" is missing a containing_type.sKExtension "%s" extends message type "%s", but this message is of type "%s".N(t
isinstancet_FieldDescriptortKeyErrortis_extensionRtcontaining_typeR(Rtextension_handle((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_VerifyExtensionHandle�s
			c	Cs)ddddddddd	g	|d
<dS(sAdds a __slots__ entry to dictionary, containing the names of all valid
  attributes for this message type.

  Args:
    message_descriptor: A Descriptor instance describing this message type.
    dictionary: Class dictionary to which we'll add a '__slots__' entry.
  t_cached_byte_sizet_cached_byte_size_dirtyt_fieldst_unknown_fieldst_is_present_in_parentt	_listenert_listener_for_childrent__weakref__t_oneofst	__slots__N((tmessage_descriptorR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�scCsI|joH|jjoH|jj�joH|jtjkoH|jtj	kS(N(
R7R8RRRttypeR5tTYPE_MESSAGEtlabeltLABEL_OPTIONAL(R.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_IsMessageSetExtension�s
	cCs.|jtjko-|jjo-|jj�jS(N(RFR5RGtmessage_typeRRt	map_entry(R.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_IsMapFieldscCs |jjd}|jtjkS(Ntvalue(RKtfields_by_nametcpp_typeR5tCPPTYPE_MESSAGE(R.t
value_type((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_IsMessageMapField
scs��jtjk��o'tj�j�}|s9t}ng�jjdkrf�j	o`�j
�j}n:�j	o��j
�jd�o��j
�jtk}|}t
����r�tj��}tj�t���}nqt��rtj�j�}tj�j�}n>tj�j�j�|�}tj�j�j�|�}|�_|�_t���_����fd�}|tj�jt��r�tj�j�r�|tjt�ndS(Ntproto2tpackedcs�tj�j|�}�j}|tjkrHtj��rHtj}nd}�j
dk	rf�}n�r�t��}tj
�t��|�}n%tj|�j�|��j�}||f�j|<dS(N(RtTagBytestnumberRFR5t	TYPE_ENUMRtSupportsOpenEnumst
TYPE_INT32R!tcontaining_oneofRSRt
MapDecodert_GetInitializeDefaultForMaptTYPE_TO_DECODERt_default_constructorR(twiretypet	is_packedt	tag_bytestdecode_typetoneof_descriptortis_message_mapt
field_decoder(Rtfield_descriptortis_map_entrytis_repeated(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
AddDecoder4s"		
( RHR5tLABEL_REPEATEDR	tIsTypePackableRFtFalseR8tsyntaxRRRUtHasFieldRMRt
MapEncodertMapSizerRSRJtMessageSetItemEncoderRWtMessageSetItemSizerRtTYPE_TO_ENCODERt
TYPE_TO_SIZERt_encodert_sizert _DefaultValueConstructorForFieldR_tFIELD_TYPE_TO_WIRE_TYPEtWIRETYPE_LENGTH_DELIMITEDtTrue(RRgtis_packableRathas_packed_falset
field_encodertsizerRj((RRgRhRisK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR$sB				

		cCsF|j}x6|j�D](\}}||ks4t�|||<qWdS(N(textensions_by_nametitemstAssertionError(R
Rtextension_dicttextension_nametextension_field((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRUs	cCs^xW|jD]L}t||jtj|��x'|jD]}t||j|j�q6Wq
WdS(sSets class-level attributes for all enum fields defined in this message.

  Also exporting a class-level object that can name enum values.

  Args:
    descriptor: Descriptor object for this message type.
    cls: Class we're constructing for this message type.
  N(t
enum_typestsetattrRRtEnumTypeWrappertvaluesRW(R
Rt	enum_typet
enum_value((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR&\s	cs��jtjkr(td�j��n�jj}tj|d��|d�t	��rv���fd�}|Stj������fd�}|SdS(Ns&map_entry set on non-repeated field %stkeyRNcstj|j�j��j�S(N(Rt
MessageMapRARK(R(R.tkey_checkertvalue_field(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakeMessageMapDefaulttscstj|j���j�S(N(Rt	ScalarMapRARK(R(R.R�t
value_checker(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakePrimitiveMapDefault{s(
RHR5Rkt
ValueErrorRRKRORtGetTypeCheckerRS(R.ROR�R�((R.R�R�R�sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR]ks
cs�t��rt��S�jtjkr��jrV�jgkrVtd�j��n�jtj	kr��j
��fd�}|Stj����fd�}|Sn�jtj	kr��j
���fd�}|S�fd�}|S(s�Returns a function which returns a default value for a field.

  Args:
    field: FieldDescriptor object for this field.

  The returned function has one argument:
    message: Message instance containing this field, or a weakref proxy
      of same.

  That function in turn returns a default value for this field.  The default
    value may refer back to |message| via a weak reference.
  s/Repeated field default value not empty list: %scstj|j�j�S(N(RtRepeatedCompositeFieldContainerRARK(R(R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakeRepeatedMessageDefault�scstj|j��S(N(RtRepeatedScalarFieldContainerRA(R(ttype_checker(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakeRepeatedScalarDefault�scs>�j�}|j�jdk	r0t|��n|j�|S(N(R%t_SetListenerR[R!t_OneofListenerRA(Rtresult(R.RK(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakeSubMessageDefault�s

cs�jS(N(t
default_value(R(R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytMakeScalarDefault�s(
RMR]RHR5Rkthas_default_valueR�R�RPRQRKRR�(R.R�R�R�R�((R.RKR�sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRx�s&
		cCs�tj�d}t|j�dkrYt|�tkrYtdt|�||f�}ntjt|�|tj�d�dS(sCRe-raise the currently-handled TypeError with the field name added.is%s for field %s.%siN(	tsystexc_infotlentargsRFt	TypeErrortstrtsixtreraise(tmessage_namet
field_nametexc((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_ReraiseTypeErrorWithFieldName�s'"cs:d����fd�}d|_d|_||_dS(sAdds an __init__ method to cls.cSsXt|tj�rTy|j|jSWqTtk
rPtd|j|f��qTXn|S(sConvert a string or integer enum value to an integer.

    If the value is a string, it is converted to the enum value in
    enum_type with the same name.  If the value is not a string, it's
    returned as-is.  (No conversion or bounds-checking is done.)
    s Enum type %s: unknown label "%s"(R4R�tstring_typestvalues_by_nameRWR6R�R(R�RN((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_GetIntegerEnumValue�s
c	s�d|_t|�dk|_i|_i|_d|_t|_tj	�|_
t|�|_xs|j
�D]e\}}t�|�}|dkr�td�j|f��n|dkr�qmn|jtjkr�|j|�}|jtjkr�t|�rFt|�r6x3|D]}||j||�qWq�|j|�q�x�|D]8}t|t�rr|j|�qM|j�j|�qMWnG|jtjkr�g|D]}�|j |�^q�}n|j!|�||j|<qm|jtjkrs|j|�}|}t|t�r.|j"j#|�}ny|j|�Wn!tk
rbt$�j|�nX||j|<qm|jtjkr��|j |�}nyt%|||�Wqmtk
r�t$�j|�qmXqmWdS(Nis,%s() got an unexpected keyword argument '%s'((&R;R�R<R=RCR>RmR?tmessage_listener_modtNullMessageListenerR@t	_ListenerRAR�t_GetFieldByNameR!R�RRHR5RkR_RPRQRMRSt	MergeFromtupdateR4tdicttaddtCPPTYPE_ENUMR�textendRKR%R�R�(	tselftkwargsR�tfield_valueR.tcopyR�tvaltnew_val(R�RE(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytinit�s`					

%


N(R!R0R1R-(RERR�((R�REsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR'�s
	=		cCs@y|j|SWn*tk
r;td|j|f��nXdS(s�Returns a field descriptor by field name.

  Args:
    message_descriptor: A Descriptor describing all fields in message.
    field_name: The name of the field to retrieve.
  Returns:
    The field descriptor associated with the field name.
  s&Protocol message %s has no "%s" field.N(ROR6R�R(RER�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�s
	
cCsCx|jD]}t||�q
W|jr?td��|_ndS(s=Adds properties for all fields in this protocol message type.cSs
t|�S(N(t_ExtensionDict(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt<lambda>/tN(R#t_AddPropertiesForFieldt
is_extendabletpropertyt
Extensions(R
RR.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR('s	cCs�tjdkst�|jj�d}t|||j�|jtjkr]t	||�n/|j
tjkrt||�n
t
||�dS(s#Adds a public property for a protocol message field.
  Clients can use this property to get and (in the case
  of non-repeated scalar fields) directly set the value
  of a protocol message field.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  i
t
_FIELD_NUMBERN(R5tMAX_CPPTYPER�RtupperR�RWRHRkt_AddPropertiesForRepeatedFieldRPRQt*_AddPropertiesForNonRepeatedCompositeFieldt'_AddPropertiesForNonRepeatedScalarField(R.Rt
constant_name((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�2scsv�j�t��}�fd�}d|_d�|_�fd�}d�}t||t||d|��dS(sAdds a public property for a "repeated" protocol message field.  Clients
  can use this property to get the value of the field, which will be either a
  _RepeatedScalarFieldContainer or _RepeatedCompositeFieldContainer (see
  below).

  Note that when clients add values to these containers, we perform
  type-checking in the case of repeated scalar fields, and we also set any
  necessary "has" bits as a side-effect.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  csI|jj��}|dkrE�j|�}|jj�|�}n|S(N(R=tgetR!R_t
setdefault(R�R�(R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytgetter\s
sGetter for %s.cstd���dS(NsIAssignment not allowed to repeated field "%s" in protocol message object.(tAttributeError(R�t	new_value(R2(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytsetteross/Magic attribute generated for "%s" proto field.tdocN(RR3R!R0R1R�R�(R.Rt
property_nameR�R�R�((R.R2sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�Ks		

c	s��j}t|�}tj����j�t�}�jjdk}��fd�}d	|_	d||_
|o}�j����fd���jr���fd�}n�}d	|_	d||_
d|}t||t
||d|��d	S(
s�Adds a public property for a nonrepeated, scalar protocol message field.
  Clients can use this property to get and directly set the value of the field.
  Note that when the client sets the value of a field by using this property,
  all necessary "has" bits are set as a side-effect, and we also perform
  type-checking.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  tproto3cs|jj���S(N(R=R�(R�(R�R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��ssGetter for %s.csY�j|�}�r2|r2|jj�d�n
||j�<|jsU|j�ndS(N(t
CheckValueR=tpopR!R<t	_Modified(R�R�(tclear_when_set_to_defaultR.R�(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytfield_setter�s

	cs�||�|j��dS(N(t_UpdateOneofState(R�R�(R.R�(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s
sSetter for %s.s/Magic attribute generated for "%s" proto field.R�N(RR3RR�R�tsetR8RnR!R0R1R[R�R�(	R.RR2R�tvalid_valuest	is_proto3R�R�R�((R�R�R.R�R�sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�ws$				
		

csv�j�t��}�fd�}d|_d�|_�fd�}d�}t||t||d|��dS(sNAdds a public property for a nonrepeated, composite protocol message field.
  A composite field is a "group" or "message" field.

  Clients can use this property to get the value of the field, but cannot
  assign to the property directly.

  Args:
    field: A FieldDescriptor for this field.
    cls: The class we're constructing.
  csI|jj��}|dkrE�j|�}|jj�|�}n|S(N(R=R�R!R_R�(R�R�(R.(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s
sGetter for %s.cstd���dS(NsJAssignment not allowed to composite field "%s" in protocol message object.(R�(R�R�(R2(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��ss/Magic attribute generated for "%s" proto field.R�N(RR3R!R0R1R�R�(R.RR�R�R�R�((R.R2sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s
		

cCs�|j}x=|j�D]/\}}|j�d}t|||j�qW|jdk	r�|jj}|j||_|j	||_	ndS(s=Adds properties for all fields in this protocol message type.R�N(
R�R�R�R�RWtfileR!tpoolt_extensions_by_numbert_extensions_by_name(R
RR�R�R�R�R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR)�s	cs@�fd�}t|��_�fd�}t|��_dS(Ncs3�j|_�jjjj|�t�|�dS(N(RR8R�R�tAddExtensionDescriptorR$(R9(R(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytRegisterExtension�scs��}|j|�|S(N(tMergeFromString(tsR(R(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
FromString�s	
(tstaticmethodR�R�(RR�R�((RsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR*�scCsM|djtjkr$t|d�S|djtjkrE|djStSdS(s�Given a (FieldDescriptor, value) tuple from _fields, return true if the
  value should be included in the list returned by ListFields().iiN(RHR5RktboolRPRQR?R{(titem((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
_IsPresent�s
cCsd�}||_dS(s Helper for _AddMessageMethods().cSsEg|jj�D]}t|�r|^q}|jdd��|S(NR�cSs|djS(Ni(RW(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�R�(R=R�R�tsort(R�R�t
all_fields((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
ListFields	s.N(R�(RERR�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddListFieldsMethods	s:Protocol message has no non-repeated submessage field "%s"s/Protocol message has no non-repeated field "%s"cs�|jdk}|rtnt�i�x^|jD]S}|jtjkrOq1n|rw|jtjkrw|j	rwq1n|�|j
<q1W|s�x!|jD]}|�|j
<q�Wn���fd���|_dS(s Helper for _AddMessageMethods().R�cs�y�|}Wn!tk
r1t�|��nXt|tj�rwy�||j|j�SWq�tk
rstSXnD|jt	j
kr�|jj|�}|dk	o�|jS||jkSdS(N(R6R�R4tdescriptor_modtOneofDescriptorRCRRmRPR5RQR=R�R!R?(R�R�R.RN(Rot	error_msgthassable_fields(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRo(s

N(
Rnt_Proto3HasErrort_Proto2HasErrorR#RHR5RkRPRQR[RtoneofsRo(RERR�R.toneof((RoR�R�sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddHasFieldMethods
cs�fd�}||_dS(s Helper for _AddMessageMethods().csy�j|}Wnrtk
r�y4�j|}||jkrP|j|}ndSWq�tk
r�td�j|f��q�XnX||jkr�t|j|d�r�|j|j�n|j|=|jj	|j
d�|kr�|j|j
=q�n|j�dS(Ns(Protocol message %s() has no "%s" field.tInvalidateIterators(
ROR6toneofs_by_nameRCR�RR=thasattrR�R�R[R!R�(R�R�R.(RE(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
ClearField?s$



N(R�(RERR�((REsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddClearFieldMethod=s!cCsd�}||_dS(s Helper for _AddMessageMethods().cSs7t||�||jkr)|j|=n|j�dS(N(R:R=R�(R�R9((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytClearExtensiones

N(R(RR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddClearExtensionMethodcs	cCsd�}||_dS(s Helper for _AddMessageMethods().cSs}t||�|jtjkr5td|j��n|jtjkrl|jj	|�}|dk	ok|jS||jkSdS(Ns"%s" is repeated.(R:RHR5RkR6RRPRQR=R�R!R?(R�R9RN((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytHasExtensionqs
N(R(RR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddHasExtensionMethodos	
cCs�ddlm}|j�}|j}|s/dS|jd�d}|jj|�}|dkrddS|j|�}|�}|j	|j
�|S(stUnpacks Any message and returns the unpacked message.

  This internal method is different from public Any Unpack method which takes
  the target message as argument. _InternalUnpackAny method does not have
  target message type and need to find the message type in descriptor pool.

  Args:
    msg: An Any message to be unpacked.

  Returns:
    The unpacked message.
  i����(tsymbol_databaset/N(tgoogle.protobufRtDefaultttype_urlR!tsplitR�tFindMessageTypeByNametGetPrototypetParseFromStringRN(tmsgRtfactoryR	t	type_nameR
t
message_classR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_InternalUnpackAny}s		cCsd�}||_dS(s Helper for _AddMessageMethods().cSs�t|tj�s%|j|jkr)tS||kr9tS|jjtkr|t|�}t|�}|r||r|||kSn|j	�|j	�ks�tSt
|j�}|j�t
|j�}|j�||kS(N(
R4tmessage_modtMessageRRmR{Rt_AnyFullTypeNameRR�tlistR>R�(R�tothertany_atany_btunknown_fieldstother_unknown_fields((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__eq__�s"


N(R(RERR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddEqualsMethod�s	cCsd�}||_dS(s Helper for _AddMessageMethods().cSs
tj|�S(N(RtMessageToString(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__str__�sN(R(RERR((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
_AddStrMethod�s	cCsd�}||_dS(s Helper for _AddMessageMethods().cSs
tj|�S(N(RR(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__repr__�sN(R!(RERR!((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddReprMethod�s	cCsd�}||_dS(s Helper for _AddMessageMethods().cSstj|dt�jd�S(Ntas_utf8sutf-8(RRR{tdecode(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__unicode__�sN(R%(tunused_message_descriptorRR%((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddUnicodeMethod�s	cCsIytj|}|||�SWn$tk
rDtjd|��nXdS(s Returns the number of bytes needed to serialize a non-repeated element.
  The returned byte count includes space for tag information and any
  other additional space associated with serializing value.

  Args:
    value: Value we're serializing.
    field_number: Field number of this value.  (Since the field number
      is stored as part of a varint-encoded tag, this has an impact
      on the total bytes required to serialize the value).
    field_type: The type of the field.  One of the TYPE_* constants
      within FieldDescriptor.
  sUnrecognized field type: %dN(RtTYPE_TO_BYTE_SIZE_FNR6RtEncodeError(RNtfield_numbert
field_typetfn((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_BytesForNonRepeatedElement�s



cCsd�}||_dS(s Helper for _AddMessageMethods().cSs�|js|jSd}|j}|j�jrg|jdj|j�}||jdj|j�7}ndx-|j	�D]\}}||j|�7}qtWx1|j
D]&\}}|t|�t|�7}q�W||_t|_t|j
_|S(NiR�RN(R<R;RRRLRORwR�RNR�R>R�RmRAtdirty(R�tsizeR
RgR�Rbtvalue_bytes((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytByteSize�s		 		N(R1(RERR1((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddByteSizeMethod�s	cCsd�}||_dS(s Helper for _AddMessageMethods().c[sPg}|j�sCtjd|jjdj|j��f��n|j|�S(Ns)Message %s is missing required fields: %st,(t
IsInitializedRR)RRtjointFindInitializationErrorstSerializePartialToString(R�R�terrors((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytSerializeToStrings(N(R9(RERR9((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddSerializeToStringMethods	cCs+d�}||_dd�}||_dS(s Helper for _AddMessageMethods().c[s&t�}|j|j|�|j�S(N(Rt_InternalSerializetwritetgetvalue(R�R�tout((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR7s	cSs�|dkrtj�}nt|�}|j}|j�jr||jdj||j	|�|jdj||j
|�n^x-|j�D]\}}|j|||�q�Wx+|jD] \}}||�||�q�WdS(NR�RN(
R!Rt)IsPythonDefaultSerializationDeterministicR�RRRLRORvR�RNR�R>(R�twrite_bytest
deterministicR
RgR�RbR0((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pytInternalSerializes	


N(R7R!R;(RERR7RB((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt"_AddSerializePartialToStringMethods		csad�}||_tj�tj�|j�|jdk�����fd�}||_dS(s Helper for _AddMessageMethods().cSs�t|�}y1|j|d|�|kr<tjd��nWnJttfk
retjd��n%tjk
r�}tj|��nX|S(NisUnexpected end-group tag.sTruncated message.(R�t_InternalParseRtDecodeErrort
IndexErrorR�tstructterror(R�t
serializedtlengthte((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�8sR�cs|j�|j}|j}x�||kr�||�\}}�j|d�\}}	|dkr�|}
�||||�}|dkr�|S�s�tj�r�|s�g}|_n|j|||
|!f�n|}q||||||�}|	r|j|	�qqW|S(Ni����(NN(	R�R=R>R�R!Rt&GetPythonProto3PreserveUnknownsDefaulttappendR�(R�tbuffertpostendt
field_dicttunknown_field_listRbtnew_posRft
field_desctvalue_start_pos(tdecoders_by_tagR�t
local_ReadTagtlocal_SkipField(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
InternalParseLs,
			N(R�RtReadTagt	SkipFieldRRnRD(RERR�RY((RVR�RWRXsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddMergeFromStringMethod6s	
				cseg|jD]}|jtjkr
|^q
�d�fd�}||_�fd�}||_dS(s[Adds the IsInitialized and FindInitializationError methods to the
  protocol message class.cs`xf�D]^}||jks?|jtjkr|j|jr|dk	ra|j|j��ntSqWx�t	|jj
��D]�\}}|jtjkr|jtjkr|j
jr�|j
j�jr�qnx|D]8}|j�s�|dk	r|j|j��ntSq�WqX|jrX|j�rX|dk	rQ|j|j��ntSqqWtS(sChecks if all required fields of a message are set.

    Args:
      errors:  A list which, if provided, will be populated with the field
               paths of all missing required fields.

    Returns:
      True iff the specified message has all required fields set.
    N(R=RPR5RQR?R!R�R6RmRR�RHRkRKRRRLR4R{(R�R8R.RNtelement(trequired_fields(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR4ns.

"
cs�g}x3�D]+}|j|j�s
|j|j�q
q
Wxw|j�D]i\}}|jtjkrI|jr�d|j}n	|j}t	|�r�t
|�r�xX|D]M}||}d||f}|j�}|g|D]}	||	^q�7}q�Wq�q�|jtj
krxx�tt|��D]M}
||
}d||
f}|j�}|g|D]}	||	^qZ7}q$Wq�|d}|j�}|g|D]}	||	^q�7}qIqIW|S(s�Finds required fields which are not initialized.

    Returns:
      A list of strings.  Each string is a path to an uninitialized field from
      the top-level message, e.g. "foo.bar[5].baz".
    s(%s)s%s[%s].s%s[%d].t.(RoRRMR�RPR5RQR7RRMRSR6RHRktrangeR�(R�R8R.RNRR�R]tprefixt
sub_errorsRHti(R^(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR6�s6
		

(
(
(N(R#RHR5tLABEL_REQUIREDR!R4R6(RERR.R4R6((R^sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddIsInitializedMethodgs'	,cs4tj�tj����fd�}|�_dS(Ncs�t|��s1td�j|jjf��n||k	sCt�|j�|j}x�|jj�D]�\}}|j�kr�|j	|�}|dkr�|j|�}|||<n|j|�qf|j
�kr*|jrP|j	|�}|dkr|j|�}|||<n|j|�qPqf||j|<|jrf|j|�qfqfW|jr�|jsrg|_n|jj|j�ndS(NsLParameter to MergeFrom() must be instance of same class: expected %s got %s.(R4R�R/t	__class__R�R�R=R�RHR�R!R_R�RPR?R[R�R>R�(R�RR#R.RNR�(RQRkR(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s8
	
	

			(R5RkRQR�(RR�((RQRkRsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddMergeFromMethod�s		%cs�fd�}||_dS(Ncswy�j|}Wn!tk
r4td|��nX|jj|d�}|dk	ro|j|j�ro|jSdSdS(sDReturns the name of the currently set field inside a oneof, or None.s)Protocol message has no oneof "%s" field.N(R�R6R�RCR�R!RoR(R�t
oneof_nameR.tnested_field(RE(sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
WhichOneof�s
(Rj(RERRj((REsK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddWhichOneofMethod�scCsd�}||_dS(NcSst|�d|j�fS(N((RFt__getstate__(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt
__reduce__s(Rm(RRm((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_AddReduceMethods	cCs)i|_d|_i|_|j�dS(N((R=R>RCR�(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_Clear
s			cCsyg|_xi|j�D][\}}|jtjkr|jtjkrdx%|D]}|j�qMWqq|j�qqWdS(N(R>R�RPR5RQRHRktDiscardUnknownFields(R�R.RNtsub_message((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_DiscardUnknownFieldss	
cCs+|dkrtj�|_n	||_dS(N(R!R�R�R@(R�tlistener((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�scCs�t||�t||�t||�|jrGt|�t|�nt||�t||�t||�t	||�t
||�t||�t||�t
||�t||�t|�t||�t|�t|_t|_t|_dS(s3Adds implementations of all Message methods to cls.N(R�R�RR�RRRR R"R'R2R:RCR\ReRgRkRnRotClearRrRpR�(RER((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR+$s*


	













		cCs1d�}d�}||_||_||_dS(s5Adds implementation of private helper methods to cls.cSs;|js7t|_t|j_t|_|jj�ndS(swSets the _cached_byte_size_dirty bit to true,
    and propagates this to our listener iff this was a state change.
    N(R<R{RAR.R?R@tModified(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRuAs
				cSsE|jj|j|�}||k	rA|j|=||j|j<ndS(s�Sets field as the active field in its containing oneof.

    Will also delete currently active field in the oneof, if it is different
    from the argument. Does not mark the message as modified.
    N(RCR�R[R=(R�R.tother_field((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�Ps
N(R�tSetInParentR�(RERRuR�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR,>s
				R�cBs eZdZd�Zd�ZRS(s0MessageListener implementation that a parent message registers with its
  child message.

  In order to support semantics like:

    foo.bar.baz.qux = 23
    assert foo.HasField('bar')

  ...child objects must have back references to their parents.
  This helper class is at the heart of this support.
  cCs=t|tj�r||_ntj|�|_t|_dS(s�Args:
      parent_message: The message whose _Modified() method we should call when
        we receive Modified() messages.
    N(R4tweakreft	ProxyTypet_parent_message_weakreftproxyRmR.(R�tparent_message((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR-ns	cCs6|jr
dSy|jj�Wntk
r1nXdS(N(R.RzR�tReferenceError(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRu�s	
(R/R0R1R-Ru(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�`s	R�cBs eZdZd�Zd�ZRS(sCSpecial listener implementation for setting composite oneof fields.cCs#tt|�j|�||_dS(s�Args:
      parent_message: The message whose _Modified() method we should call when
        we receive Modified() messages.
      field: The descriptor of the field being set in the parent message.
    N(RR�R-t_field(R�R|R.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR-�scCsBy*|jj|j�tt|�j�Wntk
r=nXdS(sEAlso updates the state of the containing oneof in the parent message.N(RzR�R~RR�RuR}(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyRu�s

(R/R0R1R-Ru(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s		R�cBsVeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	s�Dict-like container for supporting an indexable "Extensions"
  field on proto instances.

  Note that in all cases we expect extension handles to be
  FieldDescriptors.
  cCs
||_dS(sMextended_message: Message instance for which we are the Extensions dict.
    N(t_extended_message(R�textended_message((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR-�scCs�t|j|�|jjj|�}|dk	r5|S|jtjkr\|j|j�}nV|j	tj
kr�|jj�}y|j
|jj�Wq�tk
r�q�Xn|jS|jjj||�}|S(s8Returns the current value of the given extension handle.N(R:RR=R�R!RHR5RkR_RPRQRKR%R�RAR}R�R�(R�R9R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__getitem__�s 
cCs�t||j�stS|jj�}|jj�}g|D]}|jr;|^q;}g|D]}|jr]|^q]}||kS(N(R4RfRmRR�R7(R�Rt	my_fieldstother_fieldsR.((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR�s""cCs||kS(N((R�R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__ne__�scCstd��dS(Nsunhashable object(R�(R�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__hash__�scCs�t|j|�|jtjks4|jtjkrJtd|j��nt	j
|�}|j|�|jj|<|jj
�dS(slIf extension_handle specifies a non-repeated, scalar extension
    field, sets the value of that field.
    sKCannot assign to extension "%s" because it is a repeated or composite type.N(R:RRHR5RkRPRQR�RRR�R�R=R�(R�R9RNR�((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt__setitem__�scCs|jjj|d�S(s�Tries to find a known extension with the specified name.

    Args:
      name: Extension full name.

    Returns:
      Extension field descriptor.
    N(RR�R�R!(R�R((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_FindExtensionByNames	cCs|jjj|d�S(s�Tries to find a known extension with the field number.

    Args:
      number: Extension field number.

    Returns:
      Extension field descriptor.
    N(RR�R�R!(R�RW((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt_FindExtensionByNumbers	(R/R0R1R-R�RR�R�R�R�R�(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyR��s		!	
				(RR1t
__author__tioRRGR�RxR�tgoogle.protobuf.internalRRRRRRR�RRR	RR
R�RRRtFieldDescriptorR5RRFR
R3R:RRJRMRSR$RR&R]RxR�R'R�R(R�R�R�R�R)R*R�R�R�R�R�RRRRRR R"R'R-R2R:RCR\ReRgRkRnRoRrR�R+R,tobjectR�R�R�(((sK/usr/lib/python2.7/site-packages/google/protobuf/internal/python_message.pyt<module>1s�	k							C				7		T				,	8	,				
	*	&			(								 	1	_	,							".PK�\��Osii(protobuf/internal/proto_builder_test.pycnu�[����
���hc@s�dZyddlmZWn!ek
r=ddlmZnXyddlZWnek
rmddlZnXddlmZddlm	Z	ddlm
Z
ddlmZdejfd	��YZ
ed
kr�ej�ndS(s(Tests for google.protobuf.proto_builder.i����(tOrderedDictN(tdescriptor_pb2(tdescriptor_pool(t
proto_builder(ttext_formattProtoBuilderTestcBs,eZd�Zd�Zd�Zd�ZRS(cCsCtdtjjfdtjjfg�|_t|j�|_dS(Ntfootbar(RRtFieldDescriptorProtot
TYPE_INT64tTYPE_STRINGtordered_fieldstdictt_fields(tself((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pytsetUp3scCsPtj|jdd�}|�}d|_d|_|jdtj|��dS(s&Test that we can create a proto class.t	full_names0net.proto2.python.public.proto_builder_test.Testi90tasdfsbar: "asdf"
foo: 12345
N(RtMakeSimpleProtoClassR
RRtassertMultiLineEqualRtMessageToString(Rt	proto_clstproto((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pyttestMakeSimpleProtoClass:s					cCsPtj|jdd�}|�}d|_d|_|jdtj|��dS(sBTest that the field order is maintained when given an OrderedDict.Rs7net.proto2.python.public.proto_builder_test.OrderedTesti90Rsfoo: 12345
bar: "asdf"
N(RRRRRRRR(RRR((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pyttestOrderedFieldsEs					cCsbtj�}tj|jddd|�}tj|jddd|�}|j|j|j�dS(s%Test that the DescriptorPool is used.Rs0net.proto2.python.public.proto_builder_test.TesttpoolN(RtDescriptorPoolRRR
tassertIst
DESCRIPTOR(RRt
proto_cls1t
proto_cls2((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pyttestMakeSameProtoClassTwicePs				(t__name__t
__module__RRRR(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pyR1s			t__main__(t__doc__tcollectionsRtImportErrortordereddictt	unittest2tunittesttgoogle.protobufRRRRtTestCaseRR tmain(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/proto_builder_test.pyt<module> s

-PK�\`df1protobuf/internal/more_extensions_dynamic_pb2.pyonu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�ZdZejddddddddddddddd ed!dd"dd#dd$dd%ed&dd'dd(e�Zd)Zejdd*dd+dddd)dd,dd-ddd ed!dd"dd#dd$dd%ed&dd'dd(e�Zd.Zejdd/dd0dd1dd.dd,dd-ddd ed!gd"dd#dd$dd%ed&dd'dd(e�Zejdd2dd3d4dd(ed$dd5ejdd6dd7ddddddddddd ed!dd"dd#dd$dd%ed&dd'dd(e�gd8gd9gd:gd'dd;eddd<gd=gd>d?d@dA�Zeej d2<eej!d<eej!d*<eej!d/<ej"e�e	j#d2ej$fe%dBedCdD��Z&ej'e&�ej(j)e�ee_*ej(j)e�ee_*ej(j)e�dS(Ei����NiicCs|S(N((tx((sX/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_dynamic_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sX/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_dynamic_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tmore_extensions_pb2tnames6google/protobuf/internal/more_extensions_dynamic.prototpackagesgoogle.protobuf.internaltsyntaxtproto2t
serialized_pbs�
6google/protobuf/internal/more_extensions_dynamic.protogoogle.protobuf.internal.google/protobuf/internal/more_extensions.proto"
DynamicMessageType	
a (:J
dynamic_int32_extension).google.protobuf.internal.ExtendedMessaged (:z
dynamic_message_extension).google.protobuf.internal.ExtendedMessagee (2,.google.protobuf.internal.DynamicMessageType:�
"repeated_dynamic_message_extension).google.protobuf.internal.ExtendedMessagef (2,.google.protobuf.internal.DynamicMessageTypetdependenciesidtdynamic_int32_extensiont	full_names0google.protobuf.internal.dynamic_int32_extensiontindextnumberttypeitcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfileietdynamic_message_extensions2google.protobuf.internal.dynamic_message_extensionii
ift"repeated_dynamic_message_extensions;google.protobuf.internal.repeated_dynamic_message_extensionitDynamicMessageTypes+google.protobuf.internal.DynamicMessageTypetfilenametfieldstas-google.protobuf.internal.DynamicMessageType.at
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti�tserialized_endi�t
DESCRIPTORt
__module__s4google.protobuf.internal.more_extensions_dynamic_pb2(+tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtgoogle.protobuf.internalR
t:google_dot_protobuf_dot_internal_dot_more__extensions__pb2tFileDescriptorR/t$DYNAMIC_INT32_EXTENSION_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRt&DYNAMIC_MESSAGE_EXTENSION_FIELD_NUMBERR!t/REPEATED_DYNAMIC_MESSAGE_EXTENSION_FIELD_NUMBERR"t
Descriptort_DYNAMICMESSAGETYPEtmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR#tRegisterMessagetExtendedMessagetRegisterExtensionR(((sX/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_dynamic_pb2.pyt<module>s�%							





		PK�\W'���&protobuf/internal/factory_test1_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/factory_test1.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/factory_test1.proto',
  package='google.protobuf.python.internal',
  syntax='proto2',
  serialized_pb=_b('\n,google/protobuf/internal/factory_test1.proto\x12\x1fgoogle.protobuf.python.internal\"\xd5\x03\n\x0f\x46\x61\x63tory1Message\x12\x45\n\x0e\x66\x61\x63tory_1_enum\x18\x01 \x01(\x0e\x32-.google.protobuf.python.internal.Factory1Enum\x12\x62\n\x15nested_factory_1_enum\x18\x02 \x01(\x0e\x32\x43.google.protobuf.python.internal.Factory1Message.NestedFactory1Enum\x12h\n\x18nested_factory_1_message\x18\x03 \x01(\x0b\x32\x46.google.protobuf.python.internal.Factory1Message.NestedFactory1Message\x12\x14\n\x0cscalar_value\x18\x04 \x01(\x05\x12\x12\n\nlist_value\x18\x05 \x03(\t\x1a&\n\x15NestedFactory1Message\x12\r\n\x05value\x18\x01 \x01(\t\"P\n\x12NestedFactory1Enum\x12\x1c\n\x18NESTED_FACTORY_1_VALUE_0\x10\x00\x12\x1c\n\x18NESTED_FACTORY_1_VALUE_1\x10\x01*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02*<\n\x0c\x46\x61\x63tory1Enum\x12\x15\n\x11\x46\x41\x43TORY_1_VALUE_0\x10\x00\x12\x15\n\x11\x46\x41\x43TORY_1_VALUE_1\x10\x01')
)

_FACTORY1ENUM = _descriptor.EnumDescriptor(
  name='Factory1Enum',
  full_name='google.protobuf.python.internal.Factory1Enum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FACTORY_1_VALUE_0', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FACTORY_1_VALUE_1', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=553,
  serialized_end=613,
)
_sym_db.RegisterEnumDescriptor(_FACTORY1ENUM)

Factory1Enum = enum_type_wrapper.EnumTypeWrapper(_FACTORY1ENUM)
FACTORY_1_VALUE_0 = 0
FACTORY_1_VALUE_1 = 1


_FACTORY1MESSAGE_NESTEDFACTORY1ENUM = _descriptor.EnumDescriptor(
  name='NestedFactory1Enum',
  full_name='google.protobuf.python.internal.Factory1Message.NestedFactory1Enum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='NESTED_FACTORY_1_VALUE_0', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NESTED_FACTORY_1_VALUE_1', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=460,
  serialized_end=540,
)
_sym_db.RegisterEnumDescriptor(_FACTORY1MESSAGE_NESTEDFACTORY1ENUM)


_FACTORY1MESSAGE_NESTEDFACTORY1MESSAGE = _descriptor.Descriptor(
  name='NestedFactory1Message',
  full_name='google.protobuf.python.internal.Factory1Message.NestedFactory1Message',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.python.internal.Factory1Message.NestedFactory1Message.value', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=420,
  serialized_end=458,
)

_FACTORY1MESSAGE = _descriptor.Descriptor(
  name='Factory1Message',
  full_name='google.protobuf.python.internal.Factory1Message',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='factory_1_enum', full_name='google.protobuf.python.internal.Factory1Message.factory_1_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_factory_1_enum', full_name='google.protobuf.python.internal.Factory1Message.nested_factory_1_enum', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_factory_1_message', full_name='google.protobuf.python.internal.Factory1Message.nested_factory_1_message', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='scalar_value', full_name='google.protobuf.python.internal.Factory1Message.scalar_value', index=3,
      number=4, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='list_value', full_name='google.protobuf.python.internal.Factory1Message.list_value', index=4,
      number=5, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_FACTORY1MESSAGE_NESTEDFACTORY1MESSAGE, ],
  enum_types=[
    _FACTORY1MESSAGE_NESTEDFACTORY1ENUM,
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=82,
  serialized_end=551,
)

_FACTORY1MESSAGE_NESTEDFACTORY1MESSAGE.containing_type = _FACTORY1MESSAGE
_FACTORY1MESSAGE.fields_by_name['factory_1_enum'].enum_type = _FACTORY1ENUM
_FACTORY1MESSAGE.fields_by_name['nested_factory_1_enum'].enum_type = _FACTORY1MESSAGE_NESTEDFACTORY1ENUM
_FACTORY1MESSAGE.fields_by_name['nested_factory_1_message'].message_type = _FACTORY1MESSAGE_NESTEDFACTORY1MESSAGE
_FACTORY1MESSAGE_NESTEDFACTORY1ENUM.containing_type = _FACTORY1MESSAGE
DESCRIPTOR.message_types_by_name['Factory1Message'] = _FACTORY1MESSAGE
DESCRIPTOR.enum_types_by_name['Factory1Enum'] = _FACTORY1ENUM
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Factory1Message = _reflection.GeneratedProtocolMessageType('Factory1Message', (_message.Message,), dict(

  NestedFactory1Message = _reflection.GeneratedProtocolMessageType('NestedFactory1Message', (_message.Message,), dict(
    DESCRIPTOR = _FACTORY1MESSAGE_NESTEDFACTORY1MESSAGE,
    __module__ = 'google.protobuf.internal.factory_test1_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.Factory1Message.NestedFactory1Message)
    ))
  ,
  DESCRIPTOR = _FACTORY1MESSAGE,
  __module__ = 'google.protobuf.internal.factory_test1_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.python.internal.Factory1Message)
  ))
_sym_db.RegisterMessage(Factory1Message)
_sym_db.RegisterMessage(Factory1Message.NestedFactory1Message)


# @@protoc_insertion_point(module_scope)
PK�\sݴ��&protobuf/internal/more_messages_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/internal/more_messages.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/internal/more_messages.proto',
  package='google.protobuf.internal',
  syntax='proto2',
  serialized_pb=_b('\n,google/protobuf/internal/more_messages.proto\x12\x18google.protobuf.internal\"h\n\x10OutOfOrderFields\x12\x17\n\x0foptional_sint32\x18\x05 \x01(\x11\x12\x17\n\x0foptional_uint32\x18\x03 \x01(\r\x12\x16\n\x0eoptional_int32\x18\x01 \x01(\x05*\x04\x08\x04\x10\x05*\x04\x08\x02\x10\x03:C\n\x0foptional_uint64\x12*.google.protobuf.internal.OutOfOrderFields\x18\x04 \x01(\x04:B\n\x0eoptional_int64\x12*.google.protobuf.internal.OutOfOrderFields\x18\x02 \x01(\x03')
)


OPTIONAL_UINT64_FIELD_NUMBER = 4
optional_uint64 = _descriptor.FieldDescriptor(
  name='optional_uint64', full_name='google.protobuf.internal.optional_uint64', index=0,
  number=4, type=4, cpp_type=4, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_INT64_FIELD_NUMBER = 2
optional_int64 = _descriptor.FieldDescriptor(
  name='optional_int64', full_name='google.protobuf.internal.optional_int64', index=1,
  number=2, type=3, cpp_type=2, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)


_OUTOFORDERFIELDS = _descriptor.Descriptor(
  name='OutOfOrderFields',
  full_name='google.protobuf.internal.OutOfOrderFields',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_sint32', full_name='google.protobuf.internal.OutOfOrderFields.optional_sint32', index=0,
      number=5, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint32', full_name='google.protobuf.internal.OutOfOrderFields.optional_uint32', index=1,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_int32', full_name='google.protobuf.internal.OutOfOrderFields.optional_int32', index=2,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(4, 5), (2, 3), ],
  oneofs=[
  ],
  serialized_start=74,
  serialized_end=178,
)

DESCRIPTOR.message_types_by_name['OutOfOrderFields'] = _OUTOFORDERFIELDS
DESCRIPTOR.extensions_by_name['optional_uint64'] = optional_uint64
DESCRIPTOR.extensions_by_name['optional_int64'] = optional_int64
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

OutOfOrderFields = _reflection.GeneratedProtocolMessageType('OutOfOrderFields', (_message.Message,), dict(
  DESCRIPTOR = _OUTOFORDERFIELDS,
  __module__ = 'google.protobuf.internal.more_messages_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.internal.OutOfOrderFields)
  ))
_sym_db.RegisterMessage(OutOfOrderFields)

OutOfOrderFields.RegisterExtension(optional_uint64)
OutOfOrderFields.RegisterExtension(optional_int64)

# @@protoc_insertion_point(module_scope)
PK�\�/�&protobuf/internal/wire_format_test.pycnu�[����
���hc@s�dZdZyddlZWnek
r;ddlZnXddlmZddlmZdej	fd��YZ
edkr�ej�ndS(	s.Test for google.protobuf.internal.wire_format.s#robinson@google.com (Will Robinson)i����N(tmessage(twire_formattWireFormatTestcBs>eZd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsod}d}|j|d>|Btj||��tj}|jtj||d�|jtj||d�dS(Ni�
iiii����(tassertEqualRtPackTagtassertRaisesRtEncodeError(tselftfield_numberttag_typeR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyttestPackTag/s	cCs�xfd	D]^}xUtd�D]G}tjtj||��\}}|j||�|j||�qWqW|jttjd�|jttjd�|jttjd�|jttjt��dS(
Niiii�iitabcg(iiii�i(	trangeRt	UnpackTagRRRt	TypeErrortNonetobject(Rtexpected_field_numbertexpected_wire_typeRt	wire_type((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyt
testUnpackTag:s
cCs"tj}|jd|d��|jd|d��|jd|d��|jd|d��|jd|d��|jd|d	��|jd
|d��|jd|d
��|jd|d��|jt|d�|jt|d�|jt|d�|jt|t��dS(Niii����iii����il��i���l��i�l����l����l����l����tabcdg(RtZigZagEncodeRRRRR(RtZ((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyttestZigZagEncodeHs	cCs"tj}|jd|d��|jd|d��|jd|d��|jd|d��|jd|d��|jd|d	��|jd
|d��|jd|d
��|jd|d��|jt|d�|jt|d�|jt|d�|jt|t��dS(Nii����iii����iii���l��i�l��l����l����l����l����Rg(RtZigZagDecodeRRRRR(RR((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyttestZigZagDecodeYs	c
Csfx_d	d
ddfD]K\}}||}|||�}|j||d|||||f�qWdS(
Niiiii�iisFbyte_size_fn: %s, field_number: %d, value: %r
Expected: %d, Actual: %d(ii(ii(i�i(ii(R(Rtbyte_size_fntvaluetexpected_value_sizeRt	tag_bytest
expected_sizetactual_size((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pytNumericByteSizeTestHelperjs
c6CsTtjddgtjddgtjddgtjddgtjddgtjddgtjddgtjddgtjddgtjddgtjddgtjtjdgtjddgtjddgtjddgtjtjdgtjddgtjddgtjddgtjd	dgtjd
dgtjddgtjddgtjddgtjddgtjddgtjd	dgtjd
dgtjddgtjddgtj	dd
gtj	tjd
gtj
ddgtj
tjdgtjdd
gtjtjd
gtjtj
d
gtjddgtjtjdgtjtjdgtjdd
gtjdd
gtjdd
gtjddgtjddgtjddgtjtdgtjtdgtjddgtjddgtjddgtjtjdgg4}x|D]}|j|�q4WxitjtjfD]U}|jd|dd��|jd|dd��|jd|ddd��q^W|jdtjddjd���dtfd��Y}d}|d|�}|jd|tjd|��|jd
|tjd|��|jd|jtjd|��|jd|jtjd|��d|_|jd
|jtjd|��d|_|j|jdtj d|��d|_|j|jdtj d|��|j|jdtj d|��|j!t"j#tjdd�dS(Niiii�ii����i
ii����i?i����i@iigge��Age��Riii�tasТестsutf-8tMockMessagecBseZd�Zd�ZRS(cSs
||_dS(N(t	byte_size(RR$((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyt__init__�scSs|jS(N(R$(R((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pytByteSize�s(t__name__t
__module__R%R&(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyR#�s	R$iil	($Rt
Int32ByteSizet
Int64ByteSizetUInt32ByteSizet
UINT32_MAXtUInt64ByteSizet
UINT64_MAXtSInt32ByteSizetSInt64ByteSizetFixed32ByteSizetFixed64ByteSizetSFixed32ByteSizet	INT32_MINt	INT32_MAXtSFixed64ByteSizet	INT64_MINt	INT64_MAXt
FloatByteSizetDoubleByteSizetBoolByteSizetFalsetTruetEnumByteSizeR!tStringByteSizet
BytesByteSizeRtdecodeRt
GroupByteSizeR$tMessageByteSizetMessageSetItemByteSizeRRR(RtNUMERIC_ARGStargsRR#tmessage_byte_sizetmock_message((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyttestByteSizeFunctionsts�
!

			(R'R(R
RRRR!RI(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyR-s					
t__main__(
t__doc__t
__author__t	unittest2tunittesttImportErrortgoogle.protobufRtgoogle.protobuf.internalRtTestCaseRR'tmain(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/wire_format_test.pyt<module> s
�PK�\ٟ�S)protobuf/internal/more_extensions_pb2.pyonu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��ZdZejdddddddddddddddeddddd dd!dd"ed#dd$dd%e�Zd&Zejdd'dd(dddd&dd)dd*dddeddddd dd!dd"ed#dd$dd%e�ZdZejdd+dd,dd&dddddddddedgddd dd!dd"ed#dd$dd%e�Zd-Zejdd.dd/dddd-dd)dd*dddedgddd dd!dd"ed#dd$dd%e�Zejdd0dd1d2dd%ed!dd3ejdd4dd5dddddd)dd*dddeddddd dd!dd"ed#dd$dd%e�gd6gd7gd8gd$dd9eddd:gd;gd<d=d>d?�Zejdd@ddAd2dd%ed!dd3gd6gd7gd8gd$dd9eddd:dNgd;gd<dCd>dD�ZejddEddFd2dd%ed!dd3ejddGddHdddddddddddeddddd dd!dd"ed#dd$dd%e�gd6gd7gd8gd$dd9eddd:gd;gd<dId>dJ�Z eej!d4_"eej#d0<eej#d@<e ej#dE<eej$d<eej$d'<eej$d+<eej$d.<ej%e�e	j&d0ej'fe(dKedLdM��Z)ej*e)�e	j&d@ej'fe(dKedLdM��Z+ej*e+�e	j&dEej'fe(dKe dLdM��Z,ej*e,�e+j-e�e e_"e+j-e�e+j-e�e e_"e+j-e�dS(Oi����NiicCs|S(N((tx((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames.google/protobuf/internal/more_extensions.prototpackagesgoogle.protobuf.internaltsyntaxtproto2t
serialized_pbsp
.google/protobuf/internal/more_extensions.protogoogle.protobuf.internal"P
TopLevelMessage=

submessage (2).google.protobuf.internal.ExtendedMessage"
ExtendedMessage*����"-
ForeignMessage
foreign_message_int (:I
optional_int_extension).google.protobuf.internal.ExtendedMessage (:w
optional_message_extension).google.protobuf.internal.ExtendedMessage (2(.google.protobuf.internal.ForeignMessage:I
repeated_int_extension).google.protobuf.internal.ExtendedMessage (:w
repeated_message_extension).google.protobuf.internal.ExtendedMessage (2(.google.protobuf.internal.ForeignMessageitoptional_int_extensiont	full_names/google.protobuf.internal.optional_int_extensiontindextnumberttypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfileitoptional_message_extensions3google.protobuf.internal.optional_message_extensionii
trepeated_int_extensions/google.protobuf.internal.repeated_int_extensionitrepeated_message_extensions3google.protobuf.internal.repeated_message_extensiontTopLevelMessages(google.protobuf.internal.TopLevelMessagetfilenametfieldst
submessages3google.protobuf.internal.TopLevelMessage.submessaget
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiLtserialized_endi�tExtendedMessages(google.protobuf.internal.ExtendedMessagei i�i�tForeignMessages'google.protobuf.internal.ForeignMessagetforeign_message_ints;google.protobuf.internal.ForeignMessage.foreign_message_inti�i�t
DESCRIPTORt
__module__s,google.protobuf.internal.more_extensions_pb2(ii (.tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR1t#OPTIONAL_INT_EXTENSION_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRt'OPTIONAL_MESSAGE_EXTENSION_FIELD_NUMBERRt#REPEATED_INT_EXTENSION_FIELD_NUMBERR t'REPEATED_MESSAGE_EXTENSION_FIELD_NUMBERR!t
Descriptort_TOPLEVELMESSAGEt_EXTENDEDMESSAGEt_FOREIGNMESSAGEtfields_by_nameRtmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR"tRegisterMessageR.R/tRegisterExtension(((sP/usr/lib/python2.7/site-packages/google/protobuf/internal/more_extensions_pb2.pyt<module>s%														











	

	PK�\5����0protobuf/internal/message_set_extensions_pb2.pycnu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��ZdZejddddddddddddddded dd!dd"dd#dd$ed%dd&dd'e�Zejdd(dd)d*dd'ed#dd+gd,gd-gd.gd&ejej�ed/��d0eddd1dZgd4gd5d6d7d8�Zejdd9dd:d*dd'ed#dd+ejdd;dd<dddd=dd>ddddded dd!dd"dd#dd$ed%dd&dd'e�gd,ejdd?dd@ddddAddddddded dd!dd"dd#dd$ed%dd&dd'e�gd-gd.gd&dd0eddd1gd4gd5dBd7dC�ZejddDddEd*dd'ed#dd+ejddFddGddddHddIddIddded edJ�jdK�d!dd"dd#dd$ed%dd&dd'e�gd,ejdd?ddLddddMddddddded dd!dd"dd#dd$ed%dd&dd'e�gd-gd.gd&dd0eddd1gd4gd5dNd7dO�ZejddPddQd*dd'ed#dd+ejddRddSddddTddIddIddded edJ�jdK�d!dd"dd#dd$ed%dd&dd'e�gd,gd-gd.gd&dd0eddd1gd4gd5dUd7dV�Zeejd(<eejd9<eejdD<eejdP<eej d<ej!e�e	j"d(ej#fe$dWedXdY��Z%ej&e%�e	j"d9ej#fe$dWedXdY��Z'ej&e'�e	j"dDej#fe$dWedXdY��Z(ej&e(�e	j"dPej#fe$dWedXdY��Z)ej&e)�ee_*e%j+e�eej d?_*e%j+ej d?�eej d?_*e%j+ej d?�ee_,ejej�ed/��e_-dS([i����NiicCs|S(N((tx((sW/usr/lib/python2.7/site-packages/google/protobuf/internal/message_set_extensions_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sW/usr/lib/python2.7/site-packages/google/protobuf/internal/message_set_extensions_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames5google/protobuf/internal/message_set_extensions.prototpackagesgoogle.protobuf.internaltsyntaxtproto2t
serialized_pbsn
5google/protobuf/internal/message_set_extensions.protogoogle.protobuf.internal"
TestMessageSet*����:"�
TestMessageSetExtension1	
i (2~
message_set_extension(.google.protobuf.internal.TestMessageSet���. (22.google.protobuf.internal.TestMessageSetExtension1"�
TestMessageSetExtension2
str (	2~
message_set_extension(.google.protobuf.internal.TestMessageSet��. (22.google.protobuf.internal.TestMessageSetExtension2"(
TestMessageSetExtension3
text# (	:
message_set_extension3(.google.protobuf.internal.TestMessageSet��. (22.google.protobuf.internal.TestMessageSetExtension3i߿�tmessage_set_extension3t	full_names/google.protobuf.internal.message_set_extension3tindextnumberttypeitcpp_typei
tlabelithas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfiletTestMessageSets'google.protobuf.internal.TestMessageSettfilenametfieldst
extensionstnested_typest
enum_typesst
is_extendabletextension_rangesii���toneofstserialized_startiStserialized_endiqtTestMessageSetExtension1s1google.protobuf.internal.TestMessageSetExtension1tis3google.protobuf.internal.TestMessageSetExtension1.iiitmessage_set_extensionsGgoogle.protobuf.internal.TestMessageSetExtension1.message_set_extensioni���ititTestMessageSetExtension2s1google.protobuf.internal.TestMessageSetExtension2tstrs5google.protobuf.internal.TestMessageSetExtension2.strii	Rsutf-8sGgoogle.protobuf.internal.TestMessageSetExtension2.message_set_extensioniʿ�ii�tTestMessageSetExtension3s1google.protobuf.internal.TestMessageSetExtension3ttexts6google.protobuf.internal.TestMessageSetExtension3.texti#i�i�t
DESCRIPTORt
__module__s3google.protobuf.internal.message_set_extensions_pb2(ii���(.tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR1t#MESSAGE_SET_EXTENSION3_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRt
Descriptort
_ParseOptionstMessageOptionst_TESTMESSAGESETt_TESTMESSAGESETEXTENSION1tdecodet_TESTMESSAGESETEXTENSION2t_TESTMESSAGESETEXTENSION3tmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR*R-R/RtRegisterExtensionthas_optionst_options(((sW/usr/lib/python2.7/site-packages/google/protobuf/internal/message_set_extensions_pb2.pyt<module>s(%																









	
	PK�\x�ٴ��'protobuf/internal/enum_type_wrapper.pyonu�[����
���hc@s&dZdZdefd��YZdS(s�A simple wrapper around enum types to expose utility functions.

Instances are created as properties with the same name as the enum they wrap
on proto classes.  For usage, see:
  reflection_test.py
s"rabsatt@google.com (Kevin Rabsatt)tEnumTypeWrappercBsJeZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
RS(s/A utility for finding the names of enum values.cCs||_||_dS(s-Inits EnumTypeWrapper with an EnumDescriptor.N(t
_enum_typet
DESCRIPTOR(tselft	enum_type((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pyt__init__.s	cCsC||jjkr#|jj|jStd|jj|f��dS(s6Returns a string containing the name of an enum value.s(Enum %s has no name defined for value %dN(Rtvalues_by_numbertnamet
ValueError(Rtnumber((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pytName3scCsC||jjkr#|jj|jStd|jj|f��dS(s6Returns the value coresponding to the given enum name.s(Enum %s has no value defined for name %sN(Rtvalues_by_nameR	RR(RR((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pytValue:scCs g|jjD]}|j^q
S(s~Return a list of the string names in the enum.

    These are returned in the order they were defined in the .proto file.
    (RtvaluesR(Rtvalue_descriptor((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pytkeysAscCs g|jjD]}|j^q
S(s�Return a list of the integer values in the enum.

    These are returned in the order they were defined in the .proto file.
    (RR
R	(RR((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pyR
JscCs)g|jjD]}|j|jf^q
S(s�Return a list of the (name, value) pairs of the enum.

    These are returned in the order they were defined in the .proto file.
    (RR
RR	(RR((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pytitemsSsN(t__name__t
__module__t__doc__tNoneRRR
RRR
R(((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pyR)s							N(Rt
__author__tobjectR(((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pyt<module>$sPK�\�v�'
'
%protobuf/internal/message_listener.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Defines a listener interface for observing certain
state transitions on Message objects.

Also defines a null implementation of this interface.
"""

__author__ = 'robinson@google.com (Will Robinson)'


class MessageListener(object):

  """Listens for modifications made to a message.  Meant to be registered via
  Message._SetListener().

  Attributes:
    dirty:  If True, then calling Modified() would be a no-op.  This can be
            used to avoid these calls entirely in the common case.
  """

  def Modified(self):
    """Called every time the message is modified in such a way that the parent
    message may need to be updated.  This currently means either:
    (a) The message was modified for the first time, so the parent message
        should henceforth mark the message as present.
    (b) The message's cached byte size became dirty -- i.e. the message was
        modified for the first time after a previous call to ByteSize().
        Therefore the parent should also mark its byte size as dirty.
    Note that (a) implies (b), since new objects start out with a client cached
    size (zero).  However, we document (a) explicitly because it is important.

    Modified() will *only* be called in response to one of these two events --
    not every time the sub-message is modified.

    Note that if the listener's |dirty| attribute is true, then calling
    Modified at the moment would be a no-op, so it can be skipped.  Performance-
    sensitive callers should check this attribute directly before calling since
    it will be true most of the time.
    """

    raise NotImplementedError


class NullMessageListener(object):

  """No-op MessageListener implementation."""

  def Modified(self):
    pass
PK�\]"ԛ�%protobuf/internal/testing_refleaks.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""A subclass of unittest.TestCase which checks for reference leaks.

To use:
- Use testing_refleak.BaseTestCase instead of unittest.TestCase
- Configure and compile Python with --with-pydebug

If sys.gettotalrefcount() is not available (because Python was built without
the Py_DEBUG option), then this module is a no-op and tests will run normally.
"""

import gc
import sys

try:
  import copy_reg as copyreg  #PY26
except ImportError:
  import copyreg

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest


class LocalTestResult(unittest.TestResult):
  """A TestResult which forwards events to a parent object, except for Skips."""

  def __init__(self, parent_result):
    unittest.TestResult.__init__(self)
    self.parent_result = parent_result

  def addError(self, test, error):
    self.parent_result.addError(test, error)

  def addFailure(self, test, error):
    self.parent_result.addFailure(test, error)

  def addSkip(self, test, reason):
    pass


class ReferenceLeakCheckerTestCase(unittest.TestCase):
  """A TestCase which runs tests multiple times, collecting reference counts."""

  NB_RUNS = 3

  def run(self, result=None):
    # python_message.py registers all Message classes to some pickle global
    # registry, which makes the classes immortal.
    # We save a copy of this registry, and reset it before we could references.
    self._saved_pickle_registry = copyreg.dispatch_table.copy()

    # Run the test twice, to warm up the instance attributes.
    super(ReferenceLeakCheckerTestCase, self).run(result=result)
    super(ReferenceLeakCheckerTestCase, self).run(result=result)

    oldrefcount = 0
    local_result = LocalTestResult(result)

    refcount_deltas = []
    for _ in range(self.NB_RUNS):
      oldrefcount = self._getRefcounts()
      super(ReferenceLeakCheckerTestCase, self).run(result=local_result)
      newrefcount = self._getRefcounts()
      refcount_deltas.append(newrefcount - oldrefcount)
    print(refcount_deltas, self)

    try:
      self.assertEqual(refcount_deltas, [0] * self.NB_RUNS)
    except Exception:  # pylint: disable=broad-except
      result.addError(self, sys.exc_info())

  def _getRefcounts(self):
    copyreg.dispatch_table.clear()
    copyreg.dispatch_table.update(self._saved_pickle_registry)
    # It is sometimes necessary to gc.collect() multiple times, to ensure
    # that all objects can be collected.
    gc.collect()
    gc.collect()
    gc.collect()
    return sys.gettotalrefcount()


if hasattr(sys, 'gettotalrefcount'):
  BaseTestCase = ReferenceLeakCheckerTestCase
  SkipReferenceLeakChecker = unittest.skip

else:
  # When PyDEBUG is not enabled, run the tests normally.
  BaseTestCase = unittest.TestCase

  def SkipReferenceLeakChecker(reason):
    del reason  # Don't skip, so don't need a reason.
    def Same(func):
      return func
    return Same
PK�\/��'�'�%protobuf/internal/descriptor_test.pycnu�[����
���hc@s�dZdZddlZyddlZWnek
rGddlZnXddlmZddlmZddlm	Z	ddlm
Z
ddlmZdd	lm
Z
dd
lmZddlmZddlmZdd
lmZdZdejfd��YZdefd��YZdejfd��YZdejfd��YZdejfd��YZedkr�ej�ndS(s1Unittest for google.protobuf.internal.descriptor.s#robinson@google.com (Will Robinson)i����N(tunittest_custom_options_pb2(tunittest_import_pb2(tunittest_pb2(tdescriptor_pb2(tapi_implementation(t	test_util(t
descriptor(tdescriptor_pool(tsymbol_database(ttext_formats
name: 'TestEmptyMessage'
tDescriptorTestcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zejej�dkp�ej�dkd�d��ZRS(c	Cs�tjdddd�}|jjdd�}|jjddddd	tjjd
tjj�|jjdd�}|j	jdddd
�|j	jdddd�|j	jdddd�|jjdd�|j
jdd�}|jjdddddd�}|j�|_
|j
j|�|j
j|j�|_|jj|j|_|jj|j|_|jj|j|_|jj|j|_dS(Ntnamessome/filename/some.prototpackagetprotobuf_unittestt
NestedMessagetbbtnumberittypetlabeltForeignEnumtFOREIGN_FOOitFOREIGN_BARitFOREIGN_BAZitResponseMessagetServicet
CallMethodt
input_types .protobuf_unittest.NestedMessagetoutput_types".protobuf_unittest.ResponseMessage(RtFileDescriptorPrototmessage_typetaddtfieldtFieldDescriptorProtot
TYPE_INT32tLABEL_OPTIONALt	enum_typetvaluetservicetmethodtGetDescriptorPooltpooltAddtFindFileByNameRtmy_filetmessage_types_by_namet
my_messagetenum_types_by_nametmy_enumtservices_by_namet
my_servicetmethods_by_namet	my_method(tselft
file_protot
message_protot
enum_protot
service_prototmethod_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pytsetUp>s:			
			cCs
tj�jS(N(RtDefaultR((R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR'bscCs�|j|jjdd�d�|j|jjdjdj|jjdd��|jt��|jjdd�WdQX|jt��|jjdd�WdQX|jt��|jj�WdQXdS(NRiRi�tNoneEnum(	tassertEqualR-t
EnumValueNameR.tvalues_by_numberRtassertRaisestKeyErrort	TypeError(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestEnumValueNamees	cCs$|j|j|jjdj�dS(Ni(R=R/tvaluesR(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestEnumFixupstscCs=|j|j|jjdj�|j|j|jj�dS(Ni(R=R-tfieldstcontaining_typeR/(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestContainingTypeFixupsws cCs|j|j|jj�dS(N(R=R1R3tcontaining_service(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestContainingServiceFixups{scCs�|j|jj�tj��|j|jjdj�tj��|j|jj�tj��|j|jj	dj�tj
��|j|jj�tj��|j|j
j�tj��dS(Ni(R=R/t
GetOptionsRtEnumOptionsRDtEnumValueOptionsR-tMessageOptionsRFtFieldOptionsR3t
MethodOptionsR1tServiceOptions(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestGetOptions~s




cCsttj}tjj}|jd}|jd}|jd}|jd}|jd}tjj}|jd�}	|j	�}
tj
}|jd|
j|�|j	�}tj
}
|jd|j|
�|j	�}tj}|jd	|j|�tj}|jd
|j|�|j	�}tj}|jd|j|�|j	�}tj}|jd|j|�|j	�}tj}|jd
|j|�|j	�}tj}|jd|j|�|	j	�}tj}|jtj|j|�tjj}|j|j�|j|j�|j|j�|j|j�|j|j�|j|j�|j|j�dS(Ntfield1tAnOneoftAnEnumtANENUM_VAL2tANENUM_VAL1tFool�`	i���l-a�i*i����i��i{l�����`	(Rt
DESCRIPTORtTestMessageWithCustomOptionstfields_by_nametoneofs_by_nameR.tenum_values_by_nametTestServiceWithCustomOptionstFindMethodByNameRKt	file_opt1R=t
Extensionstmessage_opt1t
field_opt1t
field_opt2t
oneof_opt1t	enum_opt1tenum_value_opt1tservice_opt1tmethod_opt1tMETHODOPT1_VAL2tDummyMessageContainingEnumt
assertTruethas_optionstassertFalse(R4tfile_descriptortmessage_descriptortfield_descriptortoneof_descriptortenum_descriptortenum_value_descriptortother_enum_value_descriptortservice_descriptortmethod_descriptortfile_optionsR`tmessage_optionsRbt
field_optionsRcRdt
oneof_optionsRetenum_optionsRftenum_value_optionsRgtservice_optionsRhtmethod_optionsRi((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestSimpleCustomOptions�s\	


									c
Cs�d}d}d}d}d}d}tjj}|j�}|jt|jtj�|j||jtj�|j||jtj	�|jd|jtj
�|jd|jtj�|j||jtj�|j||jtj
�|jd|jtj�|jd|jtj�|j||jtj�|j||jtj�tjj}|j�}|jt|jtj�|j||jtj�|j||jtj	�|j||jtj
�|j||jtj�|j||jtj�|j||jtj
�|j||jtj�|j||jtj�|j||jtj�|j||jtj�tjj}|j�}|jd|jtj�|jd	|jtjd
�|jd|jtj�|jd|jtj�|jd
|jtj�tj}	|j|	j|jtj�tjj}|j�}|jd|jtjd
�|jd|jtj�tjj}|j�}|jd|jtjd
�|jd|jtj�dS(Niii?ii i@ii����g��$��(@ig�Y�B��?sHello, "World"sHelloWorldii�i�if���ll����ll����ll��ll����ll��ll����(RtCustomOptionMinIntegerValuesRYRKR=tFalseRatbool_optt	int32_optt	int64_optt
uint32_optt
uint64_optt
sint32_optt
sint64_opttfixed32_opttfixed64_opttsfixed32_opttsfixed64_opttCustomOptionMaxIntegerValuestTruetCustomOptionOtherValuestassertAlmostEqualt	float_optt
double_optt
string_optt	bytes_optRktTEST_OPTION_ENUM_TYPE2tenum_opttSettingRealsFromPositiveIntstSettingRealsFromNegativeInts(
R4t	kint32mint	kint64mint	kint32maxt	kint64maxt
kuint32maxt
kuint64maxRpRyt
dummy_enum((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestDifferentCustomOptionTypes�s�	cCsYtjj}|j�}|jd|jtjj�|jd|jtjjtj�|jd|jtjjtj	j
�|jd|jtjj�|jd|jtjjtj
�|jd|jtjjj�|jd|jtjjjtj�|jd|jtjjjtj	j
�|jd	|jtjjtjj�|jd
|jtjjtjjtj�|jd|jtjjtjjtj	j
�|jd|jtjjjj�|jd
|jtjjj�|jd|jtjj
�|jd|jtjjj�|jd|jtjj�dS(Ni*iDili�i�i�i�i�i�i�iIi�iAi	ii(RtVariousComplexOptionsRYRKR=Ratcomplex_opt1tfootquuxtcorgetquxtcomplex_opt2tbaztgraulttbartgarplytComplexOptionType2tComplexOptionType4tcomplex_opt4twaldotfredtcomplex_opt3tcomplexoptiontype5tplughtcomplexopt6txyzzy(R4Rtoptions((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestComplexExtensionOptions sX









c	Cs�tj}tjj}|jd}tjj}|jd}tjj}|jd�}|j�j	tj
}|jd|j�|jd|j
�|jd|jj
�|jd|jj	tj
j
�|jd|jj	tjjj
�|jd	|j�j	tjj
�|jd
|j�j	tjj
�|jd|j�j	tjj
�|jd|j�j	tjj
�|jd
|j�j	tjj
�|jd|j�j	tjj
�dS(Nt	fieldnametVALUEtMethodidtFileAnnotationtNestedFileAnnotationtFileExtensionAnnotationtEmbeddedMessageSetElementtMessageAnnotationtFieldAnnotationtEnumAnnotationtEnumValueAnnotationtServiceAnnotationtMethodAnnotation(RRYtAggregateMessageR[t
AggregateEnumtvalues_by_nametAggregateServiceR_RKRatfileoptR=titstsubtfiletmsettAggregateMessageSetElementtmessage_set_extensiontmsgopttfieldopttenumoptt
enumvaloptt
serviceoptt	methodopt(	R4RoRpRqRsRtRvRwRx((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestAggregateOptionsRsP	


cCs�tjjj}|jd|j�jtj�|jd}|jd|j�jtj	�tjj}|j
d}|jd|j�jtj�|jd}|jd|j�jtj
�|jd}|jd	|j�jtj�dS(
Ni�tnested_fieldi�t
NestedEnumi�tNESTED_ENUM_VALUEi�tnested_extensioni�(RtNestedOptionTypeRRYR=RKRaRbR[RcR.RfR]Rgtextensions_by_nameRd(R4tnested_messageR�t
outer_messagetnested_enumtnested_enum_valueR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestNestedOptions�s 



cCs6|j|jj|j�|j|jj|j�dS(N(R=R/R�R+R-(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestFileDescriptorReferences�scCs�|j|jjd�|j|jjd�|j|jj|j�|j|jj�|jd|jj�tj	�}|jj
|�|j|jj|j��|jt
jjtj��dS(Nssome/filename/some.protoR
tproto2(R=R+RRR(RnRmtsyntaxRRtCopyToProtot
serialized_pbtSerializeToStringRRYRR;(R4R5((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestFileDescriptor�s
tcppisAImmutability of descriptors is only enforced in v2 implementationcCs}tj}tjj}|jd}|jd}|jd}|jt��d|_WdQX|jt	��d|jd<WdQX|jt	��|j
jd�WdQX|jt��||_WdQX|jt��t
|_WdQX|jt��t
|_WdQX|jt��t
|_WdQX|jt��t
|_WdQX|jt��}t|_WdQX|jdt|j��dS(Ntoptional_int32R�toneof_fieldtAnothers&attribute is not writable: has_options(RRYtTestAllTypesR[R.R\R@tAttributeErrortNoneRBRFtappendRGR�RmR�R=tstrt	exception(R4RoRpRqRsRrte((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestImmutableCppDescriptor�s2	


	(t__name__t
__module__R:R'RCRERHRJRRR�R�R�R�R�R�R�tunittesttskipIfRtTypetVersionR�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR
<s"	$							6	^	2	1			
!tNewDescriptorTestcBseZdZd�ZRS(sARedo the same tests as above, but with a separate DescriptorPool.cCs
tj�S(N(RtDescriptorPool(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR'�s(R�R�t__doc__R'(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR��stGeneratedDescriptorTestcBs_eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZRS(
s:Tests for the properties of descriptors in generated code.cCs|j|jd�|j|jd�|j||�|j|jdj|�|j||g�|j|id|6�|j|j�|j|j	�|j|j
�|j|j�|j|j�|j|j
�|j|j�|j|jdj�|j|jg�dS(NR�sprotobuf_unittest.TestAllTypesi(R=Rt	full_nameRFRGtassertInR�tCheckDescriptorSequencetCheckDescriptorMappingR[tfields_by_numbertfields_by_camelcase_nameR.R]R\t
enum_typesR�textension_ranges(R4Rp((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pytCheckMessageDescriptor�s"cCs(|j|jd�|j|jd�|j|jd�|j|jjd�|j|jtj�|j||�|j|jjd|�|j|jj	d|�|j
||g�|j
|id|6�|jd|j�|jd|j
�tj�dkr$|j|j|j�ndS(NR�t
optionalInt32s-protobuf_unittest.TestAllTypes.optional_int32R�R�(R=Rtcamelcase_nameRRGR�RRYR[RRR�textension_scopeR#RR�tid(R4Rq((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pytCheckFieldDescriptor�s(
	cCsK|j|tjjj�|j|g�|j|d�|j|dk�|j||�t|�}|j||�|jt	|�d�|jt	|�t	|��|j|t	|�d|d�|d}|j||d�|j
||�|j|j|�d�|j|j|�d�tj
jjd}|j||�|j|j|�d�|jt|j|�|jt|jg�t|�}|jt|�t|�ddd��|jtt|�d|d<|j||�tj�dkr-|jtt|��t|��n|jt|�dd�dS(Niii����schange valuetpythont<(tassertNotEqualRtTestAllExtensionsRYRFRnR=tlistt
assertGreatertlenRtindextcounttNestedTestAllTypestassertNotInR@t
ValueErrortreversedt
StopIterationtnextRR�R�(R4tsequencet
expected_listtitemt
other_itemtreversed_iterator((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyRs:	"
)
%cs�j|tjjj��j|i��j|d��j|dk�t|j��}�j||��j||��j	t
|�d��jt
|�t
|��tjdkr�t
t|j���\}}n|j�d\}}�j||��j|j|�|��jt��|j�WdQXtj�dkrj�jt|jg�n�jd|jg��t
t|j���t
t|j���f}�j|t
t|j����tjdkrA�fd�}||j�|j��||j�|j��||j�|j��nd||<�j||�||=d|d<�j||��jt|jd	��jt|jt
|�d�tj�dkr��jt
tt|j����t
t|���n�jt|�dd
�dS(
NiiiRcs8�jt|�|d��jt|�|d�dS(Nii(R=RR(tseqtiterator(R4(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt
CheckItemsBsschange valuetnewtnew_keyt	key_errorR(i(i(RRRRYR[RntdicttitemsR=RRtsystversion_infoRtiterRtgetR@RBRR�R�tkeysRDtiterkeyst
itervaluest	iteritemsRAt__getitem__R�(R4tmappingt
excepted_dicttkeyR R%((R4sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR$sJ!0"

 7cCs�tjj}|j|�|jd}|j|�|jd}|j|�tjjd}|jd|j
�|jtjjjdg�|jtj
jjdd
dg�dS(NR�R
Rii i*i+i/i�i(ii (i*i+(i/i�(ii (RR�RYR	R[RRR.R=R�RGRRtTestMultipleExtensionRanges(R4RpRqRs((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestDescriptorUs 



	
cCsstj}|j|j�|j|j�|j|j�|j|j�|j|j�|jtj	jj�dS(N(
RRYRtdependenciesRR,R.R0R�tTestNestedExtension(R4tcontaining_file((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCppDescriptorContainerhs	cCsBtjjjd}t|j�}~|jdt|�j�dS(NR�tFOO(	RR�RYR.R-RDR=RR(R4tenumtvalues_iter((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt#testCppDescriptorContainer_IteratorrscCsztjjd}|j|jd�|j|jdjd�|j|jtj�|j|jd�|j	|j
�dS(NtTestServiceiRX(RRYR0R=RtmethodstassertIsR�RRR2(R4Rv((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestServiceDescriptoryscCsytjj}|jd}|j|j�|j||j�|jd|j�|jd|j	�|jd|j
�dS(NR�s*protobuf_unittest.TestAllTypes.oneof_fieldi(RR�RYR\RnRmR=RGRRR(R4RpRr((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestOneofDescriptor�s
	
(R�R�R�R	RRRR8R<R@RDRE(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyR�s			#	1		
		tDescriptorCopyToProtoTestcBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
ejej�dkd
�d��Zejej�dkd�d��ZRS(s)Tests for CopyTo functions of Descriptor.cCsF|�}tj||�|j||dt|�t|�f�dS(Ns#Not equal,
Actual:
%s
Expected:
%s
(R	tMergeR=R�(R4tactual_prototexpected_classtexpected_asciitexpected_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt_AssertProtoEqual�s	cCs-|�}|j|�|j|||�dS(N(R�RL(R4tdesctexpected_proto_classtexpected_proto_asciitactual((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt_InternalTestCopyToProto�s	
cCs |jtjjtjt�dS(N(RQRtTestEmptyMessageRYRtDescriptorProtot#TEST_EMPTY_MESSAGE_DESCRIPTOR_ASCII(R4((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_EmptyMessage�s	cCs)d}|jtjjjtj|�dS(Ns�
      name: 'NestedMessage'
      field: <
        name: 'bb'
        number: 1
        label: 1  # Optional
        type: 5  # TYPE_INT32
      >
      (RQRR�RRYRRS(R4tTEST_NESTED_MESSAGE_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_NestedMessage�s
	cCs&d}|jtjjtj|�dS(Ns�
      name: 'TestForeignNested'
      field: <
        name: 'foreign_nested'
        number: 1
        label: 1  # Optional
        type: 11  # TYPE_MESSAGE
        type_name: '.protobuf_unittest.TestAllTypes.NestedMessage'
      >
      (RQRtTestForeignNestedRYRRS(R4tTEST_FOREIGN_NESTED_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt$testCopyToProto_ForeignNestedMessage�s

	cCs&d}|jtjjtj|�dS(Ns�
      name: 'ForeignEnum'
      value: <
        name: 'FOREIGN_FOO'
        number: 4
      >
      value: <
        name: 'FOREIGN_BAR'
        number: 5
      >
      value: <
        name: 'FOREIGN_BAZ'
        number: 6
      >
      (RQRRRYRtEnumDescriptorProto(R4tTEST_FOREIGN_ENUM_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_ForeignEnum�s
	cCs&d}|jtjjtj|�dS(Ns�
      name: 'TestDeprecatedFields'
      field: <
        name: 'deprecated_int32'
        number: 1
        label: 1  # Optional
        type: 5  # TYPE_INT32
        options: <
          deprecated: true
        >
      >
      (RQRtTestDeprecatedFieldsRYRRS(R4tTEST_DEPRECATED_FIELDS_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_Options�s
	cCs&d}|jtjjtj|�dS(Ns}
      name: 'TestEmptyMessageWithExtensions'
      extension_range: <
        start: 1
        end: 536870912
      >
      (RQRtTestEmptyMessageWithExtensionsRYRRS(R4t(TEST_EMPTY_MESSAGE_WITH_EXTENSIONS_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_AllExtensions�s
	cCs&d}|jtjjtj|�dS(Ns
      name: 'TestMultipleExtensionRanges'
      extension_range: <
        start: 42
        end: 43
      >
      extension_range: <
        start: 4143
        end: 4244
      >
      extension_range: <
        start: 65536
        end: 536870912
      >
      (RQRR7RYRRS(R4t*TEST_MESSAGE_WITH_SEVERAL_EXTENSIONS_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt!testCopyToProto_SeveralExtensions�s
	cCs+ddd}|jtjtj|�dS(Nsd
      name: 'google/protobuf/unittest_import.proto'
      package: 'protobuf_unittest_import'
      dependency: 'google/protobuf/unittest_import_public.proto'
      message_type: <
        name: 'ImportMessage'
        field: <
          name: 'd'
          number: 1
          label: 1  # Optional
          type: 5  # TYPE_INT32
        >
      >
      s�enum_type: <
        name: 'ImportEnum'
        value: <
          name: 'IMPORT_FOO'
          number: 7
        >
        value: <
          name: 'IMPORT_BAR'
          number: 8
        >
        value: <
          name: 'IMPORT_BAZ'
          number: 9
        >
      >
      enum_type: <
        name: 'ImportEnumForMap'
        value: <
          name: 'UNKNOWN'
          number: 0
        >
        value: <
          name: 'FOO'
          number: 1
        >
        value: <
          name: 'BAR'
          number: 2
        >
      >
      options: <
        java_package: 'com.google.protobuf.test'
        optimize_for: 1  # SPEED
      sG
        cc_enable_arenas: true
      >
      public_dependency: 0
    (RQRRYRR(R4t%UNITTEST_IMPORT_FILE_DESCRIPTOR_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_FileDescriptors0cCs&d}|jtjjtj|�dS(NsM
      name: 'TestService'
      method: <
        name: 'Foo'
        input_type: '.protobuf_unittest.FooRequest'
        output_type: '.protobuf_unittest.FooResponse'
      >
      method: <
        name: 'Bar'
        input_type: '.protobuf_unittest.BarRequest'
        output_type: '.protobuf_unittest.BarResponse'
      >
      (RQRRARYRtServiceDescriptorProto(R4tTEST_SERVICE_ASCII((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt!testCopyToProto_ServiceDescriptorNs

	Rs It is not implemented in python.cCs5d}tjjjd�}|j|tj|�dS(Ns}
      name: 'Foo'
      input_type: '.protobuf_unittest.FooRequest'
      output_type: '.protobuf_unittest.FooResponse'
    RX(RRARYR_RQRtMethodDescriptorProto(R4RJRw((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt testCopyToProto_MethodDescriptoras		s!Pure python does not raise error.cCs�tj�}|jttjjj|�|jttjjj|�|jttj	jj|�tj
�}|jttjj|�dS(N(RRR@RBRRRRYR�RRARSR(R4R5tproto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCopyToProto_TypeErrorrs					(R�R�R�RLRQRURWRZR]R`RcReRgRjR�R�RR�RlRn(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyRF�s$											;	tMakeDescriptorTestcBs5eZd�Zd�Zd�Zd�Zd�ZRS(c	Csrtj�}d|_|jj�}|j|_|jj�}d|_|jj�}d|_|jj�}d|_d|_|j	j�}d|_d|_t
jj|_
t
jj|_|j	j�}d|_d	|_t
jj|_
t
jj|_d|_|j	j�}d|_d
|_t
jj|_
t
jj|_d|_t
j|�}|j|jdjt
jj�|j|jdjt
jj�|j|jdjj|�|j|jdjdjd
�|j|jdjdj|jdjd�|j|j�|j|jdj�tj �dkrn|j!t"��t#|jd_WdQXndS(NtFoo2tSubR=tBARiituint64_fielditnested_message_fieldt	bar_fieldsFoo2.Sub.FOOisFoo2.Sub.bar_fieldR�($RRRRRtnested_typeR#R$RRRtFieldDescriptortLABEL_REQUIREDRtTYPE_UINT64RtTYPE_MESSAGEt	type_namet	TYPE_ENUMtMakeDescriptorR=RFtcpp_typetCPPTYPE_UINT64tCPPTYPE_MESSAGERGtnested_typesRRRnRmRR�R@R�R�(	R4tfile_descriptor_protoRRvR#t
enum_type_valRt
enum_fieldtresult((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt"testMakeDescriptorWithNestedFields�sX													

cCs#tj�}d|_|jj�}|j|_|jj�}d|_|jj�}d|_d|_|jj�}d|_d|_t	j
j|_t	j
j
|_|jj�}d|_d|_t	j
j|_t	j
j|_d	|_t	j|�}|j|jd
jt	j
j�dS(NRXR=RriiRsiRusFoo.FOOi(RRRRRR#R$RRRRwRxRRyRR|R{R}R=RFR~R(R4R�RR#R�RR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt&testMakeDescriptorWithUnsignedIntField�s.									cCsatj�}tj}|jj|�tj|�}|j�}|j	d|j
tjj�dS(Nie(
RRSRR�RYR�RR}RKR=RaR�R�(R4tdescriptor_prototaggregate_messagetreformed_descriptorR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestMakeDescriptorWithOptions�s		cCs�tj�}d|_dddddg}dddddg}xCtt|��D]/}|jj�}|d|_|||_qRWtj	|�}x8tt|��D]$}|j
|j|j||�q�WdS(	NtBartfoo_footFooBartfooBaztfooFootfoobartfooBari(
RRSRtrangeRRRRRR}R=RFR(R4R�tnamestcamelcase_namesRRR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestCamelcaseName�s	
cCs�tj�}d|_ddddddg}dddddd	g}xCtt|��D]/}|jj�}|d
|_|||_qXWd	|_t	j
|�}x8tt|��D]$}|j|j|j||�q�WdS(NtTestJsonNamet
field_namet	fieldNamet	FieldNamet_field_namet
FIELD_NAMEt	json_namet	FIELDNAMEs@typei(
RRSRR�RRRRR�RR}R=RF(R4R�R�t
json_namesRRR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyttestJsonName�s			
	(R�R�R�R�R�R�R�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyRo�s
	/		
	t__main__(R�t
__author__R+t	unittest2R�tImportErrortgoogle.protobufRRRRtgoogle.protobuf.internalRRRRRR	RTtTestCaseR
R�RRFRoR�tmain(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_test.pyt<module> s2
����vPK�\TϞ���"protobuf/internal/message_test.pyonu�[����
���hc@s�dZdZddlZddlZddlZddlZddlZddlZddlZddl	Z	yddl
ZWnek
r�ddlZnXye
Wnek
r�d�Z
nXddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZej r�e!Z"nd�Z#d�Z$d�Z%d�Z&ej'Z'ej(defdef�de'fd��Y�Z)de'fd��YZ*de'fd��YZ+d e'fd!��YZ,d"e'fd#��YZ-ej.ej/�d$kp�ej0d%d&fkd'�d(e'fd)��Y�Z1e2d*kr�ej3�ndS(+s�Tests python protocol buffers against the golden message.

Note that the golden messages exercise every known field type, thus this
test ends up exercising and verifying nearly all of the parsing and
serialization code in the whole library.

TODO(kenton):  Merge with wire_format_test?  It doesn't make a whole lot of
sense to call this a test of the "message" module, which only declares an
abstract interface.
s!gps@google.com (Gregory P. Smith)i����NcCs||k||kS(N((txty((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt<lambda>>t(tmap_proto2_unittest_pb2(tmap_unittest_pb2(tunittest_pb2(tunittest_proto3_arena_pb2(tdescriptor_pb2(tdescriptor_pool(tmessage_factory(ttext_format(tapi_implementation(tencoder(tpacked_field_test_pb2(t	test_util(ttesting_refleaks(tmessage(t_parameterizedcCs
||kS(N((tval((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytisnanVscCst|�ot|d�S(Ni(R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytisinfYscCst|�o|dkS(Ni(R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytIsPosInf\scCst|�o|dkS(Ni(R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytIsNegInf^st_proto2t_proto3tMessageTestc
Bs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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,d+�Z-d,�Z.d-�Z/dFe1d.d/d0d1e2�gie3�g
Z4d2�Z5d3�Z6d4�Z7d5�Z8d6�Z9d7�Z:d8�Z;d9e<fd:��YZ=d;�Z>d<�Z?d=�Z@d>�ZAd?�ZBd@�ZCdA�ZDdB�ZEdC�ZFdD�ZGdE�ZHRS(GcCsvtj�dkr"|jd�ntjd�}|jt��}|jj|�WdQX|j	dt
|j��dS(Ntpythons�Skipping testBadUtf8String, currently only the python api implementation raises UnicodeDecodeError when a string field contains bad utf-8.tbad_utf8_stringsTestAllTypes.optional_string(RtTypetskipTestRtGoldenFileDatatassertRaisestUnicodeDecodeErrortTestAllTypest
FromStringtassertIntstrt	exception(tselftmessage_modulet
bad_utf8_datatcontext((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestBadUtf8StringjscCs�|tkrtjd�}ntjd�}|j�}|j|�|tkretj||�n|j||j��tj	|�}|j||j��dS(Nt golden_message_oneof_implementedtgolden_message_proto3(
RRRR"tParseFromStringtExpectAllFieldsSettassertEqualtSerializeToStringtcopytdeepcopy(R'R(tgolden_datatgolden_messagetgolden_copy((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestGoldenMessagets
cCs�tjd�}|j�}|j|�|j�}tj|�|j||�|j||j��tj|�}|j||j��dS(Ntgolden_packed_fields_message(	RRtTestPackedTypesR.tSetAllPackedFieldsR0R1R2R3(R'R(R4R5tall_setR6((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestGoldenPackedMessage�s

c	Cs�|j�}|jt|jd�|jt|jd�tjdd�}tj�dkr�|jt	j
��}|j|�WdQX|jdt|j
��nRtjdt��>}tjd�|j|�|jd	t|d
j	��WdQXdS(Nit0iiRsUnexpected end-group tag.trecordtalwayss4Unexpected end-group tag: Not all data was convertedi����(R"R t	TypeErrorR#t	ExceptionR
tTagBytesRRRtDecodeErrorR0R%R&twarningstcatch_warningstTruetsimplefilter(R'R(tmsgtend_tagR*tw((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestParseErrors�s

	cs�d}|j�}|jjddddg�|j||jdd��|j||jdt��|j||jdt��dtfd��Y�d	t	f�fd
��Y}|j
���|jd|��WdQXdS(Ns5�
One string�
Two string�
Red string�Blue strings
One strings
Two strings
Red stringsBlue stringt
deterministictBadArgErrorcBseZRS((t__name__t
__module__(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRM�stBadArgcs&eZ�fd�Z�fd�ZRS(cs
���dS(N((R'(RM(sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt__nonzero__�scs
���dS(N((R'(RM(sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt__bool__�s(RNRORQRR((RM(sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRP�s(R"trepeated_stringtextendR0R1tNonetFalseRFRAtobjectR (R'R(R4R5RP((RMsI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestDeterminismParameters�s"	
			cCsZtjd�}|j�}|j|�tj|�}tj|�}|j||�dS(NR5(RRR"R.tpickletdumpstloadsR0(R'R(R4R5tpickled_messagetunpickled_message((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPickleSupport�s
cCs�|tkrd}nd}|j�}|j|�|jt|j��|jt|j��|jt|jd��|jt|jd��|j	||j
��dS(Ns]�a�����s ]�a�����i(RR"R.t
assertTrueRtoptional_floattoptional_doubletrepeated_floattrepeated_doubleR0R1(R'R(R4R5((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPositiveInfinity�s	
cCs�|tkrd}nd}|j�}|j|�|jt|j��|jt|j��|jt|jd��|jt|jd��|j	||j
��dS(Ns]��a������s ]��a������i(RR"R.R_RR`RaRbRcR0R1(R'R(R4R5((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestNegativeInfinity�s	
cCsd}|j�}|j|�|jt|j��|jt|j��|jt|jd��|jt|jd��|j�}|j�}|j|�|jt|j��|jt|j��|jt|jd��|jt|jd��dS(Ns]�a�����i(	R"R.R_RR`RaRbRcR1(R'R(R4R5t
serializedR((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestNotANumber�s

cCsmd}|j�}|j|�|jt|jd��|jt|jd��|j||j��dS(Ns����i(R9R.R_Rtpacked_floatt
packed_doubleR0R1(R'R(R4R5((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPositiveInfinityPackeds
cCsmd}|j�}|j|�|jt|jd��|jt|jd��|j||j��dS(Ns�����i(R9R.R_RRhRiR0R1(R'R(R4R5((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestNegativeInfinityPackeds
cCs�d}|j�}|j|�|jt|jd��|jt|jd��|j�}|j�}|j|�|jt|jd��|jt|jd��dS(Ns����i(R9R.R_RRhRiR1(R'R(R4R5RfR((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestNotANumberPacked%s

cCs�|j�}tjdd�}||_|j|j��|j|j|k�dtjdd�}||_|j|j��|j|j|k�||_|j|j��|j|j|k�||_|j|j��|j|j|k�tjdd�}||_|j|j��|j|j|k�dtjdd�}||_|j|j��|j|j|k�||_|j|j��|j|j|k�||_|j|j��|j|j|k�dS(Niig�?i����(R"tmathtpowR`R.R1R_(R'R(RtkMostPosExponentNoSigBitstkMostPosExponentOneSigBittkMostNegExponentNoSigBitstkMostNegExponentOneSigBit((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtremeFloatValues3s:		

		

cCs�|j�}tjdd�}||_|j|j��|j|j|k�dtjdd�}||_|j|j��|j|j|k�||_|j|j��|j|j|k�||_|j|j��|j|j|k�tjdd�}||_|j|j��|j|j|k�dtjdd�}||_|j|j��|j|j|k�||_|j|j��|j|j|k�||_|j|j��|j|j|k�dS(Nii�g�?i���(R"RmRnRaR.R1R_(R'R(RRoRpRqRr((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtremeDoubleValues`s:		

		

cCs/|j�}d|_|jt|�d�dS(Ng@soptional_float: 2.0
(R"R`R0R%(R'R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestFloatPrinting�s	cCsW|j�}d|_tjdkr=|jt|�d�n|jt|�d�dS(Ng^!�7ݚ�?is%optional_double: 0.12345678912345678
s optional_double: 0.123456789123
(i(R"Ratsystversion_infoR0R%(R'R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestHighPrecisionFloatPrinting�s
	cCsR|j�}tj|�|j�}|j|j��|jt|�d�dS(NR(R"RtSetAllNonLazyFieldstTestEmptyMessageR.R1R0R%(R'R(t	populatedtempty((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestUnknownFieldPrinting�s

cCs|j�}|jjdd�|jjdd�|jjdd�|jjdd�|jddddgg|jD]}|j^qw�|jddddggt|j�D]}|j^q��|jddddgg|jddd�D]}|j^q��dS(Ntbbiiiii����(R"trepeated_nested_messagetaddR0R~treversed(R'R(RHtm((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt testRepeatedNestedFieldIteration�s &cCs�|j�}|jjd�|jjd�|jjd�|jj�|j|jdd�|j|jdd�|j|jdd�|jt|j�tdddg��|jjd�|jjd�|jjd�|jj�|j|jdd�|j|jdd�|j|jdd�|jjd�|jjd	�|jjd
�|jj�|j|jdd�|j|jdd
�|j|jdd	�|jt|j�tddd
g��|j	jd�|j	jd	�|j	jd
�|j	j�|j|j	dd�|j|j	dd
�|j|j	dd	�|jt|j	�tdd
d	g��dS(s7Check some different types with the default comparator.iiiig�������?g�������?g333333�?tatctbuaubucN(
R"trepeated_int32tappendtsortR0R%RbtassertAlmostEqualRStrepeated_bytes(R'R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt0testSortingRepeatedScalarFieldsDefaultComparator�s@
(

(
cCs |j�}|jjd�|jjd�|jjd�|jjdt�|j|jdd�|j|jdd�|j|jdd�|jjd�|jjd	�|jjd
�|jjdt�|j|jdd
�|j|jdd	�|j|jdd�dS(s2Check some different types with custom comparator.i����i����i����tkeyiiitaaaR~R�N(R"R�R�R�tabsR0RStlen(R'R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt/testSortingRepeatedScalarFieldsCustomComparator�scCsM|j�}d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_|jjdtjd��|j|jd	jd�|j|jdjd�|j|jdjd�|j|jdjd�|j|jdjd�|j|jdjd�|jt|j�d
�dS(sECheck passing a custom comparator to sort a repeated composite field.iiiiiiR�R~is0[bb: 1
, bb: 2
, bb: 3
, bb: 4
, bb: 5
, bb: 6
]N(	R"RR�R~R�toperatort
attrgetterR0R%(R'R(R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt2testSortingRepeatedCompositeFieldsCustomComparator�s cCsC|j�}d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_|jjdd	��|jdddddddgg|jD]}|j^q��|j�}|j�|j|�|jdddddddgg|jD]}|j^q)�d
S(sECheck passing a custom comparator to sort a repeated composite field.iii
i!iii
R�cSs|jdS(Ni
(R~(tz((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR
RN(	R"RR�R~R�R0R1tCleartMergeFromString(R'R(Rtntpb((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt(testSortingRepeatedCompositeFieldsStable�s$ 

cCs�|j�}tjd�}d�}d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_|jjd	|�|jg|jD]}|j^q�ddddddg�|jjd	|d
t�|jg|jD]}|j^qddddddg�t	j
dkrEdS|jjd|�|jg|jD]}|j^qhddddddg�|jjd
|d
t�|jg|jD]}|j^q�ddddddg�dS(sECheck sorting a repeated composite field using list.sort() arguments.R~cSst|j|j�S(N(tcmpR~(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRRiiiiiiR�treverseNt
sort_functionR�(i(R"R�R�RR�R~R�R0RFRvRw(R'R(Rtget_bbtcmp_bbtk((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt'testRepeatedCompositeFieldSortArgumentss.	""""cCsf|j�}|jjd�|jjd�|jjd�|jjdt�|jt|j�dddg�|jjdtdt�|jt|j�dddg�tj	dkr7d�}|jjd|�|jt|j�dddg�|jjd	|dt�|jt|j�dddg�n|j
jd
�|j
jd�|j
jd�|j
jdt�|jt|j
�ddd
g�|j
jdtdt�|jt|j
�d
ddg�tj	dkrbd
�}|j
jd|�|jt|j
�ddd
g�|j
jd	|dt�|jt|j
�d
ddg�ndS(s9Check sorting a scalar field using list.sort() arguments.i����i����i����R�R�icSstt|�t|��S(N(R�R�(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR>RR�R�R�R~R�cSstt|�t|��S(N(R�R�(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRLRN(i(i(R"R�R�R�R�R0tlistRFRvRwRSR�(R'R(Rtabs_cmptlen_cmp((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt$testRepeatedScalarFieldSortArguments2s6""	"%""	"cCs�|j�}|j�}|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_d|jj�_tjdkr�dS||k}|j|jk}|jt	||�d�|jt	|j|j�d�|jt	|jdddg�d�|jt	|j|j�d�|j
t��t	|j|j�WdQXdS(Niiii(i(R"R�R�RR�R~RvRwR0R�R R@(R'R(tm1tm2t_((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedFieldsComparableRs2%cCs<|j�}|j|jtj�|j|jtj�dS(N(R"tassertIsInstanceR�tcollectionstMutableSequenceR(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedFieldsAreSequencesuscCsV|j�}|jt��t|j�WdQX|jt��t|j�WdQXdS(N(R"R R@thashR�R(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedFieldsNotHashable{s
cCs9|j�}|jjjg�|j|jd��dS(Ntpayload(tNestedTestAllTypesR�R�RTR_tHasField(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt$testRepeatedFieldInsideNestedMessage�scCs't||�|j|j|��dS(s�Make sure that a nested message object exists.

    As soon as a nested message attribute is accessed, it will be present in the
    _fields dict, without being marked as actually being set.
    N(tgetattrtassertFalseR�(R'RHt	attribute((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytensureNestedMessageExists�s
cCs<|j�}|jt|jd�|jt|jd�dS(Ntno_such_oneof_fieldi(R"R t
ValueErrort
WhichOneofRA(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt testOneofGetCaseNonexistingField�scCs�|j�}|jd|jd��|j|jd��d|_|jd|jd��|j|jd��|j|jd��d|_	|jd|jd��|j|jd��|j|jd��dS(Ntoneof_fieldtoneof_uint32itoneof_stringR(
R"tassertIsRUR�R�R�R�R0R_R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofDefaultValues�s		cCs�|j�}|jd|jd��d|_|jd|jd��|j|jd��d|_|jd|jd��|j	|jd��|j|jd��|j
|jd|jd��|j|jd��|j	|jd��|j
j|jd|jd��|j|jd��|j	|jd��d|j
_|jd|jd��|j	|jd��|j|jd��d|_|jd|jd��|j	|jd��|j|jd��dS(	NR�iR�ufooR�toneof_nested_messageR~toneof_bytes(
R"R�RUR�R�R0R_R�R�R�R�R~R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofSemantics�s2		
	cCsU|j�}d|_|j|d�|jd|jd��|jd|j�dS(NiR�R�R�(R"R�R�R0R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt!testOneofCompositeFieldReadAccess�s
	cCs|j�}|jd|jd��|tkrJ|j|jd��nd|_|jd|jd��|tkr�|j	|jd��nd|_
|jd|jd��|jd�|jd|jd��|tkr�|j|jd��ndS(NR�iR�R~R�(R"R�RUR�RR�R�R�R0R_R�t
ClearField(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofWhichOneof�s		
cCsz|j�}d|_|jd�|tkrG|j|jd��n|j|jd��|jd|jd��dS(NiR�R�(	R"R�R�RR�R�R�RUR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofClearField�s	
cCsz|j�}d|_|jd�|tkrG|j|jd��n|j|jd��|jd|jd��dS(NiR�R�(	R"R�R�RR�R�R�RUR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofClearSetField�s	
cCs�|j�}d|_|j|d�|jd�|jd|j�|tkrj|j|jd��n|j|jd��|jd|jd��dS(NiR�R�R�(	R"R�R�R�R0RR_R�R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofClearUnsetField�s	
cCsQ|j�}d|_|j�}|j|j��|jd|jd��dS(NiR�R�(R"R�R.R1R0R�(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofDeserializes
	cCsK|j�}d|_|j�}|j|�|jd|jd��dS(NiR�R�(R"R�tCopyFromR0R�(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofCopyFroms
	
cCs�|j�}d|j_|j�}d|j_d|jj_|j|�|jd|jjd��|jd|jjjd��dS(NiR~R�R�R�(R�R�R�R�tchildt	MergeFromR0R�(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofNestedMergeFroms
cCs�|j�}d|jj_d|jjj_|j�}d|j_|j|�|jd|jjd��|jd|jjjd��dS(Niii
R�R�(	R�R�R�R~R�R�R�R0R�(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofMessageMergeFroms
		cCs8|jd|jj��}|jd|jd��dS(NR�R�(R"t
NestedMessageR0R�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofNestedMessageInit$s	cCs[|j�}d|_|j�|j|jd��d|_|jd|jd��dS(NiR�R~R�(R"R�R�tassertIsNoneR�R�R0(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestOneofClear)s	
	cCs5|j�}td�|_|j|jtj�dS(smAssigning a byte string to a string field should result
    in the value being converted to a Unicode string.RN(R"R%toptional_stringR�tsixt	text_type(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt"testAssignByteStringToUnicodeField1scCs�|j�}|jjd�|jtd�tt|j��!}|jt|j�t|��d|jj�_|jtd�tt|j��!}|jt|j�t|��dS(s|It should be possible to use long-valued indicies in slices

    This didn't used to work in the v2 C++ implementation.
    iiiN(	R"R�R�tlongR�R0RR�R~(R'R(R�tsl((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestLongValuedSlice8s%%c	Cs�|j�}|jt��'}|jjd�td�D��WdQX|jt��'}|jjd�td�D��WdQXdS(s5This didn't use to work in the v2 C++ implementation.css|]}tVqdS(N(R�(t.0ti((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pys	<genexpr>Msi
Ncss|]}tVqdS(N(R�(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pys	<genexpr>Ps(R"R t	NameErrorR�RTtrangetrepeated_nested_enum(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt$testExtendShouldNotSwallowExceptionsIs&	igRucCs}|j�}|jg|j�x4tjD])}|jj|�|jg|j�q)W|jjg�|jg|j�dS(s,Test no-ops extending repeated int32 fields.N(R"tassertSequenceEqualR�RtFALSY_VALUESRT(R'R(R�tfalsy_value((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendInt32WithNothingTscCs}|j�}|jg|j�x4tjD])}|jj|�|jg|j�q)W|jjg�|jg|j�dS(s,Test no-ops extending repeated float fields.N(R"R�RbRR�RT(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendFloatWithNothingascCs}|j�}|jg|j�x4tjD])}|jj|�|jg|j�q)W|jjg�|jg|j�dS(s-Test no-ops extending repeated string fields.N(R"R�RSRR�RT(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendStringWithNothingnscCs�|j�}|jg|j�|jjdg�|jdg|j�|jjddg�|jdddg|j�|jjddg�|jdddddg|j�dS(s7Test extending repeated int32 fields with python lists.iiiiiN(R"R�R�RT(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendInt32WithPythonList{scCs�|j�}|jg|j�|jjdg�|jdg|j�|jjddg�|jdddg|j�|jjddg�|jdddddg|j�dS(s7Test extending repeated float fields with python lists.gg�?g@g@g@N(R"R�RbRT(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendFloatWithPythonList�scCs�|j�}|jg|j�|jjdg�|jdg|j�|jjddg�|jdddg|j�|jjddg�|jdddddg|j�dS(s8Test extending repeated string fields with python lists.Rt11t22t33t44N(R"R�RSRT(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendStringWithPythonList�scCsO|j�}|jg|j�|jjd�|jdddg|j�dS(sDTest extending repeated string fields with characters from a string.tabcR�R�R�N(R"R�RSRT(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendStringWithString�stTestIterablecBs5eZdZdd�Zd�Zd�Zd�ZRS(s�This iterable object mimics the behavior of numpy.array.

    __nonzero__ fails for length > 1, and returns bool(item[0]) for length == 1.

    cCs|p	g|_dS(N(t_list(R'tvalues((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt__init__�scCsLt|j�}|dkrtS|dkr<t|jd�Std��dS(NiisTruth value is ambiguous.(R�R�RVtboolR�(R'tsize((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRQ�scCs
t|j�S(N(R�R�(R'((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt__len__�scCs
|jj�S(N(R�t__iter__(R'((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR��sN(RNROt__doc__RUR�RQR�R�(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR��s
		cCs�|j�}|jg|j�|jjtjg��|jg|j�|jjtjdg��|jdg|j�|jjtjddg��|jdddg|j�|jjtjddg��|jdddddg|j�dS(s3Test extending repeated int32 fields with iterable.iiiiiN(R"R�R�RTRR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendInt32WithIterable�scCs�|j�}|jg|j�|jjtjg��|jg|j�|jjtjdg��|jdg|j�|jjtjddg��|jdddg|j�|jjtjddg��|jdddddg|j�dS(s3Test extending repeated float fields with iterable.gg�?g@g@g@N(R"R�RbRTRR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendFloatWithIterable�scCs�|j�}|jg|j�|jjtjg��|jg|j�|jjtjdg��|jdg|j�|jjtjddg��|jdddg|j�|jjtjddg��|jdddddg|j�dS(s4Test extending repeated string fields with iterable.Rt1t2t3t4N(R"R�RSRTRR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtendStringWithIterable�scCsitj�dks$tj�dkr(dS|j�}|jtj��}tj|jtj	�WdQXdS(Ntcppi(
RRtVersionR"R RYtPickleErrorRZR�tHIGHEST_PROTOCOL(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt!testPickleRepeatedScalarContainer�scCs|j�}|jj�dS(s?Exercise a scenario that has led to segfaults in the past.
    N(R"RR�(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt'testSortEmptyRepeatedCompositeContainer�scCs5|j�}|jt��}|jd�WdQXdS(sBUsing HasField on a repeated field should raise an exception.
    R�N(R"R R�R�(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestHasFieldOnRepeatedField�scCs�|j�}|jt��}|jj�WdQX|jjtd��|jd|jj��|jd|jjd��|jd|jjd��|jddg|j�dS(Niiiiii(R"R t
IndexErrorR�tpopRTR�R0(R'R(R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedScalarFieldPop�scCs|j�}|jt��}|jj�WdQX|jt��}|jjd�WdQXx,td�D]}|jj�}||_qfW|j	d|jj�j�|j	d|jjd�j�|j	d|jjd�j�|j	ddgg|jD]}|j^q��dS(NR=iiiiii(
R"R RRR	R@R�R�R~R0(R'R(R�R�R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedCompositeFieldPops
cCs~|j�}x?td�D]1}|jj||�|jj�}||_qW|j|j|j�|j|j|j�dS(Ni(	R"R�R�tinsertRR�R~R�R0(R'R(R�R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestRepeatedCompareWithSelfs
cCsM|j�}|jj�}|j}|jj�}|j|jjd�dS(swA case that lead to a segfault when a message detached from its parent
    container has itself a child container.
    iN(R�trepeated_childR�R�R0R�toptional_int32(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestReleasedNestedMessagess
	cCs�|j�}|jt��g|_WdQX|jjd�tj�dkro|jt��g|_WdQXn|jt��g|_WdQXdS(NiR(R"R tAttributeErrorR�R�RRR@(R'R(R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestSetRepeatedComposite(sN(IRNROR+R7R<RKRXR^RdReRgRjRkRlRsRtRuRxR}R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RURVt	bytearraytsetR�R�R�R�R�R�R�R�RWR�R�R�RRRRR
RR
RR(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRes�	
				$											-	-					(					 	#								#										
							*	
	
	
					
	
	
				
				
t
Proto2TestcBsYeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	cCs\tj�}|j|jd��|j|jd��|j|jd��|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|jd|j�|jt|j	�|jd|j
j�d|_t|_	d|j
_|j|jd��|j|jd��|j|jd��d|_t
|_	d	|j
_|j|jd��|j|jd��|j|jd��|jd�|jd�|jd�|j|jd��|j|jd��|j|jd��|jd|j�|jt|j	�|jd|j
j�dS(
NRt
optional_booltoptional_nested_messagetfield_doesnt_existR�Riii(RR"R�R�R R�R0RRVRRR~R_RFR�(R'R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestFieldPresence:sD				


cCs]tj�}|jt��}d|_WdQX|jt|jjd�|jjd�d|jd<|jt��d|jd<WdQXtj�}d|_|jjd�|j�}tj�}|j	|�|j
|jd��|jd|j�|jdt
|j��|j�|j	|j��|jd|j�|jd|jd�dS(	s:Assigning an invalid enum number is not allowed in proto2.i��Niii@�i��ttoptional_nested_enumi(RR"R R�RR�R�RR1R.R�R�R0R�R�(R'R�R�R�Rftm3((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestAssignInvalidEnumjs*
	

cCs@tj�}d|jd<|jt��d|jd<WdQXdS(Nii{i(RtTestEnumMaptknown_map_fieldR R�tunknown_map_field(R'R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestUnknownEnumMap�s
cCs&tj�}|jtt|d�dS(Nt
Extensions(RR"R RR�(R'RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestExtensionsErrors�scCs�tjd�}tj�}|j|�tj�}tj|�|j||�|j||j��tj	|�}|j||j��dS(NR5(
RRRtTestAllExtensionsR.tSetAllExtensionsR0R1R2R3(R'R4R5R;R6((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestGoldenExtensions�s

cCs�tjd�}tj�}|j|�tj�}tj|�|j||�|j||j��tj	|�}|j||j��dS(NR8(
RRRtTestPackedExtensionsR.tSetAllPackedExtensionsR0R1R2R3(R'R4R5R;R6((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestGoldenPackedExtensions�s

cCsmtjdd�}tj|�}tj|�}|j||�|j|jd�|jtj	|j
�dS(NR�i(RtTestRequiredRYRZR[R0R�R RtEncodeErrorR1(R'R5R\R]((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPickleIncompleteProto�scCs`tj�tj�tj�g}d|d_d|d_d|d_d|d_tj�}d|_d|_d|_tjj�}|jj|�|j	j|�|j
j|�|jj|�|jj|�|j
j�jj|d�|j
j�jj|d�|j
j�jj|d�|jj�jj|d�|jj�jj|d�|jj�jj|d�|j�}tj�}|j|�|j|j|�|j|j|�|j|jj|�|j|jtjj|�|jt|j�d�|jt|j�d�|jt|jtjj�d�dS(scCheck the merge behavior when a required or optional field appears
    multiple times in the input.iiiithelloN(RR"Rtoptional_int64R�tTestParsingMergetRepeatedFieldsGeneratortfield1RTtfield2tfield3text1text2tgroup1R�R�tgroup2R1R.R0trequired_all_typestoptional_all_typest
optionalgrouptoptional_group_all_typesR!toptional_extR�trepeated_all_typest
repeatedgrouptrepeated_ext(R'tmessagestmerged_messaget	generatortdatat
parsing_merge((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestParsingMerge�sJ		



			

cCsKtjddddddddd	id
d6did
d6didddidd6idd6gddtjjgdddd�}|j|tj�|jd|j�|jd|j�|jd|j�|jd|j�|jd
|j	j
�|j|jtjj�|jd
|jj
�|j|jd��|j|jtj��|jtjj|j�|jdt|j��|jd|jdj
�|jd|jdj
�|jdt|j��|jtjj|jd�|jtjj|jd�|jd|j�|jd|j�|j|jd��|jdt|j��|jd|j�tjdd �}|jtjj|j�|jt��tjdid!d"6�WdQX|jt��tjdid#d6�WdQX|jt��tjdd$�WdQX|jt��tjdd�WdQXdS(%NRidtoptional_fixed32i�R`g�r@toptional_bytesRR9i�R�Ri�R~toptional_foreign_messageRtBAZR=iXi�R�tFOOt
default_int32i R�RiiiR-i*uBAZitINVALID_NESTED_FIELDtINVALID_VALUE_TYPEt
INVALID_LABEL( RR"tBARR�R0RRER`RFR9R�RR�R~R_R�RGtForeignMessageRHRR�R=R�RIRJR�R�Rbt
default_int64R R�R@(R'R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPythonicInit�sl	


	



		(RNRORRR R"R%R(R+RDRQ(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR8s	0							1t
Proto3TestcBs(eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!RS( cCsRt|�}x/|D]'\}}|j|||�||=qW|ji|�dS(N(tdictR0(R'tmap_itert
dict_valueR�tv((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytassertMapIterEquals+s
cCsrtj�}|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|j|jd��|jt��|jd�WdQX|jt��|jd�WdQX|jt��|jd�WdQX|jd	|j�|jd	|j�|jd
|j	�|jt
|j�|jd	|jj
�d	|j_
|j|jd��d|_d|_d
|_	t|_d|j_
|jd�|jd�|jd�|jd�|jd�|jd	|j�|jd	|j�|jd
|j	�|jt
|j�|jd	|jj
�dS(NRR`R�RRRR�RiRig�������?R�i(RR"R R�R�R�R0RR`R�RVRRR~R_RFR�(R'R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR5sL				




cCs�tj�}d|_|jd|j�|jjd�|jd|jd�d|jd<|jd|jd�|j�}tj�}|j|�|jd|j�|jd|jd�dS(sCAssigning an unknown enum value is allowed and preserves the value.i��i��Tii��tN(RR"RR0R�R�R1R.(R'R�RfR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestAssignUnknownEnumns	

cCstj�}|jd|jk�|jd|jk�|jd|jk�|jd
|jk�|jd|jk�|jt|j	k�|jd|j
k�|jd|jk�|jd|jk�|j
d|jd�|j
d|jd�|j
d|jd�|j
d|jd�|j
d	|jd�|jt|jdt��|j
t|j	t�|jt|j	tt��|j
d
|j
d�|j
d
|jd�|j
d|jd�|jd|jk�|jd|jk�|jd|jk�|jd|jk�|jd|jk�|jt|j	k�|jd|j
k�|jd|jk�|jd|jk�|j|j
dtj�|jt��|j
dWdQX|jt��d|j
kWdQXdS(Ni����ii!i{R�ioixigRll����lll����lll����l(RtTestMapR�tmap_int32_int32tmap_int64_int64tmap_uint32_uint32tmap_uint64_uint64tmap_int32_doubleRVt
map_bool_booltmap_string_stringtmap_int32_bytestmap_int32_enumR0R_t
isinstancetfloatR�R�R�R�R R@(R'RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestScalarMapDefaults�sFcCs�tj�}|j|jjd��|jd|jjdd��|j|jjd��d|jd<|jd|jjd��|jd|jjd��|jt��|jjd�WdQX|j|jjd��|jd|jjdd��|jd}|j	||jjd��t
j�dkrd|jt��|jjd�WdQXn|jd|jjd��dS(Nii
iRR(
RRYR�RZtgetR0R R@tmap_int32_foreign_messageR�RRRU(R'RHtsubmsg((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
testMapGet�s"

c
Cs�tj�}|jdt|j��|jd|jk�d|jd<d|jd<d|jd	<d|jd<d
|j	d<d|j
d<d
|jd<t|j
t<d|jd<d|jd	<|jg|j��|jdt|j��|jt��d
|jd	<WdQX|jdt|j��|jt��d	|jd
<WdQX|j�}tj�}|j|�|jt��d
|jd	<WdQX|jt��d	|jd
<WdQX|jd|jd�|jd|jd�|jd|jd	�|jd|jd�|jd
|j	d�|jd|j
d�|jd
|jd�|jt|j
t�|jd|jd�|jd|jd	�tj�dkr�|jdt|j��ndS(Niii8���i����ii"i!i�i{g333333�?gffffff
@it123R�ixRs{-123: -456}ll����ll����llll����ll����ll(RRYR0R�RZR�R[R\R]tmap_int32_floatR^R`RFR_RbtFindInitializationErrorsR R@R1R.R�RRR%(R'RHRftmsg2((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
testScalarMap�sP










	cCsVtj�}d|jd<d|jd<|j|j�d�|jd|j��dS(NiRis
r
(RRYRZR`R0tByteSizeR1(R'RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapEntryAlwaysSerializeds

	cCs�tj�}d}|jd�}||j|<t|jj��d\}}|j||�|j||�|j|tj	�|j|tj	�dS(Nuሴtutf8i(
RRYtencodeR`R�titemsR0R�R�R�(R'RHtunicode_objt	bytes_objR�tvalue((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt testStringUnicodeConversionInMaps
cCs�tj�}|jdt|j��|jd|jk�|jd|jjd�|jdt|j��|jd|j�|jd|j�|jdt|j��|jt	��|jdWdQX|jt
��|jd|jd<WdQX|jdt|j��|j�}tj�}|j|�|jdt|j��|jd|j�|jd|j�|jdt|j��t
j�dkr�|jd	tt|j���ndS(
Niii{i8���iRji�Ri(RRYR0R�RgR�t
get_or_createR$R R@R�R1R.RRR%(R'RHRfRm((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMessageMap&s0
	cCs�tj�}d|jdj_|jd=d|jdj_|jdt|j��d|jdj_|jdt|j��|j�}tj�}|j|�ddg}x|D]}|j|=q�WdS(Nii(	RRYtmap_int32_all_typesRR~R0R�R1R.(R'RHRfRmtkeysR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestNestedMessageMapItemDeleteOs


cCs�tj�}d|jd<|j�}d|jd<|j|j�|d�d|jd_|j�}d|jd_|j|j�|d�dS(Nii�i(RRYRZRoR0RgR�(R'RHR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapByteSize`s

cCs�tj�}d|jd<d|jd<d|jd<d|jd_d	|jd
_tj�}d|jd<d|jd
<d|jd
_d|jd
_|jd
}|j|�|jd|jd�|jd|jd�|jd|jd�|jd|jd
�|jd|jdj�|jd	|jd
j�|j	|jd
j
d��tj�dkr�|jd|j�ni}x8|jD]-}|j	||k�|j|j||<q�W|jidd6d	d
6|�|jd=|j	d|jk�|jd
=|j	d
|jk�tj�dkr\|j
t��|jd=WdQXn |j
t��|jd=WdQXdS(Ni"iiNi8i!iiioi
i�i7iciXiitdRR(RRYRZR[RgR�R~R�R0R�R�RRR R@tKeyError(R'RHRmt
old_map_valuetas_dictR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
testMergeFromlsH








cCs6tj�}|jtd��|jd�WdQXdS(NsWParameter to MergeFrom\(\) must be instance of same class: expected .*TestMap got int\.i(RRYtassertRaisesRegexpR@R�(R'RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMergeFromBadType�s

cCs6tj�}|jtd��|jd�WdQXdS(Ns[Parameter to [A-Za-z]*From\(\) must be instance of same class: expected .*TestMap got int\.i(RRYR�R@R�(R'RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestCopyFromBadType�s

cCs�tj�}td�|jtd�<td	�|jtd�<td�|jtd�<td�|jtd
�<|j�}tj�}|j|�|j	d|jd�|j	d|jd�|j	d|jd�|j	d|jd�dS(Ni8���i����ii"i!i�i{ll����ll����llll����ll����ll(
RRYR�RZR[R\R]R1R.R0(R'RHRfRm((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestIntegerMapWithLongs�s
cCs�tj�}d|jjd<|j�}tj�}|j|�|j||�d|jjd<|j�}|j|�|j||�|jjj�|j�}|j|�|j||�dS(Ni�i{i�ix(RtTestMapSubmessagettest_mapRZR1R.R0tclear(R'RHRfRm((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapAssignmentCausesPresence�s


cCstj�}d|jjd_|j�}tj�}|j|�|j||�d|jjd_|j�}|j|�|j||�|jjdj|jjd�|j�}|j|�|j||�|jjj	�|j�}|j|�|j||�dS(Nii{iix(
RR�R�RgR�R1R.R0R�R�(R'RHRfRm((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt-testMapAssignmentCausesPresenceForSubmessages�s&



cCs�tj�}t|j�}t|j�}d|jd<d|jd_|jt��x|D]}q^WWdQX|jt��x|D]}q�WWdQXdS(NRjR�i(RRYtiterR`RgR�R tRuntimeError(R'RHtstring_string_itertint32_foreign_iterR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestModifyMapWhileIterating�s



cCs�tj�}|jd}|j||jd�|j|tj�d|_|j�}tj�}|j	|�|j
d|jdj�|jt��tj�|jd<WdQXdS(NioiiX(
RRYRgR�R�RROR�R1R.R0R R�(R'RHRhRfRm((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestSubmessageMaps
	
cCs�tj�}x*|jj�D]\}}|jt�qWd|jd<d|jd<d|jd<|jdt|j��idd6dd6dd6}|j|jj�|�dS(Niiiii(	RRYRZRsR_RVR0R�RW(R'RHR�RVt
matching_dict((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapIterations


c
s�tjdkr�tj�}d|jd<d|jd<d|jd<d|jd<|j}�jdt|��tj�}|j|j���fd�}||j	�|j
��||j�|j��||j
�|j���jd|jd���jd|jd	���jd|jd���jd
|jd���jdt|��|j�\}}�jd||��jdt|��|j��jd
t|���jt��|j�WdQX�jd
|jd���jdt|��|j|j��jdt|���jt��|j|j|j�WdQX�jt��|jd
�WdQX�jt��|jdd
�WdQXndS(Niiiiii
ics8�jt|�|d��jt|�|d�dS(Nii(R0tnextR�(tseqtiterator(R'(sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
CheckItems9si�iiRvi(i(RvRwRRYRZR0R�R.R1Rst	iteritemsR{titerkeysR�t
itervaluesRfRUR	tpopitemR�R Rt
setdefaulttupdateR@(R'RHt	map_int32RmR�R�Rv((R'sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPython2Map-sJ



	
cCstj�}d|jd<d|jd<d|jd<d|jd<d|jd<|jj�}|jj�}|j||�dS(NRt
local_init_opttrainable_variablest	variablestinit_opt	summaries(RRYR`RsR0(R'RHtitems1titems2((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapItems]s




cCs�d}tj�}d|jd<d|jd<d|jd<d|jd	<d
|jd<d
|jd<d
|jd<d|jd<d|jd<|j||jdt��dS(Ns�r
init_opdr

item1er

item2fr

item3gr
item4QQr

local_init_opar
	summarieser
trainable_variablesbr
	variablescR�R�R�R�R�R�R~R�teR�titem1tftitem2tgtitem3tQQtitem4RL(RRYR`R0R1RF(R'R4RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt!testMapDeterministicSerializationls	








cCsttj�}d|jd<d|jd<d|jd<|jj�}~idd6dd6dd6}|j||�dS(Niiiii(RRYRZRsRW(R'RHtitR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapIterationClearMessage�s


cCs�tjdidd6dd6�}|jd|jd�|jd|jd�tjditjdd�d6�}|jd|jdj�dS(	NRZiiiiRgR�i(RRYR0RZRRORgR�(R'RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapConstruction�s 	cCs�tj�}|j}d|d<d|d<d|d<|jd�|jd|j��idd6dd6dd6}|j|j�|�dS(NiiiiiRZR(RRYRZR�R0R1RWRs(R'RHt	int32_mapR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapValidAfterFieldCleared�s	



cCsbtj�}|j}d|d_|jd�|jd|j��|jd|j�k�dS(NiiRgR(	RRYRgR�R�R0R1R_R{(R'RHtint32_foreign_message((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt$testMessageMapValidAfterFieldCleared�s	

cCs�tj�}t|j�}|jd�|jt��x|D]}q?WWdQXt|j�}|jd�|jt��x|D]}q�WWdQXdS(NRZRg(RRYR�RZR�R R�Rg(R'RHR�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt"testMapIterInvalidatedByClearField�s




cCs�tj�}|jdt|j��d|jd<|jdt|j��|jt��|jd=WdQX|jd=|jdt|j��|jt��|jd=WdQXdS(NiiiiiXi (RRYR0R�RZR RRz(R'RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
testMapDelete�s

cCshtj�}|j|jtj�|j|jtj�|j|jtj�|j|jtj�dS(N(RRYR�RZR�tMappingtMutableMappingRg(R'RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapsAreMapping�scCs\tj�}d|jd<|j|j|j�|j|j|j�|j|jd�dS(Ni8���i����i(RRYRZR0RgtassertNotEqual(R'RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestMapsCompare�s

cCsVtj�}d|jd<d|jd<d|jd_|jdt|j���dS(NRjR�i@i#itfooi(	RRYR`RZtmap_string_foreign_messageR�R0R�Rl(R'RH((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt(testMapFindInitializationErrorsSmokeTest�s


("RNRORWRRXReRiRnRpRwRyR|R}R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyRR(s@	
	9		0		=			)			<									0							
				tValidTypeNamesTestcBseZd�Zd�ZRS(cs�tt|��jd�d�d|d|f}|jt�fd�|D��d�|f��jd�}|d}dj|d �}t|d	|g�dS(
Nt'isRepeated%sContainersRepeated%sFieldContainerc3s|]}�j|�VqdS(N(tendswith(R�RV(ttp_name(sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pys	<genexpr>ss%r does end with any of %rt.i����tfromlist(R%ttypetsplitR_tanytjoint
__import__(R'RHt	base_nametvalid_namestpartst
class_nametmodule_name((R�sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytassertImportFromName�s

cCs6tj�}|j|jd�|j|jd�dS(NtScalart	Composite(RR"R�R�R(R'R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestTypeNamesCanBeImported
s(RNROR�R�(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR��s	
tPackedFieldTestcBs#eZd�Zd�Zd�ZRS(cCs�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|j	jd�|j
jd�|jjd�|jjd�|j
jt�|jjd�dS(Nig�?(R�R�trepeated_int64trepeated_uint32trepeated_uint64trepeated_sint32trepeated_sint64trepeated_fixed32trepeated_fixed64trepeated_sfixed32trepeated_sfixed64RbRct
repeated_boolRFR�(R'R((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
setMessagescCs9tj�}|j|�d}|j||j��dS(NsH
"*2:BJRZ�?b�?jr(RR9R�R0R1(R'RR4((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestPackedFields"s
cCs9tj�}|j|�d}|j||j��dS(Ns: (0=AMQ]�?a�?hp(RtTestUnpackedTypesR�R0R1(R'RR4((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestUnpackedFields5s
(RNROR�R�R�(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR�s		Riis;explicit tests of the C++ implementation for PY27 and abovetOversizeProtosTestcBs2eZed��Zd�Zd�Zd�ZRS(cCscd}tj�}tj�}tj||�|j|�tj|�j	|j
d��|_dS(Ns�
      name: "f/f.msg2"
      package: "f"
      message_type {
        name: "msg1"
        field {
          name: "payload"
          number: 1
          label: LABEL_OPTIONAL
          type: TYPE_STRING
        }
      }
      message_type {
        name: "msg2"
        field {
          name: "field"
          number: 1
          label: LABEL_OPTIONAL
          type: TYPE_MESSAGE
          type_name: "msg1"
        }
      }
    sf.msg2(R	tDescriptorPoolRtFileDescriptorProtoRtParsetAddR
tMessageFactorytGetPrototypetFindMessageTypeByNamet	proto_cls(tclst	file_desctpooltdesc((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt
setUpClassNs
cCs8|j�|_dd|jj_|jj�|_dS(NR�ii@iiii(R�tptfieldR�R1tp_serialized(R'((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pytsetUpqscCsmddlm}|t�|j�}y|j|j�Wn,tjk
rh}|jt	|�d�nXdS(Ni����(tSetAllowOversizeProtossError parsing message(
tgoogle.protobuf.pyext._messageR�RVR�R.R�RRCR0R%(R'R�tqR�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestAssertOversizeProtovs
cCsYddlm}|t�|j�}|j|j�|j|jjj	|jj	�dS(Ni����(R�(
R�R�RFR�R.R�R0R�R�R�(R'R�R�((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyttestSucceedOversizeProtos

(RNROtclassmethodR�R�R�R�(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyR�Is#			t__main__(4R�t
__author__R�R2RmR�RYR�RvRDt	unittest2tunittesttImportErrorR�R�tgoogle.protobufRRRRRR	R
Rtgoogle.protobuf.internalRR
RRRRRtPY3tintR�RRRRtBaseTestCasetNamedParametersRRRRR�R�tskipIfRRwR�RNtmain(((sI/usr/lib/python2.7/site-packages/google/protobuf/internal/message_test.pyt<module>)st


								��������9	:PK�\x��G��'protobuf/internal/proto_builder_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Tests for google.protobuf.proto_builder."""

try:
    from collections import OrderedDict
except ImportError:
    from ordereddict import OrderedDict  #PY26
try:
  import unittest2 as unittest
except ImportError:
  import unittest

from google.protobuf import descriptor_pb2
from google.protobuf import descriptor_pool
from google.protobuf import proto_builder
from google.protobuf import text_format


class ProtoBuilderTest(unittest.TestCase):

  def setUp(self):
    self.ordered_fields = OrderedDict([
        ('foo', descriptor_pb2.FieldDescriptorProto.TYPE_INT64),
        ('bar', descriptor_pb2.FieldDescriptorProto.TYPE_STRING),
        ])
    self._fields = dict(self.ordered_fields)

  def testMakeSimpleProtoClass(self):
    """Test that we can create a proto class."""
    proto_cls = proto_builder.MakeSimpleProtoClass(
        self._fields,
        full_name='net.proto2.python.public.proto_builder_test.Test')
    proto = proto_cls()
    proto.foo = 12345
    proto.bar = 'asdf'
    self.assertMultiLineEqual(
        'bar: "asdf"\nfoo: 12345\n', text_format.MessageToString(proto))

  def testOrderedFields(self):
    """Test that the field order is maintained when given an OrderedDict."""
    proto_cls = proto_builder.MakeSimpleProtoClass(
        self.ordered_fields,
        full_name='net.proto2.python.public.proto_builder_test.OrderedTest')
    proto = proto_cls()
    proto.foo = 12345
    proto.bar = 'asdf'
    self.assertMultiLineEqual(
        'foo: 12345\nbar: "asdf"\n', text_format.MessageToString(proto))

  def testMakeSameProtoClassTwice(self):
    """Test that the DescriptorPool is used."""
    pool = descriptor_pool.DescriptorPool()
    proto_cls1 = proto_builder.MakeSimpleProtoClass(
        self._fields,
        full_name='net.proto2.python.public.proto_builder_test.Test',
        pool=pool)
    proto_cls2 = proto_builder.MakeSimpleProtoClass(
        self._fields,
        full_name='net.proto2.python.public.proto_builder_test.Test',
        pool=pool)
    self.assertIs(proto_cls1.DESCRIPTOR, proto_cls2.DESCRIPTOR)


if __name__ == '__main__':
  unittest.main()
PK�\��F�e�e+protobuf/internal/well_known_types_test.pycnu�[����
���hc@s�dZdZddlZddlmZyddlZWnek
rWddlZnXddlmZddlm	Z	ddlm
Z
ddlmZdd	lmZdd
lm
Z
ddlmZddlmZdd
lmZddlmZddlmZdejfd��YZdefd��YZdejfd��YZdejfd��YZdejfd��YZedkr�ej�ndS(s3Test for google.protobuf.internal.well_known_types.sjieluo@google.com (Jie Luo)i����N(tdatetime(tany_pb2(tduration_pb2(tfield_mask_pb2(t
struct_pb2(t
timestamp_pb2(tunittest_pb2(tany_test_pb2(t	test_util(twell_known_types(t
descriptor(ttext_formattTimeUtilTestBasecBseZd�Zd�ZRS(cCsC|j||j��tj�}|j|�|j||�dS(N(tassertEqualtToJsonStringRt	TimestamptFromJsonString(tselftmessagettexttparsed_message((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pytCheckTimestampConversion;s
cCsC|j||j��tj�}|j|�|j||�dS(N(R
RRtDurationR(RRRR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pytCheckDurationConversionAs
(t__name__t
__module__RR(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyR9s	tTimeUtilTestcBsPeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(cCs]tj�}d|_d|_|j|d�d|_|j|d�d|_|j|d�d|_|j|d�d	|_d|_|j|d
�d|_d|_|j|d
�d|_|j|d�|jd�|jd|j�|jd|j�|jd�|jd|j�|jd|j�|j�|jd|j�dS(Nis1970-01-01T00:00:00Zi���s1970-01-01T00:00:00.010Zi's1970-01-01T00:00:00.000010Zi
s1970-01-01T00:00:00.000000010Zl����w#o9s0001-01-01T00:00:00ZlA��i�ɚ;s9999-12-31T23:59:59.999999999Zi����s1969-12-31T23:59:59.999999999Zs1970-01-01T00:00:00.1Zi�s1970-01-01T00:00:00-08:00iii�pi�p(	RRtsecondstnanosRRR
tGetCurrentTimetassertNotEqual(RR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestTimestampSerializeAndParseJs4										


cCstj�}d|_d|_|j|d�d|_|j|d�d|_|j|d�d|_|j|d�d	|_d
|_|j|d�d|_d
|_|j|d�|jd�|jd|j�|jd�|jd|j�dS(Nit0si���s0.010si's	0.000010si
s0.000000010sl�s%i�ɚ;s315576000000.999999999sl�����s%i6e�s-315576000000.999999999ss0.1si�s
0.0000001sid(RRRRRRR
(RR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestDurationSerializeAndParseps(									

cCstj�}|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j	��|jd�|jd|j��|jd|j	��|j
d�|jd	|j��|jd|j��|j
d�|jd
|j��|jd|j��|jd�|jd|j��|jd�|jd
|j��dS(Nis1970-01-01T00:00:00.000000001Zi����s1969-12-31T23:59:59.999999999Zs1970-01-01T00:00:00.000001Zs1969-12-31T23:59:59.999999Zs1970-01-01T00:00:00.001Zs1969-12-31T23:59:59.999Zs1970-01-01T00:00:01Zs1969-12-31T23:59:59Zi�i1���i����(RRtFromNanosecondsR
Rt
ToNanosecondstFromMicrosecondstToMicrosecondstFromMillisecondstToMillisecondstFromSecondst	ToSeconds(RR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestTimestampIntegerConversion�sJ
	

	

	

	

	

	

	

	


cCstj�}|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j	��|jd�|jd|j��|jd|j	��|j
d�|jd	|j��|jd|j��|j
d�|jd
|j��|jd|j��|jd�|jd|j��|jd�|jd|j��dS(
Nis0.000000001si����s
-0.000000001ss	0.000001ss
-0.000001ss0.001ss-0.001st1ss-1si�i1���(RRR"R
RR#R$R%R&R'R(R)(RR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestDurationIntegerConversion�sH
	

	

	

	

	

	


	


c	Cs�tj�}tddd�}|j|�|j||j��|jd�|jtddddddd�|j��dS(Ni�ii�iiX>(RRRtFromDatetimeR
t
ToDatetimeR&(RRtdt((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestDatetimeConverison�s

!cCstj�}|jd�|j�}|jd|j�|jd|j�|jd�|j�}|jd|j�|jd|j�|jd|j�|jd�|j�}|jd|j�|jd|j�|jd|j�tj�}|j	|�|j||�dS(Ni��5wii?Bilʈi����i~QiQ(
RRR"tToTimedeltaR
RtmicrosecondstdaysR$t
FromTimedelta(RRttdtconverted_message((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestTimedeltaConversion�s$



cCs�tj�}|jtjd|jd�|jtjd|jd�|jtd|jd�|jtjd|jd�|jtjd	|jd
�|jtd|jd�d
|_|jtd|j	�dS(Ns9Failed to parse timestamp: missing valid timezone offset.tsKFailed to parse timestamp: invalid trailing data 1970-01-01T00:00:01Ztrail.s1970-01-01T00:00:01ZtrailsJtime data '10000-01-01T00:00:00' does not match format '%Y-%m-%dT%H:%M:%S's10000-01-01T00:00:00.00Zs2nanos 0123456789012 more than 9 fractional digits.s"1970-01-01T00:00:00.0123456789012Zs$Invalid timezone offset value: \+08.s1972-01-01T01:00:00.01+08syear (0 )?is out of ranges0000-01-01T00:00:00Zl�A��sdate value out of range(
RRtassertRaisesRegexpR	t
ParseErrorRt
ValueErrorRt
OverflowErrorR(RR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestInvalidTimestampsF
	cCs�tj�}|jtjd|jd�|jtjd|jd�d}|jtjd|j|�d}|jtjd|j|�d	|_d
|_|jtjd|j	�d
|_d|_|jtjd
|j	�dS(Ns%Duration must end with letter "s": 1.t1s Couldn't parse duration: 1...2s.s1...2ss-315576000001.000000000ss`Duration is not valid\: Seconds -315576000001 must be in range \[-315576000000\, 315576000000\].s315576000001.000000000ss_Duration is not valid\: Seconds 315576000001 must be in range \[-315576000000\, 315576000000\].l�����s%ii�ɚ;isUDuration is not valid\: Nanos 1000000000 must be in range \[-999999999\, 999999999\].iʚ;(
RRR9R	R:RtErrorRRR(RRR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestInvalidDuration7s>



		
		(
RRRR!R*R,R0R7R=R@(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyRHs	&		3	1	
		't
FieldMaskTestcBsbeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZRS(
cCs�tj�}|jd|j��|jjd�|jd|j��|jjd�|jd|j��|jd�|jd|j��|jd�|jdg|j�|jd�|jddg|j�|j�|jjd�|jd|j��|jjd�|jd|j��|jd�|jd|j��|jd�|jdg|j�|jd�|jddg|j�dS(	NR8tfootbarsfoo,bartfoo_bartfooBartbar_quzs
fooBar,barQuz(Rt	FieldMaskR
RtpathstappendRtClear(Rtmask((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestStringFormat_s.






cCs�tj�}tjj}|j|�|jdt|j��|j	|j
|��x*|jD]}|j	|j|jk�q^WdS(NiK(
RRGRtTestAllTypest
DESCRIPTORtAllFieldsFromDescriptorR
tlenRHt
assertTruetIsValidForDescriptortfieldstname(RRKtmsg_descriptortfield((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestDescriptorToFieldMask|s
cCsitjj}tj�}|j|j|��|j|�|j|j|��|jj	d�|j|j|��|jj	d�|j
|j|��tj�}|jj	d�|j
|j|��tj�}|jj	d�|j
|j|��tj�}|jj	d�|j
|j|��tj�}|jj	d�|j
|j|��dS(Nsoptional_nested_message.bbsrepeated_nested_message.bbtxxxsxxx.zzzsoptional_nested_message.xxx.zzzsoptional_nested_message.xxx(RRMRNRRGRQRRRORHRItassertFalse(RRURK((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestIsValidForDescriptor�s*
cCsltj�}tj�}|jd�|j|�|jd|j��|jd�|j|�|jd|j��|jd�|j|�|jd|j��|jd�|j|�|jd|j��|jd	�|j|�|jd|j��|jd
�|j|�|jd|j��|jd�|j|�|jd
|j��dS(Nsbaz.quz,bar,foosbar,baz.quz,foosfoo,bar,foosbar,foosfoo.b1,bar.b1,foo.b2,barsbar,foo.b1,foo.b2s*foo.bar.baz1,foo.bar.baz2.quz,foo.bar.baz2sfoo.bar.baz1,foo.bar.baz2s*foo.bar.baz1,foo.bar.baz2,foo.bar.baz2.quzs2foo.bar.baz1,foo.bar.baz2,foo.bar.baz2.quz,foo.barsfoo.bars.foo.bar.baz1,foo.bar.baz2,foo.bar.baz2.quz,fooRB(RRGRtCanonicalFormFromMaskR
R(RRKtout_mask((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestCanonicalFrom�s:






	

	


cCstj�}tj�}tj�}|jd�|jd�|j||�|jd|j��|jd�|jd�|j||�|jd|j��|jd�|jd�|j||�|jd	|j��tj�}|jt	��|j||�WdQXdS(
Nsfoo,bazsbar,quzsbar,baz,foo,quzs
foo,baz.bbs
baz.bb,quzsbaz.bb,foo,quzsfoo.bar.baz,quzsfoo.bar,barsbar,foo.bar,quz(
RRGRtUnionR
RRRMtassertRaisesR;(Rtmask1tmask2R\tsrc((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyt	testUnion�s$





cCs(tj�}tj�}tj�}|jd�|jd�|j||�|jd|j��|jd�|jd�|j||�|jd|j��|jd�|jd�|j||�|jd	|j��|jd�|jd�|j||�|jd	|j��dS(
Nsfoo,bazsbar,quzR8s
foo,baz.bbs
baz.bb,quzsbaz.bbsfoo.bar.baz,quzsfoo.bar,barsfoo.bar.baz(RRGRt	IntersectR
R(RR`RaR\((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyt
testIntersect�s&







cCs]tj�}tj|�xO|jjD]A}|jr;q&n|j}tj�}tj	�}|j
j|�|j||�tj�}|j
tjjkrt||�}t||�}|jtjjkr�x1|D]}	|j�j|	�q�WqW|j|�nP|jtjjkr>t||�jt||��nt||t||��|j||�q&Wtj�}
tj�}d|
jj_d|
jjj_tj	�}|jd�|j|
|�|jd|jjj�|jd|jjjj�|jd�|j|
|�|jd|jjj�|jd|jjjj�|j�|jd�|j|
|�|jd|jjj�|jd|jjjj�|j�|jd�|j|
|�|jd|jjj�|jd|jjjj�|j�d|jj_|jd�|j|
|�|jd|jjj�|jd|jjj�|jd�|j|
|t t!�|jd|jjj�|jd|jjj�d|j_|j"|j#d��|jd�|j|
|�|j"|j#d��|j�d|j_|jd�|j|
|t t!�|j$|j#d��|
jj%jd�|jj%jd�|jd	�|j|
|�|jd
t&|jj%��|jd|jj%d�|jd|jj%d�|jd	�|j|
|t!t �|jdt&|jj%��|jd|jj%d�dS(Ni�i.s
child.payloadischild.child.payloadtchildi�tpayloadspayload.repeatedInt32ii('RRMRtSetAllFieldsRNRStcontaining_oneofRTRRGRHRItMergeMessagetlabelR
tFieldDescriptortLABEL_REPEATEDtgetattrtcpp_typetCPPTYPE_MESSAGEtaddtCopyFromtextendtsetattrR
tNestedTestAllTypesRfRgtoptional_int32RRJtoptional_int64tTruetFalseRQtHasFieldRYtrepeated_int32RP(RRbRVt
field_nametdstRKtmsgtrepeated_srctrepeated_msgtitemt
nested_srct
nested_dst((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestMergeMessage�s�
		
"













cCs�tj�}tj�}tj�}tj|�|jd�|jt��}|j	||�WdQX|j
dt|j��dS(NsoptionalInt32.fields�Error: Field optional_int32 in message protobuf_unittest.TestAllTypes is not a singular message field and cannot have sub-fields.(
RRMRRGRRhRR_R;RjR
tstrt	exception(RRbR}RKte((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestMergeErrorsYs

	cCs�|jdtjd��|jdtjd��|jdtjd��|jtjdtjd�|jtjd	tjd
�|jtjdtjd�|jtjd
tjd�dS(NRERDtFooBart_foo_bartfoo3Bartfoo3_barsYFail to print FieldMask to Json string: Path name Foo must not contain uppercase letters.tFoossFail to print FieldMask to Json string: The character after a "_" must be a lowercase letter in path name foo__bar.tfoo__barssFail to print FieldMask to Json string: The character after a "_" must be a lowercase letter in path name foo_3bar.tfoo_3barsKFail to print FieldMask to Json string: Trailing "_" in path name foo_bar_.tfoo_bar_(R
R	t_SnakeCaseToCamelCaseR9R?(R((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestSnakeCaseToCamelCasefs4			cCsk|jdtjd��|jdtjd��|jdtjd��|jtjdtjd�dS(NRDRER�R�R�R�sAFail to parse FieldMask: Path name foo_bar must not contain "_"s.(R
R	t_CamelCaseToSnakeCaseR9R:(R((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestCamelCaseToSnakeCase�s			(RRRLRWRZR]RcReR�R�R�R�(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyRA]s					$			c	
	&t
StructTestcBseZd�Zd�ZRS(cCs�tj�}|j|tj�|jdt|��|j}d|d<d|d<t|d<d|j	d�d	<|j
d
�}|j|tj�|jddtt
dg�d
|j�d<iid	6|d<dt
g|d<|jdt|��|jt|tj��|jd|d�|jd|d�|jt|d�|jd|dd	�|�}d
|d<|jddtt
d|gt|d
j���|jit|dd	j��|jdt
gt|dj���|j�}tj�}|j|�|j||�xN|j�D]@\}}|j||�|j||�|j|||�q/W|jdt|j���|jdt|j���xL|j�D]>}|j||�|j||�|j||||�q�Wtt|j���tt|j���f}	|j|	tt|j����|jt|tj��|jd|d�|jd|d�|jt|d�|jd|dd	�|jddtt
d|gt|d
j���|d
}|jd|d�|jd|d�|jt|d�|jt
|d�|jd|d�|j||d�d|d<|jd|d�|j�jddtt
dg�|jddtt
dgt|dj���|jidd6ddgigg�|jdt|j��|jd|dd�|jd|dd�|jd|dd�|jit|d
j��|jgt|dj���idd6|d<ddg|d<|jd|dd�|jddgt|dj���t |�}
tj�}t!j"|
|�|j||�d |j	d�d<|jd |dd�|j
d!�|d!}|jgt|j���tj#�}
|
j�|
d}|jgt|j���|j	d"�|d"}|jit|j��|
j�|
d}|jit|j��|jd
t|��|d=|d=|jdt|��|jdt|d
��|d
d=|jdt|d
��|jdtt
d|gt|d
j���dS(#Niitkey1tabctkey2tkey3g&@tkey4tsubkeytkey5itseveni	tsubkey2tkey6itkey7iiiiittwoit
nested_structtnested_listicii
tsettreplaceit
empty_listtempty_struct($RtStructtassertIsInstancetcollectionstMappingR
RPt	__class__Rxtget_or_create_structtget_or_create_listtSequenceRsRytNonet
add_structRQt
isinstanceR	tassertIstlisttitemstdictRStSerializeToStringtParseFromStringtassertIntkeystvaluestnexttitertadd_listR�RtMerget	ListValue(Rtstructtstruct_clasststruct_listtinner_structt
serializedtstruct2tkeytvalueR�ttext_serializedtstruct3R�tlist2R�((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyt
testStruct�s�	


	
!&
0"

"& &







c	Cs�tj�}|j}idd6dd6td6idd6d6d	d
ttdidd6gd
6dtggd6id6gd6}|j|�|jd|d�|jd|d�|jt|d�|jd|dd�|�}d|d<|jd	d
ttd|gt	|d
j
���|jdt|ddj��|jd|ddd�|jt|ddd�|d}|jgt	|j
���|d}|jit
|j��iidd6d6tdggd
6}|j|�|jdt|dj��|jd|dd�|jdt|d
j��|jt|d
dd�|jd|d
dd�dS(NiR�R�R�R�g&@R�R�iR�i	R�R�R�R�R�R�iiiiiR�(RR�R�RxRyR�tupdateR
R�R�R�RPR�R�RS(RR�R�t
dictionaryR�R�R�t	duplicate((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyt
testMergeFromsH	 

	
!


(RRR�R�(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyR��s	wtAnyTestcBs,eZd�Zd�Zd�Zd�ZRS(cCs?tj�}|j}tj�}|j}|jjd�|jj|�|j	|jj
d|j�|j	|jj|j��|j
|jj|��|j|jj|��tj�}|j
|jj|��|j	||�|j|jj|��y|j|�Wntk
r'nXtd|j��dS(Nuüꜟstype.googleapis.com/%ss%s should not have Pack method.(RtTestAnyRNRRMtrepeated_stringRIR�tPackR
ttype_urlt	full_nameR�RQtIsRYtUnpacktAttributeError(RR~RUt	all_typestall_descriptortunpacked_message((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestAnyMessageBs,		

cCsHtj�}d|_tj�}|j|�|j|j�d�dS(Ni90s google.protobuf.internal.TestAny(RR�t	int_valueRtAnyR�R
tTypeName(Rt
submessageR~((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestMessageNameas
	
cCs�tj�}d|_tj�}|j|d�|j|jd|jj	�|j|d�|j|jd|jj	�|j|d�|j|jd|jj	�tj�}|j
|j|��|j||�dS(Ni90stype.myservice.comstype.myservice.com/%sstype.myservice.com/R8s/%s(RR�R�RR�R�R
R�RNR�RQR�(RR�R~R�((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestPackWithCustomTypeUrlis	cCs�tj�}x+td�D]}|d|jt|�<qWtj�}|j|dt�|j	dt�}d}|j
||�dS(Ni
it
deterministics~
4type.googleapis.com/google.protobuf.internal.TestAnyF
0
1
2
3
4
5

6
7
8
9(RR�tranget	map_valueR�RR�R�RxR�R
(RR�tiR~R�tgolden((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestPackDeterministic~s(RRR�R�R�R�(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyR�@s			t__main__(t__doc__t
__author__R�Rt	unittest2tunittesttImportErrortgoogle.protobufRRRRRRtgoogle.protobuf.internalRRR	R
RtTestCaseRRRAR�R�Rtmain(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyt<module> s6
��>�MPK�\����,,-protobuf/internal/missing_enum_values_pb2.pyonu�[����
���hc0@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedejdddddddddd�ejdddddddddd�gd dddd!d"d#d$�	Zeje�ejdddd%dddedejdd&dddd'dddd�gd dddd!d(d#d)�	Zeje�ejdd*dd+ddded dd,ejdd-dd.dddddd/d0d1d2dd3ed4dd5dd6dd dd7ed8dddde�ejdd9dd:dddd'dd/d0d1d2dd3ed4gd5dd6dd dd7ed8dddde�ejdd;dd<dd'dddd/d0d1d2dd3ed4gd5dd6dd dd7ed8ddejej�ed=��de�gd>gd?gd@egdddAedddBgdCgd!dDd#d$�ZejddEddFddded dd,ejdd-ddGdddddd/d0d1d2dd3ed4d'd5dd6dd dd7ed8dddde�ejdd9ddHdddd'dd/d0d1d2dd3ed4gd5dd6dd dd7ed8dddde�ejdd;ddIdd'dddd/d0d1d2dd3ed4gd5dd6dd dd7ed8ddejej�ed=��de�gd>gd?gd@egdddAedddBgdCgd!dJd#d)�ZejddKddLddded dd,ejddMddNddddddOd0dOd2d'd3ed4edP�jdQ�d5dd6dd dd7ed8dddde�gd>gd?gd@gdddAedddBgdCgd!dRd#dS�Zeej d-_!eej d9_!eej d;_!ee_"eej d-_!eej d9_!eej d;_!ee_"eej#d*<eej#dE<eej#dK<ej$e�e	j%d*ej&fe'dTedUdV��Z(ej)e(�e	j%dEej&fe'dTedUdV��Z*ej)e*�e	j%dKej&fe'dTedUdV��Z+ej)e+�e,ej d;_-ejej�ed=��ej d;_.e,ej d;_-ejej�ed=��ej d;_.dS(Wi����NiicCs|S(N((tx((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/missing_enum_values_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/missing_enum_values_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames2google/protobuf/internal/missing_enum_values.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbs
2google/protobuf/internal/missing_enum_values.protogoogle.protobuf.python.internal"�
TestEnumValuesX
optional_nested_enum (2:.google.protobuf.python.internal.TestEnumValues.NestedEnumX
repeated_nested_enum (2:.google.protobuf.python.internal.TestEnumValues.NestedEnumZ
packed_nested_enum (2:.google.protobuf.python.internal.TestEnumValues.NestedEnumB"

NestedEnum
ZERO
ONE"�
TestMissingEnumValues_
optional_nested_enum (2A.google.protobuf.python.internal.TestMissingEnumValues.NestedEnum_
repeated_nested_enum (2A.google.protobuf.python.internal.TestMissingEnumValues.NestedEnuma
packed_nested_enum (2A.google.protobuf.python.internal.TestMissingEnumValues.NestedEnumB"

NestedEnum
TWO"

JustString
dummy (	t
NestedEnumt	full_names9google.protobuf.python.internal.TestEnumValues.NestedEnumtfilenametfiletvaluestZEROtindextnumbertoptionsttypetONEitcontaining_typetserialized_startiztserialized_endi�s@google.protobuf.python.internal.TestMissingEnumValues.NestedEnumtTWOii�i�tTestEnumValuess.google.protobuf.python.internal.TestEnumValuestfieldstoptional_nested_enumsCgoogle.protobuf.python.internal.TestEnumValues.optional_nested_enumitcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetrepeated_nested_enumsCgoogle.protobuf.python.internal.TestEnumValues.repeated_nested_enumtpacked_nested_enumsAgoogle.protobuf.python.internal.TestEnumValues.packed_nested_enumst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsiXtTestMissingEnumValuess5google.protobuf.python.internal.TestMissingEnumValuessJgoogle.protobuf.python.internal.TestMissingEnumValues.optional_nested_enumsJgoogle.protobuf.python.internal.TestMissingEnumValues.repeated_nested_enumsHgoogle.protobuf.python.internal.TestMissingEnumValues.packed_nested_enumi�t
JustStrings*google.protobuf.python.internal.JustStringtdummys0google.protobuf.python.internal.JustString.dummyi	Rsutf-8i�it
DESCRIPTORt
__module__s0google.protobuf.internal.missing_enum_values_pb2(/tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR4tEnumDescriptortNonetEnumValueDescriptort_TESTENUMVALUES_NESTEDENUMtRegisterEnumDescriptort!_TESTMISSINGENUMVALUES_NESTEDENUMt
DescriptortFieldDescriptortFalset
_ParseOptionstFieldOptionst_TESTENUMVALUESt_TESTMISSINGENUMVALUEStdecodet_JUSTSTRINGtfields_by_nameR&Rtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR1R2tTruethas_optionst_options(((sT/usr/lib/python2.7/site-packages/google/protobuf/internal/missing_enum_values_pb2.pyt<module>sR%					
			
				*						*							






(PK�\O��C�7�7"protobuf/internal/type_checkers.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Provides type checking routines.

This module defines type checking utilities in the forms of dictionaries:

VALUE_CHECKERS: A dictionary of field types and a value validation object.
TYPE_TO_BYTE_SIZE_FN: A dictionary with field types and a size computing
  function.
TYPE_TO_SERIALIZE_METHOD: A dictionary with field types and serialization
  function.
FIELD_TYPE_TO_WIRE_TYPE: A dictionary with field typed and their
  coresponding wire types.
TYPE_TO_DESERIALIZE_METHOD: A dictionary with field types and deserialization
  function.
"""

__author__ = 'robinson@google.com (Will Robinson)'

import numbers
import six

if six.PY3:
  long = int

from google.protobuf.internal import api_implementation
from google.protobuf.internal import decoder
from google.protobuf.internal import encoder
from google.protobuf.internal import wire_format
from google.protobuf import descriptor

_FieldDescriptor = descriptor.FieldDescriptor

def SupportsOpenEnums(field_descriptor):
  return field_descriptor.containing_type.syntax == "proto3"

def GetTypeChecker(field):
  """Returns a type checker for a message field of the specified types.

  Args:
    field: FieldDescriptor object for this field.

  Returns:
    An instance of TypeChecker which can be used to verify the types
    of values assigned to a field of the specified type.
  """
  if (field.cpp_type == _FieldDescriptor.CPPTYPE_STRING and
      field.type == _FieldDescriptor.TYPE_STRING):
    return UnicodeValueChecker()
  if field.cpp_type == _FieldDescriptor.CPPTYPE_ENUM:
    if SupportsOpenEnums(field):
      # When open enums are supported, any int32 can be assigned.
      return _VALUE_CHECKERS[_FieldDescriptor.CPPTYPE_INT32]
    else:
      return EnumValueChecker(field.enum_type)
  return _VALUE_CHECKERS[field.cpp_type]


# None of the typecheckers below make any attempt to guard against people
# subclassing builtin types and doing weird things.  We're not trying to
# protect against malicious clients here, just people accidentally shooting
# themselves in the foot in obvious ways.

class TypeChecker(object):

  """Type checker used to catch type errors as early as possible
  when the client is setting scalar fields in protocol messages.
  """

  def __init__(self, *acceptable_types):
    self._acceptable_types = acceptable_types

  def CheckValue(self, proposed_value):
    """Type check the provided value and return it.

    The returned value might have been normalized to another type.
    """
    if not isinstance(proposed_value, self._acceptable_types):
      message = ('%.1024r has type %s, but expected one of: %s' %
                 (proposed_value, type(proposed_value), self._acceptable_types))
      raise TypeError(message)
    return proposed_value


class TypeCheckerWithDefault(TypeChecker):

  def __init__(self, default_value, *acceptable_types):
    TypeChecker.__init__(self, acceptable_types)
    self._default_value = default_value

  def DefaultValue(self):
    return self._default_value


# IntValueChecker and its subclasses perform integer type-checks
# and bounds-checks.
class IntValueChecker(object):

  """Checker used for integer fields.  Performs type-check and range check."""

  def CheckValue(self, proposed_value):
    if not isinstance(proposed_value, numbers.Integral):
      message = ('%.1024r has type %s, but expected one of: %s' %
                 (proposed_value, type(proposed_value), six.integer_types))
      raise TypeError(message)
    if not self._MIN <= int(proposed_value) <= self._MAX:
      raise ValueError('Value out of range: %d' % proposed_value)
    # We force 32-bit values to int and 64-bit values to long to make
    # alternate implementations where the distinction is more significant
    # (e.g. the C++ implementation) simpler.
    proposed_value = self._TYPE(proposed_value)
    return proposed_value

  def DefaultValue(self):
    return 0


class EnumValueChecker(object):

  """Checker used for enum fields.  Performs type-check and range check."""

  def __init__(self, enum_type):
    self._enum_type = enum_type

  def CheckValue(self, proposed_value):
    if not isinstance(proposed_value, numbers.Integral):
      message = ('%.1024r has type %s, but expected one of: %s' %
                 (proposed_value, type(proposed_value), six.integer_types))
      raise TypeError(message)
    if int(proposed_value) not in self._enum_type.values_by_number:
      raise ValueError('Unknown enum value: %d' % proposed_value)
    return proposed_value

  def DefaultValue(self):
    return self._enum_type.values[0].number


class UnicodeValueChecker(object):

  """Checker used for string fields.

  Always returns a unicode value, even if the input is of type str.
  """

  def CheckValue(self, proposed_value):
    if not isinstance(proposed_value, (bytes, six.text_type)):
      message = ('%.1024r has type %s, but expected one of: %s' %
                 (proposed_value, type(proposed_value), (bytes, six.text_type)))
      raise TypeError(message)

    # If the value is of type 'bytes' make sure that it is valid UTF-8 data.
    if isinstance(proposed_value, bytes):
      try:
        proposed_value = proposed_value.decode('utf-8')
      except UnicodeDecodeError:
        raise ValueError('%.1024r has type bytes, but isn\'t valid UTF-8 '
                         'encoding. Non-UTF-8 strings must be converted to '
                         'unicode objects before being added.' %
                         (proposed_value))
    return proposed_value

  def DefaultValue(self):
    return u""


class Int32ValueChecker(IntValueChecker):
  # We're sure to use ints instead of longs here since comparison may be more
  # efficient.
  _MIN = -2147483648
  _MAX = 2147483647
  _TYPE = int


class Uint32ValueChecker(IntValueChecker):
  _MIN = 0
  _MAX = (1 << 32) - 1
  _TYPE = int


class Int64ValueChecker(IntValueChecker):
  _MIN = -(1 << 63)
  _MAX = (1 << 63) - 1
  _TYPE = long


class Uint64ValueChecker(IntValueChecker):
  _MIN = 0
  _MAX = (1 << 64) - 1
  _TYPE = long


# Type-checkers for all scalar CPPTYPEs.
_VALUE_CHECKERS = {
    _FieldDescriptor.CPPTYPE_INT32: Int32ValueChecker(),
    _FieldDescriptor.CPPTYPE_INT64: Int64ValueChecker(),
    _FieldDescriptor.CPPTYPE_UINT32: Uint32ValueChecker(),
    _FieldDescriptor.CPPTYPE_UINT64: Uint64ValueChecker(),
    _FieldDescriptor.CPPTYPE_DOUBLE: TypeCheckerWithDefault(
        0.0, numbers.Real),
    _FieldDescriptor.CPPTYPE_FLOAT: TypeCheckerWithDefault(
        0.0, numbers.Real),
    _FieldDescriptor.CPPTYPE_BOOL: TypeCheckerWithDefault(
        False, bool, numbers.Integral),
    _FieldDescriptor.CPPTYPE_STRING: TypeCheckerWithDefault(b'', bytes),
    }


# Map from field type to a function F, such that F(field_num, value)
# gives the total byte size for a value of the given type.  This
# byte size includes tag information and any other additional space
# associated with serializing "value".
TYPE_TO_BYTE_SIZE_FN = {
    _FieldDescriptor.TYPE_DOUBLE: wire_format.DoubleByteSize,
    _FieldDescriptor.TYPE_FLOAT: wire_format.FloatByteSize,
    _FieldDescriptor.TYPE_INT64: wire_format.Int64ByteSize,
    _FieldDescriptor.TYPE_UINT64: wire_format.UInt64ByteSize,
    _FieldDescriptor.TYPE_INT32: wire_format.Int32ByteSize,
    _FieldDescriptor.TYPE_FIXED64: wire_format.Fixed64ByteSize,
    _FieldDescriptor.TYPE_FIXED32: wire_format.Fixed32ByteSize,
    _FieldDescriptor.TYPE_BOOL: wire_format.BoolByteSize,
    _FieldDescriptor.TYPE_STRING: wire_format.StringByteSize,
    _FieldDescriptor.TYPE_GROUP: wire_format.GroupByteSize,
    _FieldDescriptor.TYPE_MESSAGE: wire_format.MessageByteSize,
    _FieldDescriptor.TYPE_BYTES: wire_format.BytesByteSize,
    _FieldDescriptor.TYPE_UINT32: wire_format.UInt32ByteSize,
    _FieldDescriptor.TYPE_ENUM: wire_format.EnumByteSize,
    _FieldDescriptor.TYPE_SFIXED32: wire_format.SFixed32ByteSize,
    _FieldDescriptor.TYPE_SFIXED64: wire_format.SFixed64ByteSize,
    _FieldDescriptor.TYPE_SINT32: wire_format.SInt32ByteSize,
    _FieldDescriptor.TYPE_SINT64: wire_format.SInt64ByteSize
    }


# Maps from field types to encoder constructors.
TYPE_TO_ENCODER = {
    _FieldDescriptor.TYPE_DOUBLE: encoder.DoubleEncoder,
    _FieldDescriptor.TYPE_FLOAT: encoder.FloatEncoder,
    _FieldDescriptor.TYPE_INT64: encoder.Int64Encoder,
    _FieldDescriptor.TYPE_UINT64: encoder.UInt64Encoder,
    _FieldDescriptor.TYPE_INT32: encoder.Int32Encoder,
    _FieldDescriptor.TYPE_FIXED64: encoder.Fixed64Encoder,
    _FieldDescriptor.TYPE_FIXED32: encoder.Fixed32Encoder,
    _FieldDescriptor.TYPE_BOOL: encoder.BoolEncoder,
    _FieldDescriptor.TYPE_STRING: encoder.StringEncoder,
    _FieldDescriptor.TYPE_GROUP: encoder.GroupEncoder,
    _FieldDescriptor.TYPE_MESSAGE: encoder.MessageEncoder,
    _FieldDescriptor.TYPE_BYTES: encoder.BytesEncoder,
    _FieldDescriptor.TYPE_UINT32: encoder.UInt32Encoder,
    _FieldDescriptor.TYPE_ENUM: encoder.EnumEncoder,
    _FieldDescriptor.TYPE_SFIXED32: encoder.SFixed32Encoder,
    _FieldDescriptor.TYPE_SFIXED64: encoder.SFixed64Encoder,
    _FieldDescriptor.TYPE_SINT32: encoder.SInt32Encoder,
    _FieldDescriptor.TYPE_SINT64: encoder.SInt64Encoder,
    }


# Maps from field types to sizer constructors.
TYPE_TO_SIZER = {
    _FieldDescriptor.TYPE_DOUBLE: encoder.DoubleSizer,
    _FieldDescriptor.TYPE_FLOAT: encoder.FloatSizer,
    _FieldDescriptor.TYPE_INT64: encoder.Int64Sizer,
    _FieldDescriptor.TYPE_UINT64: encoder.UInt64Sizer,
    _FieldDescriptor.TYPE_INT32: encoder.Int32Sizer,
    _FieldDescriptor.TYPE_FIXED64: encoder.Fixed64Sizer,
    _FieldDescriptor.TYPE_FIXED32: encoder.Fixed32Sizer,
    _FieldDescriptor.TYPE_BOOL: encoder.BoolSizer,
    _FieldDescriptor.TYPE_STRING: encoder.StringSizer,
    _FieldDescriptor.TYPE_GROUP: encoder.GroupSizer,
    _FieldDescriptor.TYPE_MESSAGE: encoder.MessageSizer,
    _FieldDescriptor.TYPE_BYTES: encoder.BytesSizer,
    _FieldDescriptor.TYPE_UINT32: encoder.UInt32Sizer,
    _FieldDescriptor.TYPE_ENUM: encoder.EnumSizer,
    _FieldDescriptor.TYPE_SFIXED32: encoder.SFixed32Sizer,
    _FieldDescriptor.TYPE_SFIXED64: encoder.SFixed64Sizer,
    _FieldDescriptor.TYPE_SINT32: encoder.SInt32Sizer,
    _FieldDescriptor.TYPE_SINT64: encoder.SInt64Sizer,
    }


# Maps from field type to a decoder constructor.
TYPE_TO_DECODER = {
    _FieldDescriptor.TYPE_DOUBLE: decoder.DoubleDecoder,
    _FieldDescriptor.TYPE_FLOAT: decoder.FloatDecoder,
    _FieldDescriptor.TYPE_INT64: decoder.Int64Decoder,
    _FieldDescriptor.TYPE_UINT64: decoder.UInt64Decoder,
    _FieldDescriptor.TYPE_INT32: decoder.Int32Decoder,
    _FieldDescriptor.TYPE_FIXED64: decoder.Fixed64Decoder,
    _FieldDescriptor.TYPE_FIXED32: decoder.Fixed32Decoder,
    _FieldDescriptor.TYPE_BOOL: decoder.BoolDecoder,
    _FieldDescriptor.TYPE_STRING: decoder.StringDecoder,
    _FieldDescriptor.TYPE_GROUP: decoder.GroupDecoder,
    _FieldDescriptor.TYPE_MESSAGE: decoder.MessageDecoder,
    _FieldDescriptor.TYPE_BYTES: decoder.BytesDecoder,
    _FieldDescriptor.TYPE_UINT32: decoder.UInt32Decoder,
    _FieldDescriptor.TYPE_ENUM: decoder.EnumDecoder,
    _FieldDescriptor.TYPE_SFIXED32: decoder.SFixed32Decoder,
    _FieldDescriptor.TYPE_SFIXED64: decoder.SFixed64Decoder,
    _FieldDescriptor.TYPE_SINT32: decoder.SInt32Decoder,
    _FieldDescriptor.TYPE_SINT64: decoder.SInt64Decoder,
    }

# Maps from field type to expected wiretype.
FIELD_TYPE_TO_WIRE_TYPE = {
    _FieldDescriptor.TYPE_DOUBLE: wire_format.WIRETYPE_FIXED64,
    _FieldDescriptor.TYPE_FLOAT: wire_format.WIRETYPE_FIXED32,
    _FieldDescriptor.TYPE_INT64: wire_format.WIRETYPE_VARINT,
    _FieldDescriptor.TYPE_UINT64: wire_format.WIRETYPE_VARINT,
    _FieldDescriptor.TYPE_INT32: wire_format.WIRETYPE_VARINT,
    _FieldDescriptor.TYPE_FIXED64: wire_format.WIRETYPE_FIXED64,
    _FieldDescriptor.TYPE_FIXED32: wire_format.WIRETYPE_FIXED32,
    _FieldDescriptor.TYPE_BOOL: wire_format.WIRETYPE_VARINT,
    _FieldDescriptor.TYPE_STRING:
      wire_format.WIRETYPE_LENGTH_DELIMITED,
    _FieldDescriptor.TYPE_GROUP: wire_format.WIRETYPE_START_GROUP,
    _FieldDescriptor.TYPE_MESSAGE:
      wire_format.WIRETYPE_LENGTH_DELIMITED,
    _FieldDescriptor.TYPE_BYTES:
      wire_format.WIRETYPE_LENGTH_DELIMITED,
    _FieldDescriptor.TYPE_UINT32: wire_format.WIRETYPE_VARINT,
    _FieldDescriptor.TYPE_ENUM: wire_format.WIRETYPE_VARINT,
    _FieldDescriptor.TYPE_SFIXED32: wire_format.WIRETYPE_FIXED32,
    _FieldDescriptor.TYPE_SFIXED64: wire_format.WIRETYPE_FIXED64,
    _FieldDescriptor.TYPE_SINT32: wire_format.WIRETYPE_VARINT,
    _FieldDescriptor.TYPE_SINT64: wire_format.WIRETYPE_VARINT,
    }
PK�\��F�e�e+protobuf/internal/well_known_types_test.pyonu�[����
���hc@s�dZdZddlZddlmZyddlZWnek
rWddlZnXddlmZddlm	Z	ddlm
Z
ddlmZdd	lmZdd
lm
Z
ddlmZddlmZdd
lmZddlmZddlmZdejfd��YZdefd��YZdejfd��YZdejfd��YZdejfd��YZedkr�ej�ndS(s3Test for google.protobuf.internal.well_known_types.sjieluo@google.com (Jie Luo)i����N(tdatetime(tany_pb2(tduration_pb2(tfield_mask_pb2(t
struct_pb2(t
timestamp_pb2(tunittest_pb2(tany_test_pb2(t	test_util(twell_known_types(t
descriptor(ttext_formattTimeUtilTestBasecBseZd�Zd�ZRS(cCsC|j||j��tj�}|j|�|j||�dS(N(tassertEqualtToJsonStringRt	TimestamptFromJsonString(tselftmessagettexttparsed_message((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pytCheckTimestampConversion;s
cCsC|j||j��tj�}|j|�|j||�dS(N(R
RRtDurationR(RRRR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pytCheckDurationConversionAs
(t__name__t
__module__RR(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyR9s	tTimeUtilTestcBsPeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(cCs]tj�}d|_d|_|j|d�d|_|j|d�d|_|j|d�d|_|j|d�d	|_d|_|j|d
�d|_d|_|j|d
�d|_|j|d�|jd�|jd|j�|jd|j�|jd�|jd|j�|jd|j�|j�|jd|j�dS(Nis1970-01-01T00:00:00Zi���s1970-01-01T00:00:00.010Zi's1970-01-01T00:00:00.000010Zi
s1970-01-01T00:00:00.000000010Zl����w#o9s0001-01-01T00:00:00ZlA��i�ɚ;s9999-12-31T23:59:59.999999999Zi����s1969-12-31T23:59:59.999999999Zs1970-01-01T00:00:00.1Zi�s1970-01-01T00:00:00-08:00iii�pi�p(	RRtsecondstnanosRRR
tGetCurrentTimetassertNotEqual(RR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestTimestampSerializeAndParseJs4										


cCstj�}d|_d|_|j|d�d|_|j|d�d|_|j|d�d|_|j|d�d	|_d
|_|j|d�d|_d
|_|j|d�|jd�|jd|j�|jd�|jd|j�dS(Nit0si���s0.010si's	0.000010si
s0.000000010sl�s%i�ɚ;s315576000000.999999999sl�����s%i6e�s-315576000000.999999999ss0.1si�s
0.0000001sid(RRRRRRR
(RR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestDurationSerializeAndParseps(									

cCstj�}|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j	��|jd�|jd|j��|jd|j	��|j
d�|jd	|j��|jd|j��|j
d�|jd
|j��|jd|j��|jd�|jd|j��|jd�|jd
|j��dS(Nis1970-01-01T00:00:00.000000001Zi����s1969-12-31T23:59:59.999999999Zs1970-01-01T00:00:00.000001Zs1969-12-31T23:59:59.999999Zs1970-01-01T00:00:00.001Zs1969-12-31T23:59:59.999Zs1970-01-01T00:00:01Zs1969-12-31T23:59:59Zi�i1���i����(RRtFromNanosecondsR
Rt
ToNanosecondstFromMicrosecondstToMicrosecondstFromMillisecondstToMillisecondstFromSecondst	ToSeconds(RR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestTimestampIntegerConversion�sJ
	

	

	

	

	

	

	

	


cCstj�}|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j��|jd�|jd|j��|jd|j	��|jd�|jd|j��|jd|j	��|j
d�|jd	|j��|jd|j��|j
d�|jd
|j��|jd|j��|jd�|jd|j��|jd�|jd|j��dS(
Nis0.000000001si����s
-0.000000001ss	0.000001ss
-0.000001ss0.001ss-0.001st1ss-1si�i1���(RRR"R
RR#R$R%R&R'R(R)(RR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestDurationIntegerConversion�sH
	

	

	

	

	

	


	


c	Cs�tj�}tddd�}|j|�|j||j��|jd�|jtddddddd�|j��dS(Ni�ii�iiX>(RRRtFromDatetimeR
t
ToDatetimeR&(RRtdt((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestDatetimeConverison�s

!cCstj�}|jd�|j�}|jd|j�|jd|j�|jd�|j�}|jd|j�|jd|j�|jd|j�|jd�|j�}|jd|j�|jd|j�|jd|j�tj�}|j	|�|j||�dS(Ni��5wii?Bilʈi����i~QiQ(
RRR"tToTimedeltaR
RtmicrosecondstdaysR$t
FromTimedelta(RRttdtconverted_message((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestTimedeltaConversion�s$



cCs�tj�}|jtjd|jd�|jtjd|jd�|jtd|jd�|jtjd|jd�|jtjd	|jd
�|jtd|jd�d
|_|jtd|j	�dS(Ns9Failed to parse timestamp: missing valid timezone offset.tsKFailed to parse timestamp: invalid trailing data 1970-01-01T00:00:01Ztrail.s1970-01-01T00:00:01ZtrailsJtime data '10000-01-01T00:00:00' does not match format '%Y-%m-%dT%H:%M:%S's10000-01-01T00:00:00.00Zs2nanos 0123456789012 more than 9 fractional digits.s"1970-01-01T00:00:00.0123456789012Zs$Invalid timezone offset value: \+08.s1972-01-01T01:00:00.01+08syear (0 )?is out of ranges0000-01-01T00:00:00Zl�A��sdate value out of range(
RRtassertRaisesRegexpR	t
ParseErrorRt
ValueErrorRt
OverflowErrorR(RR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestInvalidTimestampsF
	cCs�tj�}|jtjd|jd�|jtjd|jd�d}|jtjd|j|�d}|jtjd|j|�d	|_d
|_|jtjd|j	�d
|_d|_|jtjd
|j	�dS(Ns%Duration must end with letter "s": 1.t1s Couldn't parse duration: 1...2s.s1...2ss-315576000001.000000000ss`Duration is not valid\: Seconds -315576000001 must be in range \[-315576000000\, 315576000000\].s315576000001.000000000ss_Duration is not valid\: Seconds 315576000001 must be in range \[-315576000000\, 315576000000\].l�����s%ii�ɚ;isUDuration is not valid\: Nanos 1000000000 must be in range \[-999999999\, 999999999\].iʚ;(
RRR9R	R:RtErrorRRR(RRR((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestInvalidDuration7s>



		
		(
RRRR!R*R,R0R7R=R@(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyRHs	&		3	1	
		't
FieldMaskTestcBsbeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZRS(
cCs�tj�}|jd|j��|jjd�|jd|j��|jjd�|jd|j��|jd�|jd|j��|jd�|jdg|j�|jd�|jddg|j�|j�|jjd�|jd|j��|jjd�|jd|j��|jd�|jd|j��|jd�|jdg|j�|jd�|jddg|j�dS(	NR8tfootbarsfoo,bartfoo_bartfooBartbar_quzs
fooBar,barQuz(Rt	FieldMaskR
RtpathstappendRtClear(Rtmask((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestStringFormat_s.






cCs�tj�}tjj}|j|�|jdt|j��|j	|j
|��x*|jD]}|j	|j|jk�q^WdS(NiK(
RRGRtTestAllTypest
DESCRIPTORtAllFieldsFromDescriptorR
tlenRHt
assertTruetIsValidForDescriptortfieldstname(RRKtmsg_descriptortfield((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestDescriptorToFieldMask|s
cCsitjj}tj�}|j|j|��|j|�|j|j|��|jj	d�|j|j|��|jj	d�|j
|j|��tj�}|jj	d�|j
|j|��tj�}|jj	d�|j
|j|��tj�}|jj	d�|j
|j|��tj�}|jj	d�|j
|j|��dS(Nsoptional_nested_message.bbsrepeated_nested_message.bbtxxxsxxx.zzzsoptional_nested_message.xxx.zzzsoptional_nested_message.xxx(RRMRNRRGRQRRRORHRItassertFalse(RRURK((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestIsValidForDescriptor�s*
cCsltj�}tj�}|jd�|j|�|jd|j��|jd�|j|�|jd|j��|jd�|j|�|jd|j��|jd�|j|�|jd|j��|jd	�|j|�|jd|j��|jd
�|j|�|jd|j��|jd�|j|�|jd
|j��dS(Nsbaz.quz,bar,foosbar,baz.quz,foosfoo,bar,foosbar,foosfoo.b1,bar.b1,foo.b2,barsbar,foo.b1,foo.b2s*foo.bar.baz1,foo.bar.baz2.quz,foo.bar.baz2sfoo.bar.baz1,foo.bar.baz2s*foo.bar.baz1,foo.bar.baz2,foo.bar.baz2.quzs2foo.bar.baz1,foo.bar.baz2,foo.bar.baz2.quz,foo.barsfoo.bars.foo.bar.baz1,foo.bar.baz2,foo.bar.baz2.quz,fooRB(RRGRtCanonicalFormFromMaskR
R(RRKtout_mask((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestCanonicalFrom�s:






	

	


cCstj�}tj�}tj�}|jd�|jd�|j||�|jd|j��|jd�|jd�|j||�|jd|j��|jd�|jd�|j||�|jd	|j��tj�}|jt	��|j||�WdQXdS(
Nsfoo,bazsbar,quzsbar,baz,foo,quzs
foo,baz.bbs
baz.bb,quzsbaz.bb,foo,quzsfoo.bar.baz,quzsfoo.bar,barsbar,foo.bar,quz(
RRGRtUnionR
RRRMtassertRaisesR;(Rtmask1tmask2R\tsrc((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyt	testUnion�s$





cCs(tj�}tj�}tj�}|jd�|jd�|j||�|jd|j��|jd�|jd�|j||�|jd|j��|jd�|jd�|j||�|jd	|j��|jd�|jd�|j||�|jd	|j��dS(
Nsfoo,bazsbar,quzR8s
foo,baz.bbs
baz.bb,quzsbaz.bbsfoo.bar.baz,quzsfoo.bar,barsfoo.bar.baz(RRGRt	IntersectR
R(RR`RaR\((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyt
testIntersect�s&







cCs]tj�}tj|�xO|jjD]A}|jr;q&n|j}tj�}tj	�}|j
j|�|j||�tj�}|j
tjjkrt||�}t||�}|jtjjkr�x1|D]}	|j�j|	�q�WqW|j|�nP|jtjjkr>t||�jt||��nt||t||��|j||�q&Wtj�}
tj�}d|
jj_d|
jjj_tj	�}|jd�|j|
|�|jd|jjj�|jd|jjjj�|jd�|j|
|�|jd|jjj�|jd|jjjj�|j�|jd�|j|
|�|jd|jjj�|jd|jjjj�|j�|jd�|j|
|�|jd|jjj�|jd|jjjj�|j�d|jj_|jd�|j|
|�|jd|jjj�|jd|jjj�|jd�|j|
|t t!�|jd|jjj�|jd|jjj�d|j_|j"|j#d��|jd�|j|
|�|j"|j#d��|j�d|j_|jd�|j|
|t t!�|j$|j#d��|
jj%jd�|jj%jd�|jd	�|j|
|�|jd
t&|jj%��|jd|jj%d�|jd|jj%d�|jd	�|j|
|t!t �|jdt&|jj%��|jd|jj%d�dS(Ni�i.s
child.payloadischild.child.payloadtchildi�tpayloadspayload.repeatedInt32ii('RRMRtSetAllFieldsRNRStcontaining_oneofRTRRGRHRItMergeMessagetlabelR
tFieldDescriptortLABEL_REPEATEDtgetattrtcpp_typetCPPTYPE_MESSAGEtaddtCopyFromtextendtsetattrR
tNestedTestAllTypesRfRgtoptional_int32RRJtoptional_int64tTruetFalseRQtHasFieldRYtrepeated_int32RP(RRbRVt
field_nametdstRKtmsgtrepeated_srctrepeated_msgtitemt
nested_srct
nested_dst((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestMergeMessage�s�
		
"













cCs�tj�}tj�}tj�}tj|�|jd�|jt��}|j	||�WdQX|j
dt|j��dS(NsoptionalInt32.fields�Error: Field optional_int32 in message protobuf_unittest.TestAllTypes is not a singular message field and cannot have sub-fields.(
RRMRRGRRhRR_R;RjR
tstrt	exception(RRbR}RKte((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestMergeErrorsYs

	cCs�|jdtjd��|jdtjd��|jdtjd��|jtjdtjd�|jtjd	tjd
�|jtjdtjd�|jtjd
tjd�dS(NRERDtFooBart_foo_bartfoo3Bartfoo3_barsYFail to print FieldMask to Json string: Path name Foo must not contain uppercase letters.tFoossFail to print FieldMask to Json string: The character after a "_" must be a lowercase letter in path name foo__bar.tfoo__barssFail to print FieldMask to Json string: The character after a "_" must be a lowercase letter in path name foo_3bar.tfoo_3barsKFail to print FieldMask to Json string: Trailing "_" in path name foo_bar_.tfoo_bar_(R
R	t_SnakeCaseToCamelCaseR9R?(R((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestSnakeCaseToCamelCasefs4			cCsk|jdtjd��|jdtjd��|jdtjd��|jtjdtjd�dS(NRDRER�R�R�R�sAFail to parse FieldMask: Path name foo_bar must not contain "_"s.(R
R	t_CamelCaseToSnakeCaseR9R:(R((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestCamelCaseToSnakeCase�s			(RRRLRWRZR]RcReR�R�R�R�(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyRA]s					$			c	
	&t
StructTestcBseZd�Zd�ZRS(cCs�tj�}|j|tj�|jdt|��|j}d|d<d|d<t|d<d|j	d�d	<|j
d
�}|j|tj�|jddtt
dg�d
|j�d<iid	6|d<dt
g|d<|jdt|��|jt|tj��|jd|d�|jd|d�|jt|d�|jd|dd	�|�}d
|d<|jddtt
d|gt|d
j���|jit|dd	j��|jdt
gt|dj���|j�}tj�}|j|�|j||�xN|j�D]@\}}|j||�|j||�|j|||�q/W|jdt|j���|jdt|j���xL|j�D]>}|j||�|j||�|j||||�q�Wtt|j���tt|j���f}	|j|	tt|j����|jt|tj��|jd|d�|jd|d�|jt|d�|jd|dd	�|jddtt
d|gt|d
j���|d
}|jd|d�|jd|d�|jt|d�|jt
|d�|jd|d�|j||d�d|d<|jd|d�|j�jddtt
dg�|jddtt
dgt|dj���|jidd6ddgigg�|jdt|j��|jd|dd�|jd|dd�|jd|dd�|jit|d
j��|jgt|dj���idd6|d<ddg|d<|jd|dd�|jddgt|dj���t |�}
tj�}t!j"|
|�|j||�d |j	d�d<|jd |dd�|j
d!�|d!}|jgt|j���tj#�}
|
j�|
d}|jgt|j���|j	d"�|d"}|jit|j��|
j�|
d}|jit|j��|jd
t|��|d=|d=|jdt|��|jdt|d
��|d
d=|jdt|d
��|jdtt
d|gt|d
j���dS(#Niitkey1tabctkey2tkey3g&@tkey4tsubkeytkey5itseveni	tsubkey2tkey6itkey7iiiiittwoit
nested_structtnested_listicii
tsettreplaceit
empty_listtempty_struct($RtStructtassertIsInstancetcollectionstMappingR
RPt	__class__Rxtget_or_create_structtget_or_create_listtSequenceRsRytNonet
add_structRQt
isinstanceR	tassertIstlisttitemstdictRStSerializeToStringtParseFromStringtassertIntkeystvaluestnexttitertadd_listR�RtMerget	ListValue(Rtstructtstruct_clasststruct_listtinner_structt
serializedtstruct2tkeytvalueR�ttext_serializedtstruct3R�tlist2R�((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyt
testStruct�s�	


	
!&
0"

"& &







c	Cs�tj�}|j}idd6dd6td6idd6d6d	d
ttdidd6gd
6dtggd6id6gd6}|j|�|jd|d�|jd|d�|jt|d�|jd|dd�|�}d|d<|jd	d
ttd|gt	|d
j
���|jdt|ddj��|jd|ddd�|jt|ddd�|d}|jgt	|j
���|d}|jit
|j��iidd6d6tdggd
6}|j|�|jdt|dj��|jd|dd�|jdt|d
j��|jt|d
dd�|jd|d
dd�dS(NiR�R�R�R�g&@R�R�iR�i	R�R�R�R�R�R�iiiiiR�(RR�R�RxRyR�tupdateR
R�R�R�RPR�R�RS(RR�R�t
dictionaryR�R�R�t	duplicate((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyt
testMergeFromsH	 

	
!


(RRR�R�(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyR��s	wtAnyTestcBs,eZd�Zd�Zd�Zd�ZRS(cCs?tj�}|j}tj�}|j}|jjd�|jj|�|j	|jj
d|j�|j	|jj|j��|j
|jj|��|j|jj|��tj�}|j
|jj|��|j	||�|j|jj|��y|j|�Wntk
r'nXtd|j��dS(Nuüꜟstype.googleapis.com/%ss%s should not have Pack method.(RtTestAnyRNRRMtrepeated_stringRIR�tPackR
ttype_urlt	full_nameR�RQtIsRYtUnpacktAttributeError(RR~RUt	all_typestall_descriptortunpacked_message((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestAnyMessageBs,		

cCsHtj�}d|_tj�}|j|�|j|j�d�dS(Ni90s google.protobuf.internal.TestAny(RR�t	int_valueRtAnyR�R
tTypeName(Rt
submessageR~((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestMessageNameas
	
cCs�tj�}d|_tj�}|j|d�|j|jd|jj	�|j|d�|j|jd|jj	�|j|d�|j|jd|jj	�tj�}|j
|j|��|j||�dS(Ni90stype.myservice.comstype.myservice.com/%sstype.myservice.com/R8s/%s(RR�R�RR�R�R
R�RNR�RQR�(RR�R~R�((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestPackWithCustomTypeUrlis	cCs�tj�}x+td�D]}|d|jt|�<qWtj�}|j|dt�|j	dt�}d}|j
||�dS(Ni
it
deterministics~
4type.googleapis.com/google.protobuf.internal.TestAnyF
0
1
2
3
4
5

6
7
8
9(RR�tranget	map_valueR�RR�R�RxR�R
(RR�tiR~R�tgolden((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyttestPackDeterministic~s(RRR�R�R�R�(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyR�@s			t__main__(t__doc__t
__author__R�Rt	unittest2tunittesttImportErrortgoogle.protobufRRRRRRtgoogle.protobuf.internalRRR	R
RtTestCaseRRRAR�R�Rtmain(((sR/usr/lib/python2.7/site-packages/google/protobuf/internal/well_known_types_test.pyt<module> s6
��>�MPK�\����)protobuf/internal/symbol_database_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Tests for google.protobuf.symbol_database."""

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import unittest_pb2
from google.protobuf import descriptor
from google.protobuf import descriptor_pool
from google.protobuf import symbol_database


class SymbolDatabaseTest(unittest.TestCase):

  def _Database(self):
    if descriptor._USE_C_DESCRIPTORS:
      # The C++ implementation does not allow mixing descriptors from
      # different pools.
      db = symbol_database.SymbolDatabase(pool=descriptor_pool.Default())
    else:
      db = symbol_database.SymbolDatabase()
    # Register representative types from unittest_pb2.
    db.RegisterFileDescriptor(unittest_pb2.DESCRIPTOR)
    db.RegisterMessage(unittest_pb2.TestAllTypes)
    db.RegisterMessage(unittest_pb2.TestAllTypes.NestedMessage)
    db.RegisterMessage(unittest_pb2.TestAllTypes.OptionalGroup)
    db.RegisterMessage(unittest_pb2.TestAllTypes.RepeatedGroup)
    db.RegisterEnumDescriptor(unittest_pb2.ForeignEnum.DESCRIPTOR)
    db.RegisterEnumDescriptor(unittest_pb2.TestAllTypes.NestedEnum.DESCRIPTOR)
    db.RegisterServiceDescriptor(unittest_pb2._TESTSERVICE)
    return db

  def testGetPrototype(self):
    instance = self._Database().GetPrototype(
        unittest_pb2.TestAllTypes.DESCRIPTOR)
    self.assertTrue(instance is unittest_pb2.TestAllTypes)

  def testGetMessages(self):
    messages = self._Database().GetMessages(
        ['google/protobuf/unittest.proto'])
    self.assertTrue(
        unittest_pb2.TestAllTypes is
        messages['protobuf_unittest.TestAllTypes'])

  def testGetSymbol(self):
    self.assertEqual(
        unittest_pb2.TestAllTypes, self._Database().GetSymbol(
            'protobuf_unittest.TestAllTypes'))
    self.assertEqual(
        unittest_pb2.TestAllTypes.NestedMessage, self._Database().GetSymbol(
            'protobuf_unittest.TestAllTypes.NestedMessage'))
    self.assertEqual(
        unittest_pb2.TestAllTypes.OptionalGroup, self._Database().GetSymbol(
            'protobuf_unittest.TestAllTypes.OptionalGroup'))
    self.assertEqual(
        unittest_pb2.TestAllTypes.RepeatedGroup, self._Database().GetSymbol(
            'protobuf_unittest.TestAllTypes.RepeatedGroup'))

  def testEnums(self):
    # Check registration of types in the pool.
    self.assertEqual(
        'protobuf_unittest.ForeignEnum',
        self._Database().pool.FindEnumTypeByName(
            'protobuf_unittest.ForeignEnum').full_name)
    self.assertEqual(
        'protobuf_unittest.TestAllTypes.NestedEnum',
        self._Database().pool.FindEnumTypeByName(
            'protobuf_unittest.TestAllTypes.NestedEnum').full_name)

  def testFindMessageTypeByName(self):
    self.assertEqual(
        'protobuf_unittest.TestAllTypes',
        self._Database().pool.FindMessageTypeByName(
            'protobuf_unittest.TestAllTypes').full_name)
    self.assertEqual(
        'protobuf_unittest.TestAllTypes.NestedMessage',
        self._Database().pool.FindMessageTypeByName(
            'protobuf_unittest.TestAllTypes.NestedMessage').full_name)

  def testFindServiceByName(self):
    self.assertEqual(
        'protobuf_unittest.TestService',
        self._Database().pool.FindServiceByName(
            'protobuf_unittest.TestService').full_name)

  def testFindFileContainingSymbol(self):
    # Lookup based on either enum or message.
    self.assertEqual(
        'google/protobuf/unittest.proto',
        self._Database().pool.FindFileContainingSymbol(
            'protobuf_unittest.TestAllTypes.NestedEnum').name)
    self.assertEqual(
        'google/protobuf/unittest.proto',
        self._Database().pool.FindFileContainingSymbol(
            'protobuf_unittest.TestAllTypes').name)

  def testFindFileByName(self):
    self.assertEqual(
        'google/protobuf/unittest.proto',
        self._Database().pool.FindFileByName(
            'google/protobuf/unittest.proto').name)


if __name__ == '__main__':
  unittest.main()
PK�\�F��{{'protobuf/internal/more_messages_pb2.pycnu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��ZdZejdddddddddddddddeddddd dd!dd"ed#dd$dd%e�Zd&Zejdd'dd(dddd&dddd&dddeddddd dd!dd"ed#dd$dd%e�Zejdd)dd*d+dd%ed!dd,ejdd-dd.dddd/dd0dddddeddddd dd!dd"ed#dd$dd%e�ejdd1dd2dddddd3dddddeddddd dd!dd"ed#dd$dd%e�ejdd4dd5dd&dddd/dddddeddddd dd!dd"ed#dd$dd%e�gd6gd7gd8gd$dd9eddd:dCdDgd;gd<d=d>d?�Zeejd)<eejd<eejd'<eje�e	jd)ejfe d@edAdB��Z!ej"e!�e!j#e�e!j#e�dS(Ei����NiicCs|S(N((tx((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/more_messages_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/more_messages_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames,google/protobuf/internal/more_messages.prototpackagesgoogle.protobuf.internaltsyntaxtproto2t
serialized_pbs;
,google/protobuf/internal/more_messages.protogoogle.protobuf.internal"h
OutOfOrderFields
optional_sint32 (
optional_uint32 (

optional_int32 (**:C
optional_uint64*.google.protobuf.internal.OutOfOrderFields (:B
optional_int64*.google.protobuf.internal.OutOfOrderFields (itoptional_uint64t	full_names(google.protobuf.internal.optional_uint64tindextnumberttypetcpp_typetlabelithas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfileitoptional_int64s'google.protobuf.internal.optional_int64tOutOfOrderFieldss)google.protobuf.internal.OutOfOrderFieldstfilenametfieldstoptional_sint32s9google.protobuf.internal.OutOfOrderFields.optional_sint32iitoptional_uint32s9google.protobuf.internal.OutOfOrderFields.optional_uint32i
toptional_int32s8google.protobuf.internal.OutOfOrderFields.optional_int32t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiJtserialized_endi�t
DESCRIPTORt
__module__s*google.protobuf.internal.more_messages_pb2(ii(ii($tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR.tOPTIONAL_UINT64_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRtOPTIONAL_INT64_FIELD_NUMBERRt
Descriptort_OUTOFORDERFIELDStmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR tRegisterMessagetRegisterExtension(((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/more_messages_pb2.pyt<module>s�%								





PK�\v�X؜�protobuf/internal/__init__.pycnu�[����
���hc@sdS(N((((sE/usr/lib/python2.7/site-packages/google/protobuf/internal/__init__.pyt<module>tPK�\3C!��*protobuf/internal/symbol_database_test.pyonu�[����
���hc@s�dZyddlZWnek
r5ddlZnXddlmZddlmZddlmZddlmZdej	fd��YZ
ed	kr�ej�ndS(
s*Tests for google.protobuf.symbol_database.i����N(tunittest_pb2(t
descriptor(tdescriptor_pool(tsymbol_databasetSymbolDatabaseTestcBsYeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	cCs�tjr$tjdtj��}ntj�}|jtj�|j	tj
�|j	tj
j�|j	tj
j�|j	tj
j
�|jtjj�|jtj
jj�|jtj�|S(Ntpool(Rt_USE_C_DESCRIPTORSRtSymbolDatabaseRtDefaulttRegisterFileDescriptorRt
DESCRIPTORtRegisterMessagetTestAllTypest
NestedMessaget
OptionalGroupt
RepeatedGrouptRegisterEnumDescriptortForeignEnumt
NestedEnumtRegisterServiceDescriptort_TESTSERVICE(tselftdb((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyt	_Database/s	cCs5|j�jtjj�}|j|tjk�dS(N(RtGetPrototypeRRR
t
assertTrue(Rtinstance((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestGetPrototypeAscCs6|j�jdg�}|jtj|dk�dS(Nsgoogle/protobuf/unittest.protosprotobuf_unittest.TestAllTypes(RtGetMessagesRRR(Rtmessages((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestGetMessagesFs
cCs�|jtj|j�jd��|jtjj|j�jd��|jtjj|j�jd��|jtjj|j�jd��dS(Nsprotobuf_unittest.TestAllTypess,protobuf_unittest.TestAllTypes.NestedMessages,protobuf_unittest.TestAllTypes.OptionalGroups,protobuf_unittest.TestAllTypes.RepeatedGroup(tassertEqualRRRt	GetSymbolR
RR(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyt
testGetSymbolMs


cCsN|jd|j�jjd�j�|jd|j�jjd�j�dS(Nsprotobuf_unittest.ForeignEnums)protobuf_unittest.TestAllTypes.NestedEnum(RRRtFindEnumTypeByNamet	full_name(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyt	testEnums[s
cCsN|jd|j�jjd�j�|jd|j�jjd�j�dS(Nsprotobuf_unittest.TestAllTypess,protobuf_unittest.TestAllTypes.NestedMessage(RRRtFindMessageTypeByNameR#(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestFindMessageTypeByNamefs
cCs)|jd|j�jjd�j�dS(Nsprotobuf_unittest.TestService(RRRtFindServiceByNameR#(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestFindServiceByNamepscCsN|jd|j�jjd�j�|jd|j�jjd�j�dS(Nsgoogle/protobuf/unittest.protos)protobuf_unittest.TestAllTypes.NestedEnumsprotobuf_unittest.TestAllTypes(RRRtFindFileContainingSymboltname(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestFindFileContainingSymbolvs
cCs)|jd|j�jjd�j�dS(Nsgoogle/protobuf/unittest.proto(RRRtFindFileByNameR*(R((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyttestFindFileByName�s(t__name__t
__module__RRRR!R$R&R(R+R-(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyR-s						
		t__main__(
t__doc__t	unittest2tunittesttImportErrortgoogle.protobufRRRRtTestCaseRR.tmain(((sQ/usr/lib/python2.7/site-packages/google/protobuf/internal/symbol_database_test.pyt<module> s
[PK�\L���'protobuf/internal/factory_test1_pb2.pycnu�[����
���hc1@s`ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�Zejdd
ddddded��Zejdddddddedejdddddddddd�ejdddd dd dddd�gd!dddd"d#d$d%�	Zeje�eje�ZdZd Zejdd&dd'dddedejdd(dddddddd�ejdd)dd dd dddd�gd!dddd"d*d$d+�	Zeje�ejdd,dd-ddded!dd.ejdd/dd0dddd dd1d2d1d3d d4ed5ed6�j d7�d8dd9dd!dd:ed;dddde�gd<gd=gd>gddd?eddd@gdAgd"dBd$dC�Z!ejddDddEddded!dd.ejddFddGdddd ddHd2dId3d d4ed5dd8dd9dd!dd:ed;dddde�ejddJddKdd ddLddHd2dId3d d4ed5dd8dd9dd!dd:ed;dddde�ejddMddNddLddddOd2dPd3d d4ed5dd8dd9dd!dd:ed;dddde�ejddQddRddddSddTd2d d3d d4ed5dd8dd9dd!dd:ed;dddde�ejddUddVddSddTdd1d2d1d3dd4ed5gd8dd9dd!dd:ed;dddde�gd<gd=e!gd>egddd?e"ddd@d^gdAgd"dYd$dZ�Z#e#e!_$ee#j%dF_&ee#j%dJ_&e!e#j%dM_'e#e_$e#ej(dD<eej)d<ej*e�ej+dDe	j,fe-d,ej+d,e	j,fe-d[e!d\d]��d[e#d\d]��Z.ej/e.�ej/e.j0�dS(_i����NiicCs|S(N((tx((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test1_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test1_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames,google/protobuf/internal/factory_test1.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbse
,google/protobuf/internal/factory_test1.protogoogle.protobuf.python.internal"�
Factory1MessageE
factory_1_enum (2-.google.protobuf.python.internal.Factory1Enumb
nested_factory_1_enum (2C.google.protobuf.python.internal.Factory1Message.NestedFactory1Enumh
nested_factory_1_message (2F.google.protobuf.python.internal.Factory1Message.NestedFactory1Message
scalar_value (

list_value (	&
NestedFactory1Message
value (	"P
NestedFactory1Enum
NESTED_FACTORY_1_VALUE_0
NESTED_FACTORY_1_VALUE_1*	�����*<
Factory1Enum
FACTORY_1_VALUE_0
FACTORY_1_VALUE_1tFactory1Enumt	full_names,google.protobuf.python.internal.Factory1EnumtfilenametfiletvaluestFACTORY_1_VALUE_0tindextnumbertoptionsttypetFACTORY_1_VALUE_1itcontaining_typetserialized_starti)tserialized_endietNestedFactory1EnumsBgoogle.protobuf.python.internal.Factory1Message.NestedFactory1EnumtNESTED_FACTORY_1_VALUE_0tNESTED_FACTORY_1_VALUE_1i�itNestedFactory1MessagesEgoogle.protobuf.python.internal.Factory1Message.NestedFactory1MessagetfieldstvaluesKgoogle.protobuf.python.internal.Factory1Message.NestedFactory1Message.valuei	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi�i�tFactory1Messages/google.protobuf.python.internal.Factory1Messagetfactory_1_enums>google.protobuf.python.internal.Factory1Message.factory_1_enumiitnested_factory_1_enumsEgoogle.protobuf.python.internal.Factory1Message.nested_factory_1_enumitnested_factory_1_messagesHgoogle.protobuf.python.internal.Factory1Message.nested_factory_1_messageii
tscalar_values<google.protobuf.python.internal.Factory1Message.scalar_valueiit
list_values:google.protobuf.python.internal.Factory1Message.list_valuei�i iRi't
DESCRIPTORt
__module__s*google.protobuf.internal.factory_test1_pb2(i�i (1tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbtFileDescriptorR8tEnumDescriptortNonetEnumValueDescriptort
_FACTORY1ENUMtRegisterEnumDescriptortEnumTypeWrapperRRRt#_FACTORY1MESSAGE_NESTEDFACTORY1ENUMt
DescriptortFieldDescriptortFalsetdecodet&_FACTORY1MESSAGE_NESTEDFACTORY1MESSAGEtTruet_FACTORY1MESSAGERtfields_by_nameR)R(tmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR2tRegisterMessageR!(((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/factory_test1_pb2.pyt<module>s%					
				
															



PK�\r
g�AVAV!protobuf/internal/message_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Tests python protocol buffers against the golden message.

Note that the golden messages exercise every known field type, thus this
test ends up exercising and verifying nearly all of the parsing and
serialization code in the whole library.

TODO(kenton):  Merge with wire_format_test?  It doesn't make a whole lot of
sense to call this a test of the "message" module, which only declares an
abstract interface.
"""

__author__ = 'gps@google.com (Gregory P. Smith)'


import collections
import copy
import math
import operator
import pickle
import six
import sys
import warnings

try:
  import unittest2 as unittest  # PY26
except ImportError:
  import unittest
try:
  cmp                                   # Python 2
except NameError:
  cmp = lambda x, y: (x > y) - (x < y)  # Python 3

from google.protobuf import map_proto2_unittest_pb2
from google.protobuf import map_unittest_pb2
from google.protobuf import unittest_pb2
from google.protobuf import unittest_proto3_arena_pb2
from google.protobuf import descriptor_pb2
from google.protobuf import descriptor_pool
from google.protobuf import message_factory
from google.protobuf import text_format
from google.protobuf.internal import api_implementation
from google.protobuf.internal import encoder
from google.protobuf.internal import packed_field_test_pb2
from google.protobuf.internal import test_util
from google.protobuf.internal import testing_refleaks
from google.protobuf import message
from google.protobuf.internal import _parameterized

if six.PY3:
  long = int


# Python pre-2.6 does not have isinf() or isnan() functions, so we have
# to provide our own.
def isnan(val):
  # NaN is never equal to itself.
  return val != val
def isinf(val):
  # Infinity times zero equals NaN.
  return not isnan(val) and isnan(val * 0)
def IsPosInf(val):
  return isinf(val) and (val > 0)
def IsNegInf(val):
  return isinf(val) and (val < 0)


BaseTestCase = testing_refleaks.BaseTestCase


@_parameterized.NamedParameters(
    ('_proto2', unittest_pb2),
    ('_proto3', unittest_proto3_arena_pb2))
class MessageTest(BaseTestCase):

  def testBadUtf8String(self, message_module):
    if api_implementation.Type() != 'python':
      self.skipTest("Skipping testBadUtf8String, currently only the python "
                    "api implementation raises UnicodeDecodeError when a "
                    "string field contains bad utf-8.")
    bad_utf8_data = test_util.GoldenFileData('bad_utf8_string')
    with self.assertRaises(UnicodeDecodeError) as context:
      message_module.TestAllTypes.FromString(bad_utf8_data)
    self.assertIn('TestAllTypes.optional_string', str(context.exception))

  def testGoldenMessage(self, message_module):
    # Proto3 doesn't have the "default_foo" members or foreign enums,
    # and doesn't preserve unknown fields, so for proto3 we use a golden
    # message that doesn't have these fields set.
    if message_module is unittest_pb2:
      golden_data = test_util.GoldenFileData(
          'golden_message_oneof_implemented')
    else:
      golden_data = test_util.GoldenFileData('golden_message_proto3')

    golden_message = message_module.TestAllTypes()
    golden_message.ParseFromString(golden_data)
    if message_module is unittest_pb2:
      test_util.ExpectAllFieldsSet(self, golden_message)
    self.assertEqual(golden_data, golden_message.SerializeToString())
    golden_copy = copy.deepcopy(golden_message)
    self.assertEqual(golden_data, golden_copy.SerializeToString())

  def testGoldenPackedMessage(self, message_module):
    golden_data = test_util.GoldenFileData('golden_packed_fields_message')
    golden_message = message_module.TestPackedTypes()
    golden_message.ParseFromString(golden_data)
    all_set = message_module.TestPackedTypes()
    test_util.SetAllPackedFields(all_set)
    self.assertEqual(all_set, golden_message)
    self.assertEqual(golden_data, all_set.SerializeToString())
    golden_copy = copy.deepcopy(golden_message)
    self.assertEqual(golden_data, golden_copy.SerializeToString())

  def testParseErrors(self, message_module):
    msg = message_module.TestAllTypes()
    self.assertRaises(TypeError, msg.FromString, 0)
    self.assertRaises(Exception, msg.FromString, '0')
    # TODO(jieluo): Fix cpp extension to raise error instead of warning.
    # b/27494216
    end_tag = encoder.TagBytes(1, 4)
    if api_implementation.Type() == 'python':
      with self.assertRaises(message.DecodeError) as context:
        msg.FromString(end_tag)
      self.assertEqual('Unexpected end-group tag.', str(context.exception))
    else:
      with warnings.catch_warnings(record=True) as w:
        # Cause all warnings to always be triggered.
        warnings.simplefilter('always')
        msg.FromString(end_tag)
        assert len(w) == 1
        assert issubclass(w[-1].category, RuntimeWarning)
        self.assertEqual('Unexpected end-group tag: Not all data was converted',
                         str(w[-1].message))

  def testDeterminismParameters(self, message_module):
    # This message is always deterministically serialized, even if determinism
    # is disabled, so we can use it to verify that all the determinism
    # parameters work correctly.
    golden_data = (b'\xe2\x02\nOne string'
                   b'\xe2\x02\nTwo string'
                   b'\xe2\x02\nRed string'
                   b'\xe2\x02\x0bBlue string')
    golden_message = message_module.TestAllTypes()
    golden_message.repeated_string.extend([
        'One string',
        'Two string',
        'Red string',
        'Blue string',
    ])
    self.assertEqual(golden_data,
                     golden_message.SerializeToString(deterministic=None))
    self.assertEqual(golden_data,
                     golden_message.SerializeToString(deterministic=False))
    self.assertEqual(golden_data,
                     golden_message.SerializeToString(deterministic=True))

    class BadArgError(Exception):
      pass

    class BadArg(object):

      def __nonzero__(self):
        raise BadArgError()

      def __bool__(self):
        raise BadArgError()

    with self.assertRaises(BadArgError):
      golden_message.SerializeToString(deterministic=BadArg())

  def testPickleSupport(self, message_module):
    golden_data = test_util.GoldenFileData('golden_message')
    golden_message = message_module.TestAllTypes()
    golden_message.ParseFromString(golden_data)
    pickled_message = pickle.dumps(golden_message)

    unpickled_message = pickle.loads(pickled_message)
    self.assertEqual(unpickled_message, golden_message)

  def testPositiveInfinity(self, message_module):
    if message_module is unittest_pb2:
      golden_data = (b'\x5D\x00\x00\x80\x7F'
                     b'\x61\x00\x00\x00\x00\x00\x00\xF0\x7F'
                     b'\xCD\x02\x00\x00\x80\x7F'
                     b'\xD1\x02\x00\x00\x00\x00\x00\x00\xF0\x7F')
    else:
      golden_data = (b'\x5D\x00\x00\x80\x7F'
                     b'\x61\x00\x00\x00\x00\x00\x00\xF0\x7F'
                     b'\xCA\x02\x04\x00\x00\x80\x7F'
                     b'\xD2\x02\x08\x00\x00\x00\x00\x00\x00\xF0\x7F')

    golden_message = message_module.TestAllTypes()
    golden_message.ParseFromString(golden_data)
    self.assertTrue(IsPosInf(golden_message.optional_float))
    self.assertTrue(IsPosInf(golden_message.optional_double))
    self.assertTrue(IsPosInf(golden_message.repeated_float[0]))
    self.assertTrue(IsPosInf(golden_message.repeated_double[0]))
    self.assertEqual(golden_data, golden_message.SerializeToString())

  def testNegativeInfinity(self, message_module):
    if message_module is unittest_pb2:
      golden_data = (b'\x5D\x00\x00\x80\xFF'
                     b'\x61\x00\x00\x00\x00\x00\x00\xF0\xFF'
                     b'\xCD\x02\x00\x00\x80\xFF'
                     b'\xD1\x02\x00\x00\x00\x00\x00\x00\xF0\xFF')
    else:
      golden_data = (b'\x5D\x00\x00\x80\xFF'
                     b'\x61\x00\x00\x00\x00\x00\x00\xF0\xFF'
                     b'\xCA\x02\x04\x00\x00\x80\xFF'
                     b'\xD2\x02\x08\x00\x00\x00\x00\x00\x00\xF0\xFF')

    golden_message = message_module.TestAllTypes()
    golden_message.ParseFromString(golden_data)
    self.assertTrue(IsNegInf(golden_message.optional_float))
    self.assertTrue(IsNegInf(golden_message.optional_double))
    self.assertTrue(IsNegInf(golden_message.repeated_float[0]))
    self.assertTrue(IsNegInf(golden_message.repeated_double[0]))
    self.assertEqual(golden_data, golden_message.SerializeToString())

  def testNotANumber(self, message_module):
    golden_data = (b'\x5D\x00\x00\xC0\x7F'
                   b'\x61\x00\x00\x00\x00\x00\x00\xF8\x7F'
                   b'\xCD\x02\x00\x00\xC0\x7F'
                   b'\xD1\x02\x00\x00\x00\x00\x00\x00\xF8\x7F')
    golden_message = message_module.TestAllTypes()
    golden_message.ParseFromString(golden_data)
    self.assertTrue(isnan(golden_message.optional_float))
    self.assertTrue(isnan(golden_message.optional_double))
    self.assertTrue(isnan(golden_message.repeated_float[0]))
    self.assertTrue(isnan(golden_message.repeated_double[0]))

    # The protocol buffer may serialize to any one of multiple different
    # representations of a NaN.  Rather than verify a specific representation,
    # verify the serialized string can be converted into a correctly
    # behaving protocol buffer.
    serialized = golden_message.SerializeToString()
    message = message_module.TestAllTypes()
    message.ParseFromString(serialized)
    self.assertTrue(isnan(message.optional_float))
    self.assertTrue(isnan(message.optional_double))
    self.assertTrue(isnan(message.repeated_float[0]))
    self.assertTrue(isnan(message.repeated_double[0]))

  def testPositiveInfinityPacked(self, message_module):
    golden_data = (b'\xA2\x06\x04\x00\x00\x80\x7F'
                   b'\xAA\x06\x08\x00\x00\x00\x00\x00\x00\xF0\x7F')
    golden_message = message_module.TestPackedTypes()
    golden_message.ParseFromString(golden_data)
    self.assertTrue(IsPosInf(golden_message.packed_float[0]))
    self.assertTrue(IsPosInf(golden_message.packed_double[0]))
    self.assertEqual(golden_data, golden_message.SerializeToString())

  def testNegativeInfinityPacked(self, message_module):
    golden_data = (b'\xA2\x06\x04\x00\x00\x80\xFF'
                   b'\xAA\x06\x08\x00\x00\x00\x00\x00\x00\xF0\xFF')
    golden_message = message_module.TestPackedTypes()
    golden_message.ParseFromString(golden_data)
    self.assertTrue(IsNegInf(golden_message.packed_float[0]))
    self.assertTrue(IsNegInf(golden_message.packed_double[0]))
    self.assertEqual(golden_data, golden_message.SerializeToString())

  def testNotANumberPacked(self, message_module):
    golden_data = (b'\xA2\x06\x04\x00\x00\xC0\x7F'
                   b'\xAA\x06\x08\x00\x00\x00\x00\x00\x00\xF8\x7F')
    golden_message = message_module.TestPackedTypes()
    golden_message.ParseFromString(golden_data)
    self.assertTrue(isnan(golden_message.packed_float[0]))
    self.assertTrue(isnan(golden_message.packed_double[0]))

    serialized = golden_message.SerializeToString()
    message = message_module.TestPackedTypes()
    message.ParseFromString(serialized)
    self.assertTrue(isnan(message.packed_float[0]))
    self.assertTrue(isnan(message.packed_double[0]))

  def testExtremeFloatValues(self, message_module):
    message = message_module.TestAllTypes()

    # Most positive exponent, no significand bits set.
    kMostPosExponentNoSigBits = math.pow(2, 127)
    message.optional_float = kMostPosExponentNoSigBits
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_float == kMostPosExponentNoSigBits)

    # Most positive exponent, one significand bit set.
    kMostPosExponentOneSigBit = 1.5 * math.pow(2, 127)
    message.optional_float = kMostPosExponentOneSigBit
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_float == kMostPosExponentOneSigBit)

    # Repeat last two cases with values of same magnitude, but negative.
    message.optional_float = -kMostPosExponentNoSigBits
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_float == -kMostPosExponentNoSigBits)

    message.optional_float = -kMostPosExponentOneSigBit
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_float == -kMostPosExponentOneSigBit)

    # Most negative exponent, no significand bits set.
    kMostNegExponentNoSigBits = math.pow(2, -127)
    message.optional_float = kMostNegExponentNoSigBits
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_float == kMostNegExponentNoSigBits)

    # Most negative exponent, one significand bit set.
    kMostNegExponentOneSigBit = 1.5 * math.pow(2, -127)
    message.optional_float = kMostNegExponentOneSigBit
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_float == kMostNegExponentOneSigBit)

    # Repeat last two cases with values of the same magnitude, but negative.
    message.optional_float = -kMostNegExponentNoSigBits
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_float == -kMostNegExponentNoSigBits)

    message.optional_float = -kMostNegExponentOneSigBit
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_float == -kMostNegExponentOneSigBit)

  def testExtremeDoubleValues(self, message_module):
    message = message_module.TestAllTypes()

    # Most positive exponent, no significand bits set.
    kMostPosExponentNoSigBits = math.pow(2, 1023)
    message.optional_double = kMostPosExponentNoSigBits
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_double == kMostPosExponentNoSigBits)

    # Most positive exponent, one significand bit set.
    kMostPosExponentOneSigBit = 1.5 * math.pow(2, 1023)
    message.optional_double = kMostPosExponentOneSigBit
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_double == kMostPosExponentOneSigBit)

    # Repeat last two cases with values of same magnitude, but negative.
    message.optional_double = -kMostPosExponentNoSigBits
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_double == -kMostPosExponentNoSigBits)

    message.optional_double = -kMostPosExponentOneSigBit
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_double == -kMostPosExponentOneSigBit)

    # Most negative exponent, no significand bits set.
    kMostNegExponentNoSigBits = math.pow(2, -1023)
    message.optional_double = kMostNegExponentNoSigBits
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_double == kMostNegExponentNoSigBits)

    # Most negative exponent, one significand bit set.
    kMostNegExponentOneSigBit = 1.5 * math.pow(2, -1023)
    message.optional_double = kMostNegExponentOneSigBit
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_double == kMostNegExponentOneSigBit)

    # Repeat last two cases with values of the same magnitude, but negative.
    message.optional_double = -kMostNegExponentNoSigBits
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_double == -kMostNegExponentNoSigBits)

    message.optional_double = -kMostNegExponentOneSigBit
    message.ParseFromString(message.SerializeToString())
    self.assertTrue(message.optional_double == -kMostNegExponentOneSigBit)

  def testFloatPrinting(self, message_module):
    message = message_module.TestAllTypes()
    message.optional_float = 2.0
    self.assertEqual(str(message), 'optional_float: 2.0\n')

  def testHighPrecisionFloatPrinting(self, message_module):
    message = message_module.TestAllTypes()
    message.optional_double = 0.12345678912345678
    if sys.version_info >= (3,):
      self.assertEqual(str(message), 'optional_double: 0.12345678912345678\n')
    else:
      self.assertEqual(str(message), 'optional_double: 0.123456789123\n')

  def testUnknownFieldPrinting(self, message_module):
    populated = message_module.TestAllTypes()
    test_util.SetAllNonLazyFields(populated)
    empty = message_module.TestEmptyMessage()
    empty.ParseFromString(populated.SerializeToString())
    self.assertEqual(str(empty), '')

  def testRepeatedNestedFieldIteration(self, message_module):
    msg = message_module.TestAllTypes()
    msg.repeated_nested_message.add(bb=1)
    msg.repeated_nested_message.add(bb=2)
    msg.repeated_nested_message.add(bb=3)
    msg.repeated_nested_message.add(bb=4)

    self.assertEqual([1, 2, 3, 4],
                     [m.bb for m in msg.repeated_nested_message])
    self.assertEqual([4, 3, 2, 1],
                     [m.bb for m in reversed(msg.repeated_nested_message)])
    self.assertEqual([4, 3, 2, 1],
                     [m.bb for m in msg.repeated_nested_message[::-1]])

  def testSortingRepeatedScalarFieldsDefaultComparator(self, message_module):
    """Check some different types with the default comparator."""
    message = message_module.TestAllTypes()

    # TODO(mattp): would testing more scalar types strengthen test?
    message.repeated_int32.append(1)
    message.repeated_int32.append(3)
    message.repeated_int32.append(2)
    message.repeated_int32.sort()
    self.assertEqual(message.repeated_int32[0], 1)
    self.assertEqual(message.repeated_int32[1], 2)
    self.assertEqual(message.repeated_int32[2], 3)
    self.assertEqual(str(message.repeated_int32), str([1, 2, 3]))

    message.repeated_float.append(1.1)
    message.repeated_float.append(1.3)
    message.repeated_float.append(1.2)
    message.repeated_float.sort()
    self.assertAlmostEqual(message.repeated_float[0], 1.1)
    self.assertAlmostEqual(message.repeated_float[1], 1.2)
    self.assertAlmostEqual(message.repeated_float[2], 1.3)

    message.repeated_string.append('a')
    message.repeated_string.append('c')
    message.repeated_string.append('b')
    message.repeated_string.sort()
    self.assertEqual(message.repeated_string[0], 'a')
    self.assertEqual(message.repeated_string[1], 'b')
    self.assertEqual(message.repeated_string[2], 'c')
    self.assertEqual(str(message.repeated_string), str([u'a', u'b', u'c']))

    message.repeated_bytes.append(b'a')
    message.repeated_bytes.append(b'c')
    message.repeated_bytes.append(b'b')
    message.repeated_bytes.sort()
    self.assertEqual(message.repeated_bytes[0], b'a')
    self.assertEqual(message.repeated_bytes[1], b'b')
    self.assertEqual(message.repeated_bytes[2], b'c')
    self.assertEqual(str(message.repeated_bytes), str([b'a', b'b', b'c']))

  def testSortingRepeatedScalarFieldsCustomComparator(self, message_module):
    """Check some different types with custom comparator."""
    message = message_module.TestAllTypes()

    message.repeated_int32.append(-3)
    message.repeated_int32.append(-2)
    message.repeated_int32.append(-1)
    message.repeated_int32.sort(key=abs)
    self.assertEqual(message.repeated_int32[0], -1)
    self.assertEqual(message.repeated_int32[1], -2)
    self.assertEqual(message.repeated_int32[2], -3)

    message.repeated_string.append('aaa')
    message.repeated_string.append('bb')
    message.repeated_string.append('c')
    message.repeated_string.sort(key=len)
    self.assertEqual(message.repeated_string[0], 'c')
    self.assertEqual(message.repeated_string[1], 'bb')
    self.assertEqual(message.repeated_string[2], 'aaa')

  def testSortingRepeatedCompositeFieldsCustomComparator(self, message_module):
    """Check passing a custom comparator to sort a repeated composite field."""
    message = message_module.TestAllTypes()

    message.repeated_nested_message.add().bb = 1
    message.repeated_nested_message.add().bb = 3
    message.repeated_nested_message.add().bb = 2
    message.repeated_nested_message.add().bb = 6
    message.repeated_nested_message.add().bb = 5
    message.repeated_nested_message.add().bb = 4
    message.repeated_nested_message.sort(key=operator.attrgetter('bb'))
    self.assertEqual(message.repeated_nested_message[0].bb, 1)
    self.assertEqual(message.repeated_nested_message[1].bb, 2)
    self.assertEqual(message.repeated_nested_message[2].bb, 3)
    self.assertEqual(message.repeated_nested_message[3].bb, 4)
    self.assertEqual(message.repeated_nested_message[4].bb, 5)
    self.assertEqual(message.repeated_nested_message[5].bb, 6)
    self.assertEqual(str(message.repeated_nested_message),
                     '[bb: 1\n, bb: 2\n, bb: 3\n, bb: 4\n, bb: 5\n, bb: 6\n]')

  def testSortingRepeatedCompositeFieldsStable(self, message_module):
    """Check passing a custom comparator to sort a repeated composite field."""
    message = message_module.TestAllTypes()

    message.repeated_nested_message.add().bb = 21
    message.repeated_nested_message.add().bb = 20
    message.repeated_nested_message.add().bb = 13
    message.repeated_nested_message.add().bb = 33
    message.repeated_nested_message.add().bb = 11
    message.repeated_nested_message.add().bb = 24
    message.repeated_nested_message.add().bb = 10
    message.repeated_nested_message.sort(key=lambda z: z.bb // 10)
    self.assertEqual(
        [13, 11, 10, 21, 20, 24, 33],
        [n.bb for n in message.repeated_nested_message])

    # Make sure that for the C++ implementation, the underlying fields
    # are actually reordered.
    pb = message.SerializeToString()
    message.Clear()
    message.MergeFromString(pb)
    self.assertEqual(
        [13, 11, 10, 21, 20, 24, 33],
        [n.bb for n in message.repeated_nested_message])

  def testRepeatedCompositeFieldSortArguments(self, message_module):
    """Check sorting a repeated composite field using list.sort() arguments."""
    message = message_module.TestAllTypes()

    get_bb = operator.attrgetter('bb')
    cmp_bb = lambda a, b: cmp(a.bb, b.bb)
    message.repeated_nested_message.add().bb = 1
    message.repeated_nested_message.add().bb = 3
    message.repeated_nested_message.add().bb = 2
    message.repeated_nested_message.add().bb = 6
    message.repeated_nested_message.add().bb = 5
    message.repeated_nested_message.add().bb = 4
    message.repeated_nested_message.sort(key=get_bb)
    self.assertEqual([k.bb for k in message.repeated_nested_message],
                     [1, 2, 3, 4, 5, 6])
    message.repeated_nested_message.sort(key=get_bb, reverse=True)
    self.assertEqual([k.bb for k in message.repeated_nested_message],
                     [6, 5, 4, 3, 2, 1])
    if sys.version_info >= (3,): return  # No cmp sorting in PY3.
    message.repeated_nested_message.sort(sort_function=cmp_bb)
    self.assertEqual([k.bb for k in message.repeated_nested_message],
                     [1, 2, 3, 4, 5, 6])
    message.repeated_nested_message.sort(cmp=cmp_bb, reverse=True)
    self.assertEqual([k.bb for k in message.repeated_nested_message],
                     [6, 5, 4, 3, 2, 1])

  def testRepeatedScalarFieldSortArguments(self, message_module):
    """Check sorting a scalar field using list.sort() arguments."""
    message = message_module.TestAllTypes()

    message.repeated_int32.append(-3)
    message.repeated_int32.append(-2)
    message.repeated_int32.append(-1)
    message.repeated_int32.sort(key=abs)
    self.assertEqual(list(message.repeated_int32), [-1, -2, -3])
    message.repeated_int32.sort(key=abs, reverse=True)
    self.assertEqual(list(message.repeated_int32), [-3, -2, -1])
    if sys.version_info < (3,):  # No cmp sorting in PY3.
      abs_cmp = lambda a, b: cmp(abs(a), abs(b))
      message.repeated_int32.sort(sort_function=abs_cmp)
      self.assertEqual(list(message.repeated_int32), [-1, -2, -3])
      message.repeated_int32.sort(cmp=abs_cmp, reverse=True)
      self.assertEqual(list(message.repeated_int32), [-3, -2, -1])

    message.repeated_string.append('aaa')
    message.repeated_string.append('bb')
    message.repeated_string.append('c')
    message.repeated_string.sort(key=len)
    self.assertEqual(list(message.repeated_string), ['c', 'bb', 'aaa'])
    message.repeated_string.sort(key=len, reverse=True)
    self.assertEqual(list(message.repeated_string), ['aaa', 'bb', 'c'])
    if sys.version_info < (3,):  # No cmp sorting in PY3.
      len_cmp = lambda a, b: cmp(len(a), len(b))
      message.repeated_string.sort(sort_function=len_cmp)
      self.assertEqual(list(message.repeated_string), ['c', 'bb', 'aaa'])
      message.repeated_string.sort(cmp=len_cmp, reverse=True)
      self.assertEqual(list(message.repeated_string), ['aaa', 'bb', 'c'])

  def testRepeatedFieldsComparable(self, message_module):
    m1 = message_module.TestAllTypes()
    m2 = message_module.TestAllTypes()
    m1.repeated_int32.append(0)
    m1.repeated_int32.append(1)
    m1.repeated_int32.append(2)
    m2.repeated_int32.append(0)
    m2.repeated_int32.append(1)
    m2.repeated_int32.append(2)
    m1.repeated_nested_message.add().bb = 1
    m1.repeated_nested_message.add().bb = 2
    m1.repeated_nested_message.add().bb = 3
    m2.repeated_nested_message.add().bb = 1
    m2.repeated_nested_message.add().bb = 2
    m2.repeated_nested_message.add().bb = 3

    if sys.version_info >= (3,): return  # No cmp() in PY3.

    # These comparisons should not raise errors.
    _ = m1 < m2
    _ = m1.repeated_nested_message < m2.repeated_nested_message

    # Make sure cmp always works. If it wasn't defined, these would be
    # id() comparisons and would all fail.
    self.assertEqual(cmp(m1, m2), 0)
    self.assertEqual(cmp(m1.repeated_int32, m2.repeated_int32), 0)
    self.assertEqual(cmp(m1.repeated_int32, [0, 1, 2]), 0)
    self.assertEqual(cmp(m1.repeated_nested_message,
                         m2.repeated_nested_message), 0)
    with self.assertRaises(TypeError):
      # Can't compare repeated composite containers to lists.
      cmp(m1.repeated_nested_message, m2.repeated_nested_message[:])

    # TODO(anuraag): Implement extensiondict comparison in C++ and then add test

  def testRepeatedFieldsAreSequences(self, message_module):
    m = message_module.TestAllTypes()
    self.assertIsInstance(m.repeated_int32, collections.MutableSequence)
    self.assertIsInstance(m.repeated_nested_message,
                          collections.MutableSequence)

  def testRepeatedFieldsNotHashable(self, message_module):
    m = message_module.TestAllTypes()
    with self.assertRaises(TypeError):
      hash(m.repeated_int32)
    with self.assertRaises(TypeError):
      hash(m.repeated_nested_message)

  def testRepeatedFieldInsideNestedMessage(self, message_module):
    m = message_module.NestedTestAllTypes()
    m.payload.repeated_int32.extend([])
    self.assertTrue(m.HasField('payload'))

  def ensureNestedMessageExists(self, msg, attribute):
    """Make sure that a nested message object exists.

    As soon as a nested message attribute is accessed, it will be present in the
    _fields dict, without being marked as actually being set.
    """
    getattr(msg, attribute)
    self.assertFalse(msg.HasField(attribute))

  def testOneofGetCaseNonexistingField(self, message_module):
    m = message_module.TestAllTypes()
    self.assertRaises(ValueError, m.WhichOneof, 'no_such_oneof_field')
    self.assertRaises(Exception, m.WhichOneof, 0)

  def testOneofDefaultValues(self, message_module):
    m = message_module.TestAllTypes()
    self.assertIs(None, m.WhichOneof('oneof_field'))
    self.assertFalse(m.HasField('oneof_uint32'))

    # Oneof is set even when setting it to a default value.
    m.oneof_uint32 = 0
    self.assertEqual('oneof_uint32', m.WhichOneof('oneof_field'))
    self.assertTrue(m.HasField('oneof_uint32'))
    self.assertFalse(m.HasField('oneof_string'))

    m.oneof_string = ""
    self.assertEqual('oneof_string', m.WhichOneof('oneof_field'))
    self.assertTrue(m.HasField('oneof_string'))
    self.assertFalse(m.HasField('oneof_uint32'))

  def testOneofSemantics(self, message_module):
    m = message_module.TestAllTypes()
    self.assertIs(None, m.WhichOneof('oneof_field'))

    m.oneof_uint32 = 11
    self.assertEqual('oneof_uint32', m.WhichOneof('oneof_field'))
    self.assertTrue(m.HasField('oneof_uint32'))

    m.oneof_string = u'foo'
    self.assertEqual('oneof_string', m.WhichOneof('oneof_field'))
    self.assertFalse(m.HasField('oneof_uint32'))
    self.assertTrue(m.HasField('oneof_string'))

    # Read nested message accessor without accessing submessage.
    m.oneof_nested_message
    self.assertEqual('oneof_string', m.WhichOneof('oneof_field'))
    self.assertTrue(m.HasField('oneof_string'))
    self.assertFalse(m.HasField('oneof_nested_message'))

    # Read accessor of nested message without accessing submessage.
    m.oneof_nested_message.bb
    self.assertEqual('oneof_string', m.WhichOneof('oneof_field'))
    self.assertTrue(m.HasField('oneof_string'))
    self.assertFalse(m.HasField('oneof_nested_message'))

    m.oneof_nested_message.bb = 11
    self.assertEqual('oneof_nested_message', m.WhichOneof('oneof_field'))
    self.assertFalse(m.HasField('oneof_string'))
    self.assertTrue(m.HasField('oneof_nested_message'))

    m.oneof_bytes = b'bb'
    self.assertEqual('oneof_bytes', m.WhichOneof('oneof_field'))
    self.assertFalse(m.HasField('oneof_nested_message'))
    self.assertTrue(m.HasField('oneof_bytes'))

  def testOneofCompositeFieldReadAccess(self, message_module):
    m = message_module.TestAllTypes()
    m.oneof_uint32 = 11

    self.ensureNestedMessageExists(m, 'oneof_nested_message')
    self.assertEqual('oneof_uint32', m.WhichOneof('oneof_field'))
    self.assertEqual(11, m.oneof_uint32)

  def testOneofWhichOneof(self, message_module):
    m = message_module.TestAllTypes()
    self.assertIs(None, m.WhichOneof('oneof_field'))
    if message_module is unittest_pb2:
      self.assertFalse(m.HasField('oneof_field'))

    m.oneof_uint32 = 11
    self.assertEqual('oneof_uint32', m.WhichOneof('oneof_field'))
    if message_module is unittest_pb2:
      self.assertTrue(m.HasField('oneof_field'))

    m.oneof_bytes = b'bb'
    self.assertEqual('oneof_bytes', m.WhichOneof('oneof_field'))

    m.ClearField('oneof_bytes')
    self.assertIs(None, m.WhichOneof('oneof_field'))
    if message_module is unittest_pb2:
      self.assertFalse(m.HasField('oneof_field'))

  def testOneofClearField(self, message_module):
    m = message_module.TestAllTypes()
    m.oneof_uint32 = 11
    m.ClearField('oneof_field')
    if message_module is unittest_pb2:
      self.assertFalse(m.HasField('oneof_field'))
    self.assertFalse(m.HasField('oneof_uint32'))
    self.assertIs(None, m.WhichOneof('oneof_field'))

  def testOneofClearSetField(self, message_module):
    m = message_module.TestAllTypes()
    m.oneof_uint32 = 11
    m.ClearField('oneof_uint32')
    if message_module is unittest_pb2:
      self.assertFalse(m.HasField('oneof_field'))
    self.assertFalse(m.HasField('oneof_uint32'))
    self.assertIs(None, m.WhichOneof('oneof_field'))

  def testOneofClearUnsetField(self, message_module):
    m = message_module.TestAllTypes()
    m.oneof_uint32 = 11
    self.ensureNestedMessageExists(m, 'oneof_nested_message')
    m.ClearField('oneof_nested_message')
    self.assertEqual(11, m.oneof_uint32)
    if message_module is unittest_pb2:
      self.assertTrue(m.HasField('oneof_field'))
    self.assertTrue(m.HasField('oneof_uint32'))
    self.assertEqual('oneof_uint32', m.WhichOneof('oneof_field'))

  def testOneofDeserialize(self, message_module):
    m = message_module.TestAllTypes()
    m.oneof_uint32 = 11
    m2 = message_module.TestAllTypes()
    m2.ParseFromString(m.SerializeToString())
    self.assertEqual('oneof_uint32', m2.WhichOneof('oneof_field'))

  def testOneofCopyFrom(self, message_module):
    m = message_module.TestAllTypes()
    m.oneof_uint32 = 11
    m2 = message_module.TestAllTypes()
    m2.CopyFrom(m)
    self.assertEqual('oneof_uint32', m2.WhichOneof('oneof_field'))

  def testOneofNestedMergeFrom(self, message_module):
    m = message_module.NestedTestAllTypes()
    m.payload.oneof_uint32 = 11
    m2 = message_module.NestedTestAllTypes()
    m2.payload.oneof_bytes = b'bb'
    m2.child.payload.oneof_bytes = b'bb'
    m2.MergeFrom(m)
    self.assertEqual('oneof_uint32', m2.payload.WhichOneof('oneof_field'))
    self.assertEqual('oneof_bytes', m2.child.payload.WhichOneof('oneof_field'))

  def testOneofMessageMergeFrom(self, message_module):
    m = message_module.NestedTestAllTypes()
    m.payload.oneof_nested_message.bb = 11
    m.child.payload.oneof_nested_message.bb = 12
    m2 = message_module.NestedTestAllTypes()
    m2.payload.oneof_uint32 = 13
    m2.MergeFrom(m)
    self.assertEqual('oneof_nested_message',
                     m2.payload.WhichOneof('oneof_field'))
    self.assertEqual('oneof_nested_message',
                     m2.child.payload.WhichOneof('oneof_field'))

  def testOneofNestedMessageInit(self, message_module):
    m = message_module.TestAllTypes(
        oneof_nested_message=message_module.TestAllTypes.NestedMessage())
    self.assertEqual('oneof_nested_message', m.WhichOneof('oneof_field'))

  def testOneofClear(self, message_module):
    m = message_module.TestAllTypes()
    m.oneof_uint32 = 11
    m.Clear()
    self.assertIsNone(m.WhichOneof('oneof_field'))
    m.oneof_bytes = b'bb'
    self.assertEqual('oneof_bytes', m.WhichOneof('oneof_field'))

  def testAssignByteStringToUnicodeField(self, message_module):
    """Assigning a byte string to a string field should result
    in the value being converted to a Unicode string."""
    m = message_module.TestAllTypes()
    m.optional_string = str('')
    self.assertIsInstance(m.optional_string, six.text_type)

  def testLongValuedSlice(self, message_module):
    """It should be possible to use long-valued indicies in slices

    This didn't used to work in the v2 C++ implementation.
    """
    m = message_module.TestAllTypes()

    # Repeated scalar
    m.repeated_int32.append(1)
    sl = m.repeated_int32[long(0):long(len(m.repeated_int32))]
    self.assertEqual(len(m.repeated_int32), len(sl))

    # Repeated composite
    m.repeated_nested_message.add().bb = 3
    sl = m.repeated_nested_message[long(0):long(len(m.repeated_nested_message))]
    self.assertEqual(len(m.repeated_nested_message), len(sl))

  def testExtendShouldNotSwallowExceptions(self, message_module):
    """This didn't use to work in the v2 C++ implementation."""
    m = message_module.TestAllTypes()
    with self.assertRaises(NameError) as _:
      m.repeated_int32.extend(a for i in range(10))  # pylint: disable=undefined-variable
    with self.assertRaises(NameError) as _:
      m.repeated_nested_enum.extend(
          a for i in range(10))  # pylint: disable=undefined-variable

  FALSY_VALUES = [None, False, 0, 0.0, b'', u'', bytearray(), [], {}, set()]

  def testExtendInt32WithNothing(self, message_module):
    """Test no-ops extending repeated int32 fields."""
    m = message_module.TestAllTypes()
    self.assertSequenceEqual([], m.repeated_int32)

    # TODO(ptucker): Deprecate this behavior. b/18413862
    for falsy_value in MessageTest.FALSY_VALUES:
      m.repeated_int32.extend(falsy_value)
      self.assertSequenceEqual([], m.repeated_int32)

    m.repeated_int32.extend([])
    self.assertSequenceEqual([], m.repeated_int32)

  def testExtendFloatWithNothing(self, message_module):
    """Test no-ops extending repeated float fields."""
    m = message_module.TestAllTypes()
    self.assertSequenceEqual([], m.repeated_float)

    # TODO(ptucker): Deprecate this behavior. b/18413862
    for falsy_value in MessageTest.FALSY_VALUES:
      m.repeated_float.extend(falsy_value)
      self.assertSequenceEqual([], m.repeated_float)

    m.repeated_float.extend([])
    self.assertSequenceEqual([], m.repeated_float)

  def testExtendStringWithNothing(self, message_module):
    """Test no-ops extending repeated string fields."""
    m = message_module.TestAllTypes()
    self.assertSequenceEqual([], m.repeated_string)

    # TODO(ptucker): Deprecate this behavior. b/18413862
    for falsy_value in MessageTest.FALSY_VALUES:
      m.repeated_string.extend(falsy_value)
      self.assertSequenceEqual([], m.repeated_string)

    m.repeated_string.extend([])
    self.assertSequenceEqual([], m.repeated_string)

  def testExtendInt32WithPythonList(self, message_module):
    """Test extending repeated int32 fields with python lists."""
    m = message_module.TestAllTypes()
    self.assertSequenceEqual([], m.repeated_int32)
    m.repeated_int32.extend([0])
    self.assertSequenceEqual([0], m.repeated_int32)
    m.repeated_int32.extend([1, 2])
    self.assertSequenceEqual([0, 1, 2], m.repeated_int32)
    m.repeated_int32.extend([3, 4])
    self.assertSequenceEqual([0, 1, 2, 3, 4], m.repeated_int32)

  def testExtendFloatWithPythonList(self, message_module):
    """Test extending repeated float fields with python lists."""
    m = message_module.TestAllTypes()
    self.assertSequenceEqual([], m.repeated_float)
    m.repeated_float.extend([0.0])
    self.assertSequenceEqual([0.0], m.repeated_float)
    m.repeated_float.extend([1.0, 2.0])
    self.assertSequenceEqual([0.0, 1.0, 2.0], m.repeated_float)
    m.repeated_float.extend([3.0, 4.0])
    self.assertSequenceEqual([0.0, 1.0, 2.0, 3.0, 4.0], m.repeated_float)

  def testExtendStringWithPythonList(self, message_module):
    """Test extending repeated string fields with python lists."""
    m = message_module.TestAllTypes()
    self.assertSequenceEqual([], m.repeated_string)
    m.repeated_string.extend([''])
    self.assertSequenceEqual([''], m.repeated_string)
    m.repeated_string.extend(['11', '22'])
    self.assertSequenceEqual(['', '11', '22'], m.repeated_string)
    m.repeated_string.extend(['33', '44'])
    self.assertSequenceEqual(['', '11', '22', '33', '44'], m.repeated_string)

  def testExtendStringWithString(self, message_module):
    """Test extending repeated string fields with characters from a string."""
    m = message_module.TestAllTypes()
    self.assertSequenceEqual([], m.repeated_string)
    m.repeated_string.extend('abc')
    self.assertSequenceEqual(['a', 'b', 'c'], m.repeated_string)

  class TestIterable(object):
    """This iterable object mimics the behavior of numpy.array.

    __nonzero__ fails for length > 1, and returns bool(item[0]) for length == 1.

    """

    def __init__(self, values=None):
      self._list = values or []

    def __nonzero__(self):
      size = len(self._list)
      if size == 0:
        return False
      if size == 1:
        return bool(self._list[0])
      raise ValueError('Truth value is ambiguous.')

    def __len__(self):
      return len(self._list)

    def __iter__(self):
      return self._list.__iter__()

  def testExtendInt32WithIterable(self, message_module):
    """Test extending repeated int32 fields with iterable."""
    m = message_module.TestAllTypes()
    self.assertSequenceEqual([], m.repeated_int32)
    m.repeated_int32.extend(MessageTest.TestIterable([]))
    self.assertSequenceEqual([], m.repeated_int32)
    m.repeated_int32.extend(MessageTest.TestIterable([0]))
    self.assertSequenceEqual([0], m.repeated_int32)
    m.repeated_int32.extend(MessageTest.TestIterable([1, 2]))
    self.assertSequenceEqual([0, 1, 2], m.repeated_int32)
    m.repeated_int32.extend(MessageTest.TestIterable([3, 4]))
    self.assertSequenceEqual([0, 1, 2, 3, 4], m.repeated_int32)

  def testExtendFloatWithIterable(self, message_module):
    """Test extending repeated float fields with iterable."""
    m = message_module.TestAllTypes()
    self.assertSequenceEqual([], m.repeated_float)
    m.repeated_float.extend(MessageTest.TestIterable([]))
    self.assertSequenceEqual([], m.repeated_float)
    m.repeated_float.extend(MessageTest.TestIterable([0.0]))
    self.assertSequenceEqual([0.0], m.repeated_float)
    m.repeated_float.extend(MessageTest.TestIterable([1.0, 2.0]))
    self.assertSequenceEqual([0.0, 1.0, 2.0], m.repeated_float)
    m.repeated_float.extend(MessageTest.TestIterable([3.0, 4.0]))
    self.assertSequenceEqual([0.0, 1.0, 2.0, 3.0, 4.0], m.repeated_float)

  def testExtendStringWithIterable(self, message_module):
    """Test extending repeated string fields with iterable."""
    m = message_module.TestAllTypes()
    self.assertSequenceEqual([], m.repeated_string)
    m.repeated_string.extend(MessageTest.TestIterable([]))
    self.assertSequenceEqual([], m.repeated_string)
    m.repeated_string.extend(MessageTest.TestIterable(['']))
    self.assertSequenceEqual([''], m.repeated_string)
    m.repeated_string.extend(MessageTest.TestIterable(['1', '2']))
    self.assertSequenceEqual(['', '1', '2'], m.repeated_string)
    m.repeated_string.extend(MessageTest.TestIterable(['3', '4']))
    self.assertSequenceEqual(['', '1', '2', '3', '4'], m.repeated_string)

  def testPickleRepeatedScalarContainer(self, message_module):
    # TODO(tibell): The pure-Python implementation support pickling of
    #   scalar containers in *some* cases. For now the cpp2 version
    #   throws an exception to avoid a segfault. Investigate if we
    #   want to support pickling of these fields.
    #
    # For more information see: https://b2.corp.google.com/u/0/issues/18677897
    if (api_implementation.Type() != 'cpp' or
        api_implementation.Version() == 2):
      return
    m = message_module.TestAllTypes()
    with self.assertRaises(pickle.PickleError) as _:
      pickle.dumps(m.repeated_int32, pickle.HIGHEST_PROTOCOL)

  def testSortEmptyRepeatedCompositeContainer(self, message_module):
    """Exercise a scenario that has led to segfaults in the past.
    """
    m = message_module.TestAllTypes()
    m.repeated_nested_message.sort()

  def testHasFieldOnRepeatedField(self, message_module):
    """Using HasField on a repeated field should raise an exception.
    """
    m = message_module.TestAllTypes()
    with self.assertRaises(ValueError) as _:
      m.HasField('repeated_int32')

  def testRepeatedScalarFieldPop(self, message_module):
    m = message_module.TestAllTypes()
    with self.assertRaises(IndexError) as _:
      m.repeated_int32.pop()
    m.repeated_int32.extend(range(5))
    self.assertEqual(4, m.repeated_int32.pop())
    self.assertEqual(0, m.repeated_int32.pop(0))
    self.assertEqual(2, m.repeated_int32.pop(1))
    self.assertEqual([1, 3], m.repeated_int32)

  def testRepeatedCompositeFieldPop(self, message_module):
    m = message_module.TestAllTypes()
    with self.assertRaises(IndexError) as _:
      m.repeated_nested_message.pop()
    with self.assertRaises(TypeError) as _:
      m.repeated_nested_message.pop('0')
    for i in range(5):
      n = m.repeated_nested_message.add()
      n.bb = i
    self.assertEqual(4, m.repeated_nested_message.pop().bb)
    self.assertEqual(0, m.repeated_nested_message.pop(0).bb)
    self.assertEqual(2, m.repeated_nested_message.pop(1).bb)
    self.assertEqual([1, 3], [n.bb for n in m.repeated_nested_message])

  def testRepeatedCompareWithSelf(self, message_module):
    m = message_module.TestAllTypes()
    for i in range(5):
      m.repeated_int32.insert(i, i)
      n = m.repeated_nested_message.add()
      n.bb = i
    self.assertSequenceEqual(m.repeated_int32, m.repeated_int32)
    self.assertEqual(m.repeated_nested_message, m.repeated_nested_message)

  def testReleasedNestedMessages(self, message_module):
    """A case that lead to a segfault when a message detached from its parent
    container has itself a child container.
    """
    m = message_module.NestedTestAllTypes()
    m = m.repeated_child.add()
    m = m.child
    m = m.repeated_child.add()
    self.assertEqual(m.payload.optional_int32, 0)

  def testSetRepeatedComposite(self, message_module):
    m = message_module.TestAllTypes()
    with self.assertRaises(AttributeError):
      m.repeated_int32 = []
    m.repeated_int32.append(1)
    if api_implementation.Type() == 'cpp':
      # For test coverage: cpp has a different path if composite
      # field is in cache
      with self.assertRaises(TypeError):
        m.repeated_int32 = []
    else:
      with self.assertRaises(AttributeError):
        m.repeated_int32 = []


# Class to test proto2-only features (required, extensions, etc.)
class Proto2Test(BaseTestCase):

  def testFieldPresence(self):
    message = unittest_pb2.TestAllTypes()

    self.assertFalse(message.HasField("optional_int32"))
    self.assertFalse(message.HasField("optional_bool"))
    self.assertFalse(message.HasField("optional_nested_message"))

    with self.assertRaises(ValueError):
      message.HasField("field_doesnt_exist")

    with self.assertRaises(ValueError):
      message.HasField("repeated_int32")
    with self.assertRaises(ValueError):
      message.HasField("repeated_nested_message")

    self.assertEqual(0, message.optional_int32)
    self.assertEqual(False, message.optional_bool)
    self.assertEqual(0, message.optional_nested_message.bb)

    # Fields are set even when setting the values to default values.
    message.optional_int32 = 0
    message.optional_bool = False
    message.optional_nested_message.bb = 0
    self.assertTrue(message.HasField("optional_int32"))
    self.assertTrue(message.HasField("optional_bool"))
    self.assertTrue(message.HasField("optional_nested_message"))

    # Set the fields to non-default values.
    message.optional_int32 = 5
    message.optional_bool = True
    message.optional_nested_message.bb = 15

    self.assertTrue(message.HasField("optional_int32"))
    self.assertTrue(message.HasField("optional_bool"))
    self.assertTrue(message.HasField("optional_nested_message"))

    # Clearing the fields unsets them and resets their value to default.
    message.ClearField("optional_int32")
    message.ClearField("optional_bool")
    message.ClearField("optional_nested_message")

    self.assertFalse(message.HasField("optional_int32"))
    self.assertFalse(message.HasField("optional_bool"))
    self.assertFalse(message.HasField("optional_nested_message"))
    self.assertEqual(0, message.optional_int32)
    self.assertEqual(False, message.optional_bool)
    self.assertEqual(0, message.optional_nested_message.bb)

  def testAssignInvalidEnum(self):
    """Assigning an invalid enum number is not allowed in proto2."""
    m = unittest_pb2.TestAllTypes()

    # Proto2 can not assign unknown enum.
    with self.assertRaises(ValueError) as _:
      m.optional_nested_enum = 1234567
    self.assertRaises(ValueError, m.repeated_nested_enum.append, 1234567)
    # Assignment is a different code path than append for the C++ impl.
    m.repeated_nested_enum.append(2)
    m.repeated_nested_enum[0] = 2
    with self.assertRaises(ValueError):
      m.repeated_nested_enum[0] = 123456

    # Unknown enum value can be parsed but is ignored.
    m2 = unittest_proto3_arena_pb2.TestAllTypes()
    m2.optional_nested_enum = 1234567
    m2.repeated_nested_enum.append(7654321)
    serialized = m2.SerializeToString()

    m3 = unittest_pb2.TestAllTypes()
    m3.ParseFromString(serialized)
    self.assertFalse(m3.HasField('optional_nested_enum'))
    # 1 is the default value for optional_nested_enum.
    self.assertEqual(1, m3.optional_nested_enum)
    self.assertEqual(0, len(m3.repeated_nested_enum))
    m2.Clear()
    m2.ParseFromString(m3.SerializeToString())
    self.assertEqual(1234567, m2.optional_nested_enum)
    self.assertEqual(7654321, m2.repeated_nested_enum[0])

  def testUnknownEnumMap(self):
    m = map_proto2_unittest_pb2.TestEnumMap()
    m.known_map_field[123] = 0
    with self.assertRaises(ValueError):
      m.unknown_map_field[1] = 123

  def testExtensionsErrors(self):
    msg = unittest_pb2.TestAllTypes()
    self.assertRaises(AttributeError, getattr, msg, 'Extensions')

  def testGoldenExtensions(self):
    golden_data = test_util.GoldenFileData('golden_message')
    golden_message = unittest_pb2.TestAllExtensions()
    golden_message.ParseFromString(golden_data)
    all_set = unittest_pb2.TestAllExtensions()
    test_util.SetAllExtensions(all_set)
    self.assertEqual(all_set, golden_message)
    self.assertEqual(golden_data, golden_message.SerializeToString())
    golden_copy = copy.deepcopy(golden_message)
    self.assertEqual(golden_data, golden_copy.SerializeToString())

  def testGoldenPackedExtensions(self):
    golden_data = test_util.GoldenFileData('golden_packed_fields_message')
    golden_message = unittest_pb2.TestPackedExtensions()
    golden_message.ParseFromString(golden_data)
    all_set = unittest_pb2.TestPackedExtensions()
    test_util.SetAllPackedExtensions(all_set)
    self.assertEqual(all_set, golden_message)
    self.assertEqual(golden_data, all_set.SerializeToString())
    golden_copy = copy.deepcopy(golden_message)
    self.assertEqual(golden_data, golden_copy.SerializeToString())

  def testPickleIncompleteProto(self):
    golden_message = unittest_pb2.TestRequired(a=1)
    pickled_message = pickle.dumps(golden_message)

    unpickled_message = pickle.loads(pickled_message)
    self.assertEqual(unpickled_message, golden_message)
    self.assertEqual(unpickled_message.a, 1)
    # This is still an incomplete proto - so serializing should fail
    self.assertRaises(message.EncodeError, unpickled_message.SerializeToString)


  # TODO(haberman): this isn't really a proto2-specific test except that this
  # message has a required field in it.  Should probably be factored out so
  # that we can test the other parts with proto3.
  def testParsingMerge(self):
    """Check the merge behavior when a required or optional field appears
    multiple times in the input."""
    messages = [
        unittest_pb2.TestAllTypes(),
        unittest_pb2.TestAllTypes(),
        unittest_pb2.TestAllTypes() ]
    messages[0].optional_int32 = 1
    messages[1].optional_int64 = 2
    messages[2].optional_int32 = 3
    messages[2].optional_string = 'hello'

    merged_message = unittest_pb2.TestAllTypes()
    merged_message.optional_int32 = 3
    merged_message.optional_int64 = 2
    merged_message.optional_string = 'hello'

    generator = unittest_pb2.TestParsingMerge.RepeatedFieldsGenerator()
    generator.field1.extend(messages)
    generator.field2.extend(messages)
    generator.field3.extend(messages)
    generator.ext1.extend(messages)
    generator.ext2.extend(messages)
    generator.group1.add().field1.MergeFrom(messages[0])
    generator.group1.add().field1.MergeFrom(messages[1])
    generator.group1.add().field1.MergeFrom(messages[2])
    generator.group2.add().field1.MergeFrom(messages[0])
    generator.group2.add().field1.MergeFrom(messages[1])
    generator.group2.add().field1.MergeFrom(messages[2])

    data = generator.SerializeToString()
    parsing_merge = unittest_pb2.TestParsingMerge()
    parsing_merge.ParseFromString(data)

    # Required and optional fields should be merged.
    self.assertEqual(parsing_merge.required_all_types, merged_message)
    self.assertEqual(parsing_merge.optional_all_types, merged_message)
    self.assertEqual(parsing_merge.optionalgroup.optional_group_all_types,
                     merged_message)
    self.assertEqual(parsing_merge.Extensions[
                     unittest_pb2.TestParsingMerge.optional_ext],
                     merged_message)

    # Repeated fields should not be merged.
    self.assertEqual(len(parsing_merge.repeated_all_types), 3)
    self.assertEqual(len(parsing_merge.repeatedgroup), 3)
    self.assertEqual(len(parsing_merge.Extensions[
        unittest_pb2.TestParsingMerge.repeated_ext]), 3)

  def testPythonicInit(self):
    message = unittest_pb2.TestAllTypes(
        optional_int32=100,
        optional_fixed32=200,
        optional_float=300.5,
        optional_bytes=b'x',
        optionalgroup={'a': 400},
        optional_nested_message={'bb': 500},
        optional_foreign_message={},
        optional_nested_enum='BAZ',
        repeatedgroup=[{'a': 600},
                       {'a': 700}],
        repeated_nested_enum=['FOO', unittest_pb2.TestAllTypes.BAR],
        default_int32=800,
        oneof_string='y')
    self.assertIsInstance(message, unittest_pb2.TestAllTypes)
    self.assertEqual(100, message.optional_int32)
    self.assertEqual(200, message.optional_fixed32)
    self.assertEqual(300.5, message.optional_float)
    self.assertEqual(b'x', message.optional_bytes)
    self.assertEqual(400, message.optionalgroup.a)
    self.assertIsInstance(message.optional_nested_message,
                          unittest_pb2.TestAllTypes.NestedMessage)
    self.assertEqual(500, message.optional_nested_message.bb)
    self.assertTrue(message.HasField('optional_foreign_message'))
    self.assertEqual(message.optional_foreign_message,
                     unittest_pb2.ForeignMessage())
    self.assertEqual(unittest_pb2.TestAllTypes.BAZ,
                     message.optional_nested_enum)
    self.assertEqual(2, len(message.repeatedgroup))
    self.assertEqual(600, message.repeatedgroup[0].a)
    self.assertEqual(700, message.repeatedgroup[1].a)
    self.assertEqual(2, len(message.repeated_nested_enum))
    self.assertEqual(unittest_pb2.TestAllTypes.FOO,
                     message.repeated_nested_enum[0])
    self.assertEqual(unittest_pb2.TestAllTypes.BAR,
                     message.repeated_nested_enum[1])
    self.assertEqual(800, message.default_int32)
    self.assertEqual('y', message.oneof_string)
    self.assertFalse(message.HasField('optional_int64'))
    self.assertEqual(0, len(message.repeated_float))
    self.assertEqual(42, message.default_int64)

    message = unittest_pb2.TestAllTypes(optional_nested_enum=u'BAZ')
    self.assertEqual(unittest_pb2.TestAllTypes.BAZ,
                     message.optional_nested_enum)

    with self.assertRaises(ValueError):
      unittest_pb2.TestAllTypes(
          optional_nested_message={'INVALID_NESTED_FIELD': 17})

    with self.assertRaises(TypeError):
      unittest_pb2.TestAllTypes(
          optional_nested_message={'bb': 'INVALID_VALUE_TYPE'})

    with self.assertRaises(ValueError):
      unittest_pb2.TestAllTypes(optional_nested_enum='INVALID_LABEL')

    with self.assertRaises(ValueError):
      unittest_pb2.TestAllTypes(repeated_nested_enum='FOO')



# Class to test proto3-only features/behavior (updated field presence & enums)
class Proto3Test(BaseTestCase):

  # Utility method for comparing equality with a map.
  def assertMapIterEquals(self, map_iter, dict_value):
    # Avoid mutating caller's copy.
    dict_value = dict(dict_value)

    for k, v in map_iter:
      self.assertEqual(v, dict_value[k])
      del dict_value[k]

    self.assertEqual({}, dict_value)

  def testFieldPresence(self):
    message = unittest_proto3_arena_pb2.TestAllTypes()

    # We can't test presence of non-repeated, non-submessage fields.
    with self.assertRaises(ValueError):
      message.HasField('optional_int32')
    with self.assertRaises(ValueError):
      message.HasField('optional_float')
    with self.assertRaises(ValueError):
      message.HasField('optional_string')
    with self.assertRaises(ValueError):
      message.HasField('optional_bool')

    # But we can still test presence of submessage fields.
    self.assertFalse(message.HasField('optional_nested_message'))

    # As with proto2, we can't test presence of fields that don't exist, or
    # repeated fields.
    with self.assertRaises(ValueError):
      message.HasField('field_doesnt_exist')

    with self.assertRaises(ValueError):
      message.HasField('repeated_int32')
    with self.assertRaises(ValueError):
      message.HasField('repeated_nested_message')

    # Fields should default to their type-specific default.
    self.assertEqual(0, message.optional_int32)
    self.assertEqual(0, message.optional_float)
    self.assertEqual('', message.optional_string)
    self.assertEqual(False, message.optional_bool)
    self.assertEqual(0, message.optional_nested_message.bb)

    # Setting a submessage should still return proper presence information.
    message.optional_nested_message.bb = 0
    self.assertTrue(message.HasField('optional_nested_message'))

    # Set the fields to non-default values.
    message.optional_int32 = 5
    message.optional_float = 1.1
    message.optional_string = 'abc'
    message.optional_bool = True
    message.optional_nested_message.bb = 15

    # Clearing the fields unsets them and resets their value to default.
    message.ClearField('optional_int32')
    message.ClearField('optional_float')
    message.ClearField('optional_string')
    message.ClearField('optional_bool')
    message.ClearField('optional_nested_message')

    self.assertEqual(0, message.optional_int32)
    self.assertEqual(0, message.optional_float)
    self.assertEqual('', message.optional_string)
    self.assertEqual(False, message.optional_bool)
    self.assertEqual(0, message.optional_nested_message.bb)

  def testAssignUnknownEnum(self):
    """Assigning an unknown enum value is allowed and preserves the value."""
    m = unittest_proto3_arena_pb2.TestAllTypes()

    # Proto3 can assign unknown enums.
    m.optional_nested_enum = 1234567
    self.assertEqual(1234567, m.optional_nested_enum)
    m.repeated_nested_enum.append(22334455)
    self.assertEqual(22334455, m.repeated_nested_enum[0])
    # Assignment is a different code path than append for the C++ impl.
    m.repeated_nested_enum[0] = 7654321
    self.assertEqual(7654321, m.repeated_nested_enum[0])
    serialized = m.SerializeToString()

    m2 = unittest_proto3_arena_pb2.TestAllTypes()
    m2.ParseFromString(serialized)
    self.assertEqual(1234567, m2.optional_nested_enum)
    self.assertEqual(7654321, m2.repeated_nested_enum[0])

  # Map isn't really a proto3-only feature. But there is no proto2 equivalent
  # of google/protobuf/map_unittest.proto right now, so it's not easy to
  # test both with the same test like we do for the other proto2/proto3 tests.
  # (google/protobuf/map_proto2_unittest.proto is very different in the set
  # of messages and fields it contains).
  def testScalarMapDefaults(self):
    msg = map_unittest_pb2.TestMap()

    # Scalars start out unset.
    self.assertFalse(-123 in msg.map_int32_int32)
    self.assertFalse(-2**33 in msg.map_int64_int64)
    self.assertFalse(123 in msg.map_uint32_uint32)
    self.assertFalse(2**33 in msg.map_uint64_uint64)
    self.assertFalse(123 in msg.map_int32_double)
    self.assertFalse(False in msg.map_bool_bool)
    self.assertFalse('abc' in msg.map_string_string)
    self.assertFalse(111 in msg.map_int32_bytes)
    self.assertFalse(888 in msg.map_int32_enum)

    # Accessing an unset key returns the default.
    self.assertEqual(0, msg.map_int32_int32[-123])
    self.assertEqual(0, msg.map_int64_int64[-2**33])
    self.assertEqual(0, msg.map_uint32_uint32[123])
    self.assertEqual(0, msg.map_uint64_uint64[2**33])
    self.assertEqual(0.0, msg.map_int32_double[123])
    self.assertTrue(isinstance(msg.map_int32_double[123], float))
    self.assertEqual(False, msg.map_bool_bool[False])
    self.assertTrue(isinstance(msg.map_bool_bool[False], bool))
    self.assertEqual('', msg.map_string_string['abc'])
    self.assertEqual(b'', msg.map_int32_bytes[111])
    self.assertEqual(0, msg.map_int32_enum[888])

    # It also sets the value in the map
    self.assertTrue(-123 in msg.map_int32_int32)
    self.assertTrue(-2**33 in msg.map_int64_int64)
    self.assertTrue(123 in msg.map_uint32_uint32)
    self.assertTrue(2**33 in msg.map_uint64_uint64)
    self.assertTrue(123 in msg.map_int32_double)
    self.assertTrue(False in msg.map_bool_bool)
    self.assertTrue('abc' in msg.map_string_string)
    self.assertTrue(111 in msg.map_int32_bytes)
    self.assertTrue(888 in msg.map_int32_enum)

    self.assertIsInstance(msg.map_string_string['abc'], six.text_type)

    # Accessing an unset key still throws TypeError if the type of the key
    # is incorrect.
    with self.assertRaises(TypeError):
      msg.map_string_string[123]

    with self.assertRaises(TypeError):
      123 in msg.map_string_string

  def testMapGet(self):
    # Need to test that get() properly returns the default, even though the dict
    # has defaultdict-like semantics.
    msg = map_unittest_pb2.TestMap()

    self.assertIsNone(msg.map_int32_int32.get(5))
    self.assertEqual(10, msg.map_int32_int32.get(5, 10))
    self.assertIsNone(msg.map_int32_int32.get(5))

    msg.map_int32_int32[5] = 15
    self.assertEqual(15, msg.map_int32_int32.get(5))
    self.assertEqual(15, msg.map_int32_int32.get(5))
    with self.assertRaises(TypeError):
      msg.map_int32_int32.get('')

    self.assertIsNone(msg.map_int32_foreign_message.get(5))
    self.assertEqual(10, msg.map_int32_foreign_message.get(5, 10))

    submsg = msg.map_int32_foreign_message[5]
    self.assertIs(submsg, msg.map_int32_foreign_message.get(5))
    # TODO(jieluo): Fix python and cpp extension diff.
    if api_implementation.Type() == 'cpp':
      with self.assertRaises(TypeError):
        msg.map_int32_foreign_message.get('')
    else:
      self.assertEqual(None, msg.map_int32_foreign_message.get(''))

  def testScalarMap(self):
    msg = map_unittest_pb2.TestMap()

    self.assertEqual(0, len(msg.map_int32_int32))
    self.assertFalse(5 in msg.map_int32_int32)

    msg.map_int32_int32[-123] = -456
    msg.map_int64_int64[-2**33] = -2**34
    msg.map_uint32_uint32[123] = 456
    msg.map_uint64_uint64[2**33] = 2**34
    msg.map_int32_float[2] = 1.2
    msg.map_int32_double[1] = 3.3
    msg.map_string_string['abc'] = '123'
    msg.map_bool_bool[True] = True
    msg.map_int32_enum[888] = 2
    # Unknown numeric enum is supported in proto3.
    msg.map_int32_enum[123] = 456

    self.assertEqual([], msg.FindInitializationErrors())

    self.assertEqual(1, len(msg.map_string_string))

    # Bad key.
    with self.assertRaises(TypeError):
      msg.map_string_string[123] = '123'

    # Verify that trying to assign a bad key doesn't actually add a member to
    # the map.
    self.assertEqual(1, len(msg.map_string_string))

    # Bad value.
    with self.assertRaises(TypeError):
      msg.map_string_string['123'] = 123

    serialized = msg.SerializeToString()
    msg2 = map_unittest_pb2.TestMap()
    msg2.ParseFromString(serialized)

    # Bad key.
    with self.assertRaises(TypeError):
      msg2.map_string_string[123] = '123'

    # Bad value.
    with self.assertRaises(TypeError):
      msg2.map_string_string['123'] = 123

    self.assertEqual(-456, msg2.map_int32_int32[-123])
    self.assertEqual(-2**34, msg2.map_int64_int64[-2**33])
    self.assertEqual(456, msg2.map_uint32_uint32[123])
    self.assertEqual(2**34, msg2.map_uint64_uint64[2**33])
    self.assertAlmostEqual(1.2, msg.map_int32_float[2])
    self.assertEqual(3.3, msg.map_int32_double[1])
    self.assertEqual('123', msg2.map_string_string['abc'])
    self.assertEqual(True, msg2.map_bool_bool[True])
    self.assertEqual(2, msg2.map_int32_enum[888])
    self.assertEqual(456, msg2.map_int32_enum[123])
    # TODO(jieluo): Add cpp extension support.
    if api_implementation.Type() == 'python':
      self.assertEqual('{-123: -456}',
                       str(msg2.map_int32_int32))

  def testMapEntryAlwaysSerialized(self):
    msg = map_unittest_pb2.TestMap()
    msg.map_int32_int32[0] = 0
    msg.map_string_string[''] = ''
    self.assertEqual(msg.ByteSize(), 12)
    self.assertEqual(b'\n\x04\x08\x00\x10\x00r\x04\n\x00\x12\x00',
                     msg.SerializeToString())

  def testStringUnicodeConversionInMap(self):
    msg = map_unittest_pb2.TestMap()

    unicode_obj = u'\u1234'
    bytes_obj = unicode_obj.encode('utf8')

    msg.map_string_string[bytes_obj] = bytes_obj

    (key, value) = list(msg.map_string_string.items())[0]

    self.assertEqual(key, unicode_obj)
    self.assertEqual(value, unicode_obj)

    self.assertIsInstance(key, six.text_type)
    self.assertIsInstance(value, six.text_type)

  def testMessageMap(self):
    msg = map_unittest_pb2.TestMap()

    self.assertEqual(0, len(msg.map_int32_foreign_message))
    self.assertFalse(5 in msg.map_int32_foreign_message)

    msg.map_int32_foreign_message[123]
    # get_or_create() is an alias for getitem.
    msg.map_int32_foreign_message.get_or_create(-456)

    self.assertEqual(2, len(msg.map_int32_foreign_message))
    self.assertIn(123, msg.map_int32_foreign_message)
    self.assertIn(-456, msg.map_int32_foreign_message)
    self.assertEqual(2, len(msg.map_int32_foreign_message))

    # Bad key.
    with self.assertRaises(TypeError):
      msg.map_int32_foreign_message['123']

    # Can't assign directly to submessage.
    with self.assertRaises(ValueError):
      msg.map_int32_foreign_message[999] = msg.map_int32_foreign_message[123]

    # Verify that trying to assign a bad key doesn't actually add a member to
    # the map.
    self.assertEqual(2, len(msg.map_int32_foreign_message))

    serialized = msg.SerializeToString()
    msg2 = map_unittest_pb2.TestMap()
    msg2.ParseFromString(serialized)

    self.assertEqual(2, len(msg2.map_int32_foreign_message))
    self.assertIn(123, msg2.map_int32_foreign_message)
    self.assertIn(-456, msg2.map_int32_foreign_message)
    self.assertEqual(2, len(msg2.map_int32_foreign_message))
    # TODO(jieluo): Fix text format for message map.
    # TODO(jieluo): Add cpp extension support.
    if api_implementation.Type() == 'python':
      self.assertEqual(15,
                       len(str(msg2.map_int32_foreign_message)))

  def testNestedMessageMapItemDelete(self):
    msg = map_unittest_pb2.TestMap()
    msg.map_int32_all_types[1].optional_nested_message.bb = 1
    del msg.map_int32_all_types[1]
    msg.map_int32_all_types[2].optional_nested_message.bb = 2
    self.assertEqual(1, len(msg.map_int32_all_types))
    msg.map_int32_all_types[1].optional_nested_message.bb = 1
    self.assertEqual(2, len(msg.map_int32_all_types))

    serialized = msg.SerializeToString()
    msg2 = map_unittest_pb2.TestMap()
    msg2.ParseFromString(serialized)
    keys = [1, 2]
    # The loop triggers PyErr_Occurred() in c extension.
    for key in keys:
      del msg2.map_int32_all_types[key]

  def testMapByteSize(self):
    msg = map_unittest_pb2.TestMap()
    msg.map_int32_int32[1] = 1
    size = msg.ByteSize()
    msg.map_int32_int32[1] = 128
    self.assertEqual(msg.ByteSize(), size + 1)

    msg.map_int32_foreign_message[19].c = 1
    size = msg.ByteSize()
    msg.map_int32_foreign_message[19].c = 128
    self.assertEqual(msg.ByteSize(), size + 1)

  def testMergeFrom(self):
    msg = map_unittest_pb2.TestMap()
    msg.map_int32_int32[12] = 34
    msg.map_int32_int32[56] = 78
    msg.map_int64_int64[22] = 33
    msg.map_int32_foreign_message[111].c = 5
    msg.map_int32_foreign_message[222].c = 10

    msg2 = map_unittest_pb2.TestMap()
    msg2.map_int32_int32[12] = 55
    msg2.map_int64_int64[88] = 99
    msg2.map_int32_foreign_message[222].c = 15
    msg2.map_int32_foreign_message[222].d = 20
    old_map_value = msg2.map_int32_foreign_message[222]

    msg2.MergeFrom(msg)

    self.assertEqual(34, msg2.map_int32_int32[12])
    self.assertEqual(78, msg2.map_int32_int32[56])
    self.assertEqual(33, msg2.map_int64_int64[22])
    self.assertEqual(99, msg2.map_int64_int64[88])
    self.assertEqual(5, msg2.map_int32_foreign_message[111].c)
    self.assertEqual(10, msg2.map_int32_foreign_message[222].c)
    self.assertFalse(msg2.map_int32_foreign_message[222].HasField('d'))
    if api_implementation.Type() != 'cpp':
      # During the call to MergeFrom(), the C++ implementation will have
      # deallocated the underlying message, but this is very difficult to detect
      # properly. The line below is likely to cause a segmentation fault.
      # With the Python implementation, old_map_value is just 'detached' from
      # the main message. Using it will not crash of course, but since it still
      # have a reference to the parent message I'm sure we can find interesting
      # ways to cause inconsistencies.
      self.assertEqual(15, old_map_value.c)

    # Verify that there is only one entry per key, even though the MergeFrom
    # may have internally created multiple entries for a single key in the
    # list representation.
    as_dict = {}
    for key in msg2.map_int32_foreign_message:
      self.assertFalse(key in as_dict)
      as_dict[key] = msg2.map_int32_foreign_message[key].c

    self.assertEqual({111: 5, 222: 10}, as_dict)

    # Special case: test that delete of item really removes the item, even if
    # there might have physically been duplicate keys due to the previous merge.
    # This is only a special case for the C++ implementation which stores the
    # map as an array.
    del msg2.map_int32_int32[12]
    self.assertFalse(12 in msg2.map_int32_int32)

    del msg2.map_int32_foreign_message[222]
    self.assertFalse(222 in msg2.map_int32_foreign_message)
    if api_implementation.Type() == 'cpp':
      with self.assertRaises(TypeError):
        del msg2.map_int32_foreign_message['']
    else:
      with self.assertRaises(KeyError):
        del msg2.map_int32_foreign_message['']

  def testMergeFromBadType(self):
    msg = map_unittest_pb2.TestMap()
    with self.assertRaisesRegexp(
        TypeError,
        r'Parameter to MergeFrom\(\) must be instance of same class: expected '
        r'.*TestMap got int\.'):
      msg.MergeFrom(1)

  def testCopyFromBadType(self):
    msg = map_unittest_pb2.TestMap()
    with self.assertRaisesRegexp(
        TypeError,
        r'Parameter to [A-Za-z]*From\(\) must be instance of same class: '
        r'expected .*TestMap got int\.'):
      msg.CopyFrom(1)

  def testIntegerMapWithLongs(self):
    msg = map_unittest_pb2.TestMap()
    msg.map_int32_int32[long(-123)] = long(-456)
    msg.map_int64_int64[long(-2**33)] = long(-2**34)
    msg.map_uint32_uint32[long(123)] = long(456)
    msg.map_uint64_uint64[long(2**33)] = long(2**34)

    serialized = msg.SerializeToString()
    msg2 = map_unittest_pb2.TestMap()
    msg2.ParseFromString(serialized)

    self.assertEqual(-456, msg2.map_int32_int32[-123])
    self.assertEqual(-2**34, msg2.map_int64_int64[-2**33])
    self.assertEqual(456, msg2.map_uint32_uint32[123])
    self.assertEqual(2**34, msg2.map_uint64_uint64[2**33])

  def testMapAssignmentCausesPresence(self):
    msg = map_unittest_pb2.TestMapSubmessage()
    msg.test_map.map_int32_int32[123] = 456

    serialized = msg.SerializeToString()
    msg2 = map_unittest_pb2.TestMapSubmessage()
    msg2.ParseFromString(serialized)

    self.assertEqual(msg, msg2)

    # Now test that various mutations of the map properly invalidate the
    # cached size of the submessage.
    msg.test_map.map_int32_int32[888] = 999
    serialized = msg.SerializeToString()
    msg2.ParseFromString(serialized)
    self.assertEqual(msg, msg2)

    msg.test_map.map_int32_int32.clear()
    serialized = msg.SerializeToString()
    msg2.ParseFromString(serialized)
    self.assertEqual(msg, msg2)

  def testMapAssignmentCausesPresenceForSubmessages(self):
    msg = map_unittest_pb2.TestMapSubmessage()
    msg.test_map.map_int32_foreign_message[123].c = 5

    serialized = msg.SerializeToString()
    msg2 = map_unittest_pb2.TestMapSubmessage()
    msg2.ParseFromString(serialized)

    self.assertEqual(msg, msg2)

    # Now test that various mutations of the map properly invalidate the
    # cached size of the submessage.
    msg.test_map.map_int32_foreign_message[888].c = 7
    serialized = msg.SerializeToString()
    msg2.ParseFromString(serialized)
    self.assertEqual(msg, msg2)

    msg.test_map.map_int32_foreign_message[888].MergeFrom(
        msg.test_map.map_int32_foreign_message[123])
    serialized = msg.SerializeToString()
    msg2.ParseFromString(serialized)
    self.assertEqual(msg, msg2)

    msg.test_map.map_int32_foreign_message.clear()
    serialized = msg.SerializeToString()
    msg2.ParseFromString(serialized)
    self.assertEqual(msg, msg2)

  def testModifyMapWhileIterating(self):
    msg = map_unittest_pb2.TestMap()

    string_string_iter = iter(msg.map_string_string)
    int32_foreign_iter = iter(msg.map_int32_foreign_message)

    msg.map_string_string['abc'] = '123'
    msg.map_int32_foreign_message[5].c = 5

    with self.assertRaises(RuntimeError):
      for key in string_string_iter:
        pass

    with self.assertRaises(RuntimeError):
      for key in int32_foreign_iter:
        pass

  def testSubmessageMap(self):
    msg = map_unittest_pb2.TestMap()

    submsg = msg.map_int32_foreign_message[111]
    self.assertIs(submsg, msg.map_int32_foreign_message[111])
    self.assertIsInstance(submsg, unittest_pb2.ForeignMessage)

    submsg.c = 5

    serialized = msg.SerializeToString()
    msg2 = map_unittest_pb2.TestMap()
    msg2.ParseFromString(serialized)

    self.assertEqual(5, msg2.map_int32_foreign_message[111].c)

    # Doesn't allow direct submessage assignment.
    with self.assertRaises(ValueError):
      msg.map_int32_foreign_message[88] = unittest_pb2.ForeignMessage()

  def testMapIteration(self):
    msg = map_unittest_pb2.TestMap()

    for k, v in msg.map_int32_int32.items():
      # Should not be reached.
      self.assertTrue(False)

    msg.map_int32_int32[2] = 4
    msg.map_int32_int32[3] = 6
    msg.map_int32_int32[4] = 8
    self.assertEqual(3, len(msg.map_int32_int32))

    matching_dict = {2: 4, 3: 6, 4: 8}
    self.assertMapIterEquals(msg.map_int32_int32.items(), matching_dict)

  def testPython2Map(self):
    if sys.version_info < (3,):
      msg = map_unittest_pb2.TestMap()
      msg.map_int32_int32[2] = 4
      msg.map_int32_int32[3] = 6
      msg.map_int32_int32[4] = 8
      msg.map_int32_int32[5] = 10
      map_int32 = msg.map_int32_int32
      self.assertEqual(4, len(map_int32))
      msg2 = map_unittest_pb2.TestMap()
      msg2.ParseFromString(msg.SerializeToString())

      def CheckItems(seq, iterator):
        self.assertEqual(next(iterator), seq[0])
        self.assertEqual(list(iterator), seq[1:])

      CheckItems(map_int32.items(), map_int32.iteritems())
      CheckItems(map_int32.keys(), map_int32.iterkeys())
      CheckItems(map_int32.values(), map_int32.itervalues())

      self.assertEqual(6, map_int32.get(3))
      self.assertEqual(None, map_int32.get(999))
      self.assertEqual(6, map_int32.pop(3))
      self.assertEqual(0, map_int32.pop(3))
      self.assertEqual(3, len(map_int32))
      key, value = map_int32.popitem()
      self.assertEqual(2 * key, value)
      self.assertEqual(2, len(map_int32))
      map_int32.clear()
      self.assertEqual(0, len(map_int32))

      with self.assertRaises(KeyError):
        map_int32.popitem()

      self.assertEqual(0, map_int32.setdefault(2))
      self.assertEqual(1, len(map_int32))

      map_int32.update(msg2.map_int32_int32)
      self.assertEqual(4, len(map_int32))

      with self.assertRaises(TypeError):
        map_int32.update(msg2.map_int32_int32,
                         msg2.map_int32_int32)
      with self.assertRaises(TypeError):
        map_int32.update(0)
      with self.assertRaises(TypeError):
        map_int32.update(value=12)

  def testMapItems(self):
    # Map items used to have strange behaviors when use c extension. Because
    # [] may reorder the map and invalidate any exsting iterators.
    # TODO(jieluo): Check if [] reordering the map is a bug or intended
    # behavior.
    msg = map_unittest_pb2.TestMap()
    msg.map_string_string['local_init_op'] = ''
    msg.map_string_string['trainable_variables'] = ''
    msg.map_string_string['variables'] = ''
    msg.map_string_string['init_op'] = ''
    msg.map_string_string['summaries'] = ''
    items1 = msg.map_string_string.items()
    items2 = msg.map_string_string.items()
    self.assertEqual(items1, items2)

  def testMapDeterministicSerialization(self):
    golden_data = (b'r\x0c\n\x07init_op\x12\x01d'
                   b'r\n\n\x05item1\x12\x01e'
                   b'r\n\n\x05item2\x12\x01f'
                   b'r\n\n\x05item3\x12\x01g'
                   b'r\x0b\n\x05item4\x12\x02QQ'
                   b'r\x12\n\rlocal_init_op\x12\x01a'
                   b'r\x0e\n\tsummaries\x12\x01e'
                   b'r\x18\n\x13trainable_variables\x12\x01b'
                   b'r\x0e\n\tvariables\x12\x01c')
    msg = map_unittest_pb2.TestMap()
    msg.map_string_string['local_init_op'] = 'a'
    msg.map_string_string['trainable_variables'] = 'b'
    msg.map_string_string['variables'] = 'c'
    msg.map_string_string['init_op'] = 'd'
    msg.map_string_string['summaries'] = 'e'
    msg.map_string_string['item1'] = 'e'
    msg.map_string_string['item2'] = 'f'
    msg.map_string_string['item3'] = 'g'
    msg.map_string_string['item4'] = 'QQ'

    # If deterministic serialization is not working correctly, this will be
    # "flaky" depending on the exact python dict hash seed.
    #
    # Fortunately, there are enough items in this map that it is extremely
    # unlikely to ever hit the "right" in-order combination, so the test
    # itself should fail reliably.
    self.assertEqual(golden_data, msg.SerializeToString(deterministic=True))

  def testMapIterationClearMessage(self):
    # Iterator needs to work even if message and map are deleted.
    msg = map_unittest_pb2.TestMap()

    msg.map_int32_int32[2] = 4
    msg.map_int32_int32[3] = 6
    msg.map_int32_int32[4] = 8

    it = msg.map_int32_int32.items()
    del msg

    matching_dict = {2: 4, 3: 6, 4: 8}
    self.assertMapIterEquals(it, matching_dict)

  def testMapConstruction(self):
    msg = map_unittest_pb2.TestMap(map_int32_int32={1: 2, 3: 4})
    self.assertEqual(2, msg.map_int32_int32[1])
    self.assertEqual(4, msg.map_int32_int32[3])

    msg = map_unittest_pb2.TestMap(
        map_int32_foreign_message={3: unittest_pb2.ForeignMessage(c=5)})
    self.assertEqual(5, msg.map_int32_foreign_message[3].c)

  def testMapValidAfterFieldCleared(self):
    # Map needs to work even if field is cleared.
    # For the C++ implementation this tests the correctness of
    # ScalarMapContainer::Release()
    msg = map_unittest_pb2.TestMap()
    int32_map = msg.map_int32_int32

    int32_map[2] = 4
    int32_map[3] = 6
    int32_map[4] = 8

    msg.ClearField('map_int32_int32')
    self.assertEqual(b'', msg.SerializeToString())
    matching_dict = {2: 4, 3: 6, 4: 8}
    self.assertMapIterEquals(int32_map.items(), matching_dict)

  def testMessageMapValidAfterFieldCleared(self):
    # Map needs to work even if field is cleared.
    # For the C++ implementation this tests the correctness of
    # ScalarMapContainer::Release()
    msg = map_unittest_pb2.TestMap()
    int32_foreign_message = msg.map_int32_foreign_message

    int32_foreign_message[2].c = 5

    msg.ClearField('map_int32_foreign_message')
    self.assertEqual(b'', msg.SerializeToString())
    self.assertTrue(2 in int32_foreign_message.keys())

  def testMapIterInvalidatedByClearField(self):
    # Map iterator is invalidated when field is cleared.
    # But this case does need to not crash the interpreter.
    # For the C++ implementation this tests the correctness of
    # ScalarMapContainer::Release()
    msg = map_unittest_pb2.TestMap()

    it = iter(msg.map_int32_int32)

    msg.ClearField('map_int32_int32')
    with self.assertRaises(RuntimeError):
      for _ in it:
        pass

    it = iter(msg.map_int32_foreign_message)
    msg.ClearField('map_int32_foreign_message')
    with self.assertRaises(RuntimeError):
      for _ in it:
        pass

  def testMapDelete(self):
    msg = map_unittest_pb2.TestMap()

    self.assertEqual(0, len(msg.map_int32_int32))

    msg.map_int32_int32[4] = 6
    self.assertEqual(1, len(msg.map_int32_int32))

    with self.assertRaises(KeyError):
      del msg.map_int32_int32[88]

    del msg.map_int32_int32[4]
    self.assertEqual(0, len(msg.map_int32_int32))

    with self.assertRaises(KeyError):
      del msg.map_int32_all_types[32]

  def testMapsAreMapping(self):
    msg = map_unittest_pb2.TestMap()
    self.assertIsInstance(msg.map_int32_int32, collections.Mapping)
    self.assertIsInstance(msg.map_int32_int32, collections.MutableMapping)
    self.assertIsInstance(msg.map_int32_foreign_message, collections.Mapping)
    self.assertIsInstance(msg.map_int32_foreign_message,
                          collections.MutableMapping)

  def testMapsCompare(self):
    msg = map_unittest_pb2.TestMap()
    msg.map_int32_int32[-123] = -456
    self.assertEqual(msg.map_int32_int32, msg.map_int32_int32)
    self.assertEqual(msg.map_int32_foreign_message,
                     msg.map_int32_foreign_message)
    self.assertNotEqual(msg.map_int32_int32, 0)

  def testMapFindInitializationErrorsSmokeTest(self):
    msg = map_unittest_pb2.TestMap()
    msg.map_string_string['abc'] = '123'
    msg.map_int32_int32[35] = 64
    msg.map_string_foreign_message['foo'].c = 5
    self.assertEqual(0, len(msg.FindInitializationErrors()))



class ValidTypeNamesTest(BaseTestCase):

  def assertImportFromName(self, msg, base_name):
    # Parse <type 'module.class_name'> to extra 'some.name' as a string.
    tp_name = str(type(msg)).split("'")[1]
    valid_names = ('Repeated%sContainer' % base_name,
                   'Repeated%sFieldContainer' % base_name)
    self.assertTrue(any(tp_name.endswith(v) for v in valid_names),
                    '%r does end with any of %r' % (tp_name, valid_names))

    parts = tp_name.split('.')
    class_name = parts[-1]
    module_name = '.'.join(parts[:-1])
    __import__(module_name, fromlist=[class_name])

  def testTypeNamesCanBeImported(self):
    # If import doesn't work, pickling won't work either.
    pb = unittest_pb2.TestAllTypes()
    self.assertImportFromName(pb.repeated_int32, 'Scalar')
    self.assertImportFromName(pb.repeated_nested_message, 'Composite')

class PackedFieldTest(BaseTestCase):

  def setMessage(self, message):
    message.repeated_int32.append(1)
    message.repeated_int64.append(1)
    message.repeated_uint32.append(1)
    message.repeated_uint64.append(1)
    message.repeated_sint32.append(1)
    message.repeated_sint64.append(1)
    message.repeated_fixed32.append(1)
    message.repeated_fixed64.append(1)
    message.repeated_sfixed32.append(1)
    message.repeated_sfixed64.append(1)
    message.repeated_float.append(1.0)
    message.repeated_double.append(1.0)
    message.repeated_bool.append(True)
    message.repeated_nested_enum.append(1)

  def testPackedFields(self):
    message = packed_field_test_pb2.TestPackedTypes()
    self.setMessage(message)
    golden_data = (b'\x0A\x01\x01'
                   b'\x12\x01\x01'
                   b'\x1A\x01\x01'
                   b'\x22\x01\x01'
                   b'\x2A\x01\x02'
                   b'\x32\x01\x02'
                   b'\x3A\x04\x01\x00\x00\x00'
                   b'\x42\x08\x01\x00\x00\x00\x00\x00\x00\x00'
                   b'\x4A\x04\x01\x00\x00\x00'
                   b'\x52\x08\x01\x00\x00\x00\x00\x00\x00\x00'
                   b'\x5A\x04\x00\x00\x80\x3f'
                   b'\x62\x08\x00\x00\x00\x00\x00\x00\xf0\x3f'
                   b'\x6A\x01\x01'
                   b'\x72\x01\x01')
    self.assertEqual(golden_data, message.SerializeToString())

  def testUnpackedFields(self):
    message = packed_field_test_pb2.TestUnpackedTypes()
    self.setMessage(message)
    golden_data = (b'\x08\x01'
                   b'\x10\x01'
                   b'\x18\x01'
                   b'\x20\x01'
                   b'\x28\x02'
                   b'\x30\x02'
                   b'\x3D\x01\x00\x00\x00'
                   b'\x41\x01\x00\x00\x00\x00\x00\x00\x00'
                   b'\x4D\x01\x00\x00\x00'
                   b'\x51\x01\x00\x00\x00\x00\x00\x00\x00'
                   b'\x5D\x00\x00\x80\x3f'
                   b'\x61\x00\x00\x00\x00\x00\x00\xf0\x3f'
                   b'\x68\x01'
                   b'\x70\x01')
    self.assertEqual(golden_data, message.SerializeToString())


@unittest.skipIf(api_implementation.Type() != 'cpp' or
                 sys.version_info < (2, 7),
                 'explicit tests of the C++ implementation for PY27 and above')
class OversizeProtosTest(BaseTestCase):

  @classmethod
  def setUpClass(cls):
    # At the moment, reference cycles between DescriptorPool and Message classes
    # are not detected and these objects are never freed.
    # To avoid errors with ReferenceLeakChecker, we create the class only once.
    file_desc = """
      name: "f/f.msg2"
      package: "f"
      message_type {
        name: "msg1"
        field {
          name: "payload"
          number: 1
          label: LABEL_OPTIONAL
          type: TYPE_STRING
        }
      }
      message_type {
        name: "msg2"
        field {
          name: "field"
          number: 1
          label: LABEL_OPTIONAL
          type: TYPE_MESSAGE
          type_name: "msg1"
        }
      }
    """
    pool = descriptor_pool.DescriptorPool()
    desc = descriptor_pb2.FileDescriptorProto()
    text_format.Parse(file_desc, desc)
    pool.Add(desc)
    cls.proto_cls = message_factory.MessageFactory(pool).GetPrototype(
        pool.FindMessageTypeByName('f.msg2'))

  def setUp(self):
    self.p = self.proto_cls()
    self.p.field.payload = 'c' * (1024 * 1024 * 64 + 1)
    self.p_serialized = self.p.SerializeToString()

  def testAssertOversizeProto(self):
    from google.protobuf.pyext._message import SetAllowOversizeProtos
    SetAllowOversizeProtos(False)
    q = self.proto_cls()
    try:
      q.ParseFromString(self.p_serialized)
    except message.DecodeError as e:
      self.assertEqual(str(e), 'Error parsing message')

  def testSucceedOversizeProto(self):
    from google.protobuf.pyext._message import SetAllowOversizeProtos
    SetAllowOversizeProtos(True)
    q = self.proto_cls()
    q.ParseFromString(self.p_serialized)
    self.assertEqual(self.p.field.payload, q.field.payload)

if __name__ == '__main__':
  unittest.main()
PK�\x�ٴ��'protobuf/internal/enum_type_wrapper.pycnu�[����
���hc@s&dZdZdefd��YZdS(s�A simple wrapper around enum types to expose utility functions.

Instances are created as properties with the same name as the enum they wrap
on proto classes.  For usage, see:
  reflection_test.py
s"rabsatt@google.com (Kevin Rabsatt)tEnumTypeWrappercBsJeZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
RS(s/A utility for finding the names of enum values.cCs||_||_dS(s-Inits EnumTypeWrapper with an EnumDescriptor.N(t
_enum_typet
DESCRIPTOR(tselft	enum_type((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pyt__init__.s	cCsC||jjkr#|jj|jStd|jj|f��dS(s6Returns a string containing the name of an enum value.s(Enum %s has no name defined for value %dN(Rtvalues_by_numbertnamet
ValueError(Rtnumber((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pytName3scCsC||jjkr#|jj|jStd|jj|f��dS(s6Returns the value coresponding to the given enum name.s(Enum %s has no value defined for name %sN(Rtvalues_by_nameR	RR(RR((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pytValue:scCs g|jjD]}|j^q
S(s~Return a list of the string names in the enum.

    These are returned in the order they were defined in the .proto file.
    (RtvaluesR(Rtvalue_descriptor((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pytkeysAscCs g|jjD]}|j^q
S(s�Return a list of the integer values in the enum.

    These are returned in the order they were defined in the .proto file.
    (RR
R	(RR((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pyR
JscCs)g|jjD]}|j|jf^q
S(s�Return a list of the (name, value) pairs of the enum.

    These are returned in the order they were defined in the .proto file.
    (RR
RR	(RR((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pytitemsSsN(t__name__t
__module__t__doc__tNoneRRR
RRR
R(((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pyR)s							N(Rt
__author__tobjectR(((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/enum_type_wrapper.pyt<module>$sPK�\)/xHH/protobuf/internal/descriptor_pool_test2_pb2.pycnu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZddlmZdd
lTejddddddded�dejejgdejg�Zejdddddddedejddddd d!d"dd#d�ejdd$dd%d d&d"dd#d�gd'dd"dd(d)d*d+�	Zeje�ejdddd,dddedejdd-ddd d.d"dd#d�ejdd/dd%d d0d"dd#d�gd'dd"dd(d1d*d2�	Zeje�ejdddd3dddedejdd4ddd d5d"dd#d�ejdd6dd%d d7d"dd#d�gd'dd"dd(d8d*d9�	Zeje�ejdd:dd;ddded'dd<ejdd=dd>ddd d%d#d7d?d@dAd%dBe dCd!dDddEdd'ddFe!dGdd"dde�ejddHddIdd%d dJd#dKd?dKdAd%dBe dCedL�j"dM�dDddEdd'ddFe!dGdd"dde�gdNgdOgdPegd"ddQe!dddRgdSgd(dTd*d+�Z#ejddUddVddded'dd<ejdd=ddWddd d%d#d7d?d@dAd%dBe dCd0dDddEdd'ddFe!dGdd"dde�ejddHddXdd%d dJd#dKd?dKdAd%dBe dCedY�j"dM�dDddEdd'ddFe!dGdd"dde�ejddZdd[ddJd dd#d\d?d]dAd%dBe!dCddDddEdd'ddFe!dGdd"dde�gdNgdOe#gdPegd"ddQe!dddRgdSgd(d^d*d2�Z$ejdd_dd`ddded'dd<ejdd=ddaddd d%d#d7d?d@dAd%dBe dCd7dDddEdd'ddFe!dGdd"dde�ejddbddcdd%d dJd#d\d?d]dAd%dBe!dCddDddEdd'ddFe!dGdd"dde�gdNejdddddeddd dfd#d\d?d]dAd%dBe!dCddDddEdd'ddFe dGdd"dde�gdOe$gdPegd"ddQe!dddRgdSgd(dgd*dh�Z%ee#j&d=_'e$e#_(e#e_(ee$j&d=_'e#e$j&dZ_)e%e$_(e$e_(ee%j&d=_'e$e%j&db_)e%e_(e%ej*d_<ej+e�e	j,d_ej-fe.dUe	j,dUej-fe.d:e	j,d:ej-fe.die#djdk��die$djdk��die%djdk��Z/ej0e/�ej0e/j1�ej0e/j1j2�e%e%j3dd_)ej4j5e%j3dd�dS(li����NiicCs|S(N((tx((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test2_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test2_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tdescriptor_pool_test1_pb2(tmore_messages_pb2(t*tnames4google/protobuf/internal/descriptor_pool_test2.prototpackagesgoogle.protobuf.python.internaltsyntaxtproto2t
serialized_pbs/
4google/protobuf/internal/descriptor_pool_test2.protogoogle.protobuf.python.internal4google/protobuf/internal/descriptor_pool_test1.proto,google/protobuf/internal/more_messages.proto"�
DescriptorPoolTest3X
nested_enum (2?.google.protobuf.python.internal.DescriptorPoolTest3.NestedEnum:XIZ
nested_message (2B.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage�

NestedMessagef
nested_enum (2M.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.NestedEnum:PI
nested_field (	:nuq
deep_nested_message (2T.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage�
DeepNestedMessagey
nested_enum (2_.google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.NestedEnum:RHO
nested_field (	:sigma" 

NestedEnum
RHO	
SIGMA"!

NestedEnum
OMICRON
PI"

NestedEnum
NU

XI2�
descriptor_pool_test4.google.protobuf.python.internal.DescriptorPoolTest1� (24.google.protobuf.python.internal.DescriptorPoolTest3Ptdependenciestpublic_dependenciest
NestedEnumt	full_names^google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.NestedEnumtfilenametfiletvaluestRHOtindextnumberitoptionsttypetSIGMAiitcontaining_typetserialized_starti@tserialized_endi`sLgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.NestedEnumtOMICRONitPIiibi�s>google.protobuf.python.internal.DescriptorPoolTest3.NestedEnumtNUi
tXIii�i�tDeepNestedMessagesSgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessagetfieldstnested_enums_google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.nested_enumtcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetnested_fields`google.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.DeepNestedMessage.nested_fieldii	tsigmasutf-8t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi�t
NestedMessagesAgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessagesMgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.nested_enumsNgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.nested_fieldtnutdeep_nested_messagesUgoogle.protobuf.python.internal.DescriptorPoolTest3.NestedMessage.deep_nested_messageii
i�tDescriptorPoolTest3s3google.protobuf.python.internal.DescriptorPoolTest3s?google.protobuf.python.internal.DescriptorPoolTest3.nested_enumtnested_messagesBgoogle.protobuf.python.internal.DescriptorPoolTest3.nested_messagetdescriptor_pool_testsHgoogle.protobuf.python.internal.DescriptorPoolTest3.descriptor_pool_testi�i�i-t
DESCRIPTORt
__module__s2google.protobuf.internal.descriptor_pool_test2_pb2(6tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtgoogle.protobuf.internalR
tAgoogle_dot_protobuf_dot_internal_dot_descriptor__pool__test1__pb2Rt8google_dot_protobuf_dot_internal_dot_more__messages__pb2t*google.protobuf.internal.more_messages_pb2tFileDescriptorR?tEnumDescriptortNonetEnumValueDescriptort?_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGE_NESTEDENUMtRegisterEnumDescriptort-_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_NESTEDENUMt_DESCRIPTORPOOLTEST3_NESTEDENUMt
DescriptortFieldDescriptortTruetFalsetdecodet4_DESCRIPTORPOOLTEST3_NESTEDMESSAGE_DEEPNESTEDMESSAGEt"_DESCRIPTORPOOLTEST3_NESTEDMESSAGEt_DESCRIPTORPOOLTEST3tfields_by_nameR.RR-tmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR<tRegisterMessageR9R&textensions_by_nametDescriptorPoolTest1tRegisterExtension(((sV/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_pool_test2_pb2.pyt<module>s�%
					
				
				
																								


PK�\��z?
?
.protobuf/internal/descriptor_database_test.pyonu�[����
���hc@s�dZdZyddlZWnek
r;ddlZnXddlmZddlmZddlm	Z	ddlm
Z
dejfd	��YZe
d
kr�ej�ndS(s.Tests for google.protobuf.descriptor_database.s"matthewtoia@google.com (Matt Toia)i����N(tunittest_pb2(tdescriptor_pb2(tfactory_test2_pb2(tdescriptor_databasetDescriptorDatabaseTestcBseZd�ZRS(cCs�tj�}tjjtjj�}|j|�|j	||j
d��|j	||jd��|j	||jd��|j	||jd��|j	||jd��|j	||jd��|j	||jd��|j	||jd��|j	||jd	��|j	||jd
��tjjtjj�}|j|�|j	||jd��|j	||jd��|j
t|jd
�dS(Ns,google/protobuf/internal/factory_test2.protos/google.protobuf.python.internal.Factory2MessagesEgoogle.protobuf.python.internal.Factory2Message.NestedFactory2Messages,google.protobuf.python.internal.Factory2EnumsBgoogle.protobuf.python.internal.Factory2Message.NestedFactory2EnumsDgoogle.protobuf.python.internal.MessageWithNestedEnumOnly.NestedEnums:google.protobuf.python.internal.Factory2Message.list_fields>google.protobuf.python.internal.Factory2Enum.FACTORY_2_VALUE_0s-google.protobuf.python.internal.another_fields>google.protobuf.python.internal.Factory2Message.one_more_fieldsprotobuf_unittest.TestServices)protobuf_unittest.TestAllTypes.none_fieldsprotobuf_unittest.NoneMessage(RtDescriptorDatabaseRtFileDescriptorProtot
FromStringRt
DESCRIPTORt
serialized_pbtAddtassertEqualtFindFileByNametFindFileContainingSymbolRtassertRaisestKeyError(tselftdbtfile_desc_prototfile_desc_proto2((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_database_test.pyttestAdd1sD	










	


	(t__name__t
__module__R(((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_database_test.pyR/st__main__(t__doc__t
__author__t	unittest2tunittesttImportErrortgoogle.protobufRRtgoogle.protobuf.internalRRtTestCaseRRtmain(((sU/usr/lib/python2.7/site-packages/google/protobuf/internal/descriptor_database_test.pyt<module> s
6PK�\$
:�����%protobuf/internal/reflection_test.pycnu�[����
���hc@stdZddlZddlZddlZddlZddlZyddlZWnek
rqddlZnXddl	m
Z
ddl	mZddl	mZddl	m
Z
ddl	mZddl	mZdd	l	mZdd
l	mZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZejZdefd��YZdefd��YZdefd��YZdefd��YZ defd��YZ!defd��YZ"defd ��YZ#d!efd"��YZ$d#efd$��YZ%d%efd&��YZ&e'd'krpej(�ndS((siUnittest for reflection.py, which also indirectly tests the output of the
pure-Python protocol compiler.
i����N(tunittest_import_pb2(tunittest_mset_pb2(tunittest_pb2(tdescriptor_pb2(t
descriptor(tmessage(t
reflection(ttext_format(tapi_implementation(tmore_extensions_pb2(tmore_messages_pb2(tmessage_set_extensions_pb2(twire_format(t	test_util(ttesting_refleaks(tdecodert_MiniDecodercBskeZdZd�Zd�ZeZeZeZeZd�Z	e	Z
d�Zd�Zd�Z
d�ZRS(s�Decodes a stream of values from a string.

  Once upon a time we actually had a class called decoder.Decoder.  Then we
  got rid of it during a redesign that made decoding much, much faster overall.
  But a couple tests in this file used it to check that the serialized form of
  a message was correct.  So, this class implements just the methods that were
  used by said tests, so that we don't have to rewrite the tests.
  cCs||_d|_dS(Ni(t_bytest_pos(tselftbytes((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt__init__Os	cCs%tj|j|j�\}|_|S(N(Rt
_DecodeVarintRR(Rtresult((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt
ReadVarintSs!cCstj|j��S(N(RtZigZagDecodeR(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt
ReadSInt64\scCstj|j��S(N(Rt	UnpackTagR(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytReadFieldNumberAndWireTypeascCs=tjd|j|j|jd!�d}|jd7_|S(Ns<fii(tstructtunpackRR(RR((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt	ReadFloatds*cCs=tjd|j|j|jd!�d}|jd7_|S(Ns<dii(RRRR(RR((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt
ReadDoubleis*cCs|jt|j�kS(N(RtlenR(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytEndOfStreamns(t__name__t
__module__t__doc__RRt	ReadInt32t	ReadInt64t
ReadUInt32t
ReadUInt64Rt
ReadSInt32RRR R"(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyREs						tReflectionTestcBsSeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6d5�Z7d6�Z8d7�Z9d8�Z:d9�Z;d:�Z<d;�Z=d<�Z>d=�Z?d>�Z@d?�ZAd@�ZBdA�ZCdB�ZDdC�ZEdD�ZFdE�ZGdF�ZHdG�ZIdH�ZJdI�ZKdJ�ZLdK�ZMdL�ZNdM�ZOdN�ZPd[dO�ZRdP�ZSeTjUeVjW�dQkp	eVjX�dRkdS�dT��ZYdU�ZZdV�Z[dW�Z\dX�Z]dY�Z^dZ�Z_RS(\cCsU|jt|�t|��x2tt|��D]}|j||||�q/WdS(N(tassertEqualR!trange(Rtvaluestothersti((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytassertListsEqualtsc	Cswtjdddddddd�}|jd|j�|jd|j�|jd|j�|j|jd��dS(Ntoptional_int32itoptional_doubleg+�)K@toptional_stringtoptional_float(	RtTestAllTypestNoneR,R2R3R4tassertFalsetHasField(Rtproto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestScalarConstructorys		cCs�tjdddddgdddgd	tttgd
dgdd�}|jddddgt|j��|jddgt|j��|jtttgt|j	��|jdgt|j
��|jgt|j��dS(
Ntrepeated_int32iiiitrepeated_doubleg�G�z��?g+�)K@t
repeated_booltrepeated_stringR4trepeated_float(RR6tTruetFalseR7R,tlistR<R=R>R?R@(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalarConstructor�s			%"cCs�tjdtjjdtjj�tjjdtjj�gdtjdd�tjdd�tjdd�gdtjj�tjjd	d
�tjjd	d�g�}|jtjjdtjj�tjjdtjj�gt|j	��|jtjdd�tjdd�tjdd�gt|j
��|jtjj�tjjd	d
�tjjd	d�gt|j��dS(Ntrepeated_nested_messagetbbtrepeated_foreign_messagetci���i�it
repeatedgrouptaii(RR6t
NestedMessagetFOOtBARtForeignMessaget
RepeatedGroupR,RCRERGRI(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt testRepeatedCompositeConstructor�s6	cCs�tjdddddddgdtttgdtjjd	tjj�tjjd	tjj�gd
tjdd�tjdd
�tjdd�gdd�}|j	d|j
�|j	d|j�|j	ddgt|j
��|j	tttgt|j��|j	tjjd	tjj�tjjd	tjj�gt|j��|j	tjdd�tjdd
�tjdd�gt|j��|j|jd��dS(NR2iR4R=g�G�z��?g+�)K@R>RERFRGRHi���i�itoptional_nested_message(RR6RARBRKRLRMRNR7R,R2R4RCR=R>RERGR8R9(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMixedConstructor�s:		"cCs�|jttjdd�|jttjdd�|jttjdd�|jttjdd�|jttjddg�|jttjdd�|jttjddg�|jttjdd�|jttjddg�dS(	NR2tfooR4i�RQR<R?RE(tassertRaisest	TypeErrorRR6(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestConstructorTypeError�s$cCs�tjdd�}|jd|j��tjdtjj��}|jd|j��tjddg�}|jd|j��tjdtjj�g�}|jd|j��dS(NR2iiRQiR<RE(RR6R,tByteSizeRK(RR((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testConstructorInvalidatesCachedByteSize�s		cCs�tj�}|j|jd��|jd|j�|j|jd��d|_|j|jd��|jd�|j|jd��dS(NR2ii(RR6t
assertTrueR9R,R2t
ClearField(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSimpleHasBits�s	
csG�fd�}|dd�|dd�|dd�|dd	�dS(
Ncs�tj�}t||�}t||�}�jd|��j|j|���j|j|��d}t|||��j|t||��|}�j|j|���j|j|��|j|�t||�}�j|j|���j|j|���jdt||���j||k	�t|||��j|j|���j|j|���jdt||��dS(Nii(RR6tgetattrR,RYR9tsetattrRZ(tcomposite_field_nametscalar_field_nameR:tcomposite_fieldtoriginal_scalar_valuetnew_valtold_composite_field(R(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytTestCompositeHasBits.s,
t
optionalgroupRJRQRFtoptional_foreign_messageRHtoptional_import_messagetd((RRd((RsL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt!testHasBitsWithSinglyNestedScalars
"*


cCs%tj�}|j}~d|_dS(Ni(RR6RQRF(RR:tnested((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestReferencesToNestedMessage]s	cCsrtj�}|j}|jd�|j||jk	�d|_|j|jd��|jd|jj�dS(NRQii(RR6RQRZRYRFR9R,(RR:Rj((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt0testDisconnectingNestedMessageBeforeSettingFieldes	
	cCsKtj�}|j}|jd�~~tj�tj�}|j}dS(NRQ(RR6RQRZtgctcollect(RR:Rj((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt5testGetDefaultMessageAfterDisconnectingDefaultMessagens	

cCs�tj�}|j}d|_|j|jd��|jd�|jd|j�|jd|jj�|j||jk	�d|_|j|jd��|jd|jj�dS(NiRQii(RR6RQRFRYR9RZR,(RR:Rj((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt/testDisconnectingNestedMessageAfterSettingField{s		
	cCsKtj�}|j|jd��|jd�|j|jd��dS(NRQ(RR6RYR9RZ(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt0testDisconnectingNestedMessageBeforeGettingField�s
cCsotj�}tj�}d|j_|j|�|j|jd��|jd�|j|jd��dS(NiRQ(RR6RQRFt	MergeFromRYR9RZ(Rtproto1tproto2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testDisconnectingNestedMessageAfterMerge�s

cCsLtj�dkrdStj�}d|j_|jd�~tj�dS(Ntpythonitoptional_lazy_message(	RtTypeRR6RwRFRZRmRn(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt"testDisconnectingLazyNestedMessage�s
cCs�tj�}|jjjd�|jdg|jj�|j|jd��|jd�|j|jd��|jj	j
�|j|jd��dS(NiRQ(RtTestNestedMessageHasBitsRQtnestedmessage_repeated_int32tappendR,RYR9RZt%nestedmessage_repeated_foreignmessagetadd(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt&testHasBitsWhenModifyingRepeatedFields�s
cCsqtj�}|j|jd��|jd|jjjjjj�|j|jd��d|jjjjj_|jd|jjjjjj�|j|jd��|j|jjd��|j|jjjd��|j|jjjjd��|j|jjjjjd��|j|jjjjjjd��|j|jjjjjjd��dS(NRFiiRJR2(RtTestMutualRecursionARYR9R,RFRJR2(Rtrecursive_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt!testHasBitsForManyLevelsOfNesting�s"""&cCs�tj�}d|_d|_d|_|j}|j|jjddf|jjddf|jjddfg|j	��d|j_
|j|jjddf|jjddf|jjddf|jjd|fg|j	��dS(	NiiRSR2toptional_fixed32R4i{RQ(RR6R�R2R4RQR,t
DESCRIPTORtfields_by_namet
ListFieldsRF(RR:tnested_message((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSingularListFields�s$				

	c
Cs tj�}|jjd�|jjd�|jjd�|jjddg�|jjg�|jjd�|jjd�td�D��d	|_|j	|j
|jjd
d	f|jjdddgf|jjddgf|jjd
dddddgfg|j
��dS(NiiiRStbartbazcss|]}t|�VqdS(N(tstr(t.0tx((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pys	<genexpr>�siiR2R<trepeated_fixed32R?t0t1(RR6R�R|R<R?textendR-R2R>R,R�R�R�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedListFields�s" 	
cCsztj�}d|jtj<d|jtj<d|jtj<|jtjdftjdftjdfg|j��dS(NiiRS(RtTestAllExtensionst
Extensionstoptional_fixed32_extensiontoptional_int32_extensiontoptional_string_extensionR,R�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSingularListExtensions�scCstj�}|jtjjd�|jtjjd�|jtjjd�|jtjjd�|jtjjd�|jtjjd�d|jtj<|jtjdftjddgftjdgftjdddgfg|j	��dS(NiiiRSR�R�i(
RR�R�trepeated_fixed32_extensionR|trepeated_int32_extensiontrepeated_string_extensionR�R,R�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedListExtensions�scCs�tj�}tj|�tj|j|jjddftjdf|jjddftjdf|jjddfg|j	��dS(	Ntmy_intiit	my_stringRSR�tmy_floatg�?(
RtTestFieldOrderingsR
tSetAllFieldsAndExtensionstmy_extension_intR,R�R�tmy_extension_stringR�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestListFieldsAndExtensionss
cCs�tj�}|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j	�|jd|j
�|jd|j�|jd|j�|jd|j
�|jd|j�|jt|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd|j�|jd	|j�|jd
|j�|jd|j�|jd|j�|jd
|j�|jd|j�|jd|j�|jt|j �|jd|j!�|jd|j"�|jtjj#|j$�|jtj%|j&�|jt'j(|j)�tj*�}|jd|j+�dS(Nigti)i*i+i,i���i.i/i0i1i���g�I@gd�@thellotworlduሴ(,RR6R,R2toptional_int64toptional_uint32toptional_uint64toptional_sint32toptional_sint64R�toptional_fixed64toptional_sfixed32toptional_sfixed64R5R3RBt
optional_boolR4toptional_bytest
default_int32t
default_int64tdefault_uint32tdefault_uint64tdefault_sint32tdefault_sint64tdefault_fixed32tdefault_fixed64tdefault_sfixed32tdefault_sfixed64t
default_floattdefault_doubleRAtdefault_booltdefault_stringt
default_bytesRMtdefault_nested_enumtFOREIGN_BARtdefault_foreign_enumRt
IMPORT_BARtdefault_import_enumtTestExtremeDefaultValuestutf8_string(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDefaultValuessJ
cCs&tj�}|jt|jd�dS(Ntnonexistent_field(RR6RTt
ValueErrorR9(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt testHasFieldWithUnknownFieldName@scCs&tj�}|jt|jd�dS(NR�(RR6RTR�RZ(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt"testClearFieldWithUnknownFieldNameDscsftj��x!td�D]}�jj�qWtj�}�j|�|jt�fd��dS(Ni
cs�jdS(Ni(trepeated_message((R:(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt<lambda>QR�(RtTestRequiredForeignR-R�R~tCopyFromRTt
IndexError(RR0Rt((R:sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestClearRemovesChildrenHs
cCs�tj�}|jtt|dd�|jtt|ddg�|jtt|dd�|jtt|jdd�|jtt|jdd�|jtt|dd�dS(	NR<i
RQiRFi"tsome_attributeR�(RR6RTtAttributeErrorR]RER@(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDisallowedAssignmentsSs


cCs�tj�}|jtt|dd�|jtt|dd�|jtt|dd�|jtt|dd�|jtt|dd�|jtt|dd�|jtt|d	d�tj�d
kr�|jtt|dd�n	d|_dS(NR2g�������?RSR4i
R�R�R5R3Rv(RR6RTRUR]RRxR�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSingleScalarTypeSafetyhscs���fd�}|ddt�|dd
t�|ddt�y
t}Wntk
ret}nXtjd�dkr�|dd|�n|ddt�|d	d|�|d	d|�|dd|�|dd|�dS(s}Verifies setting of scalar integers.

    Args:
      integer_fn: A function to wrap the integers that will be assigned.
    cs}tj�}�|�}t|||��jt||�|�tj�}|j|j���jt||�|�dS(N(RR6R]tassertIsInstanceR\tParseFromStringtSerializeToString(t
field_nametvaluet
expected_typeR:Rt(t
integer_fnR(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytTestGetAndDeserialize}sR2iiR�tLiiR�i<R�Ni@i@lli@li@l(tinttlongt	NameErrorRtcalcsize(RR�R�t
integer_64((R�RsL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytassertIntegerTypesws	


cCs|jd��dS(NcSs|S(N((R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR��R�(R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestIntegerTypes�scCs|jtj�dS(N(R�R
tNonStandardInteger(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNonStandardIntegerTypes�scCs]tj�}|jt��d|_WdQX|jtd��tjdd�|_WdQXdS(Nt2tmy_errori(	RR6RTRUR�tassertRaisesRegexptRuntimeErrorR
R�(Rtpb((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestIllegalValuesForIntegers�s
cs���fd�}|ddd�|ddd�|ddd�|d
dd�tj�}�jttf���d�|_WdQXtj�}�d�|_�jd|j�dS(s�Verifies bounds checking for scalar integer fields.

    Args:
      integer_fn: A function to wrap the integers that will be assigned.
    cs�tj�}�|�}�|�}t|||��j|t||��t|||��j|t||���jttft|||d��jttft|||d�dS(Ni(RR6R]R,R\RTR�RU(R�texpected_mintexpected_maxR�(R�R(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytTestMinAndMaxIntegers�sR2iiR�il��R�i?R�l����Nll����ll��ll����ll����ll����(RR6RTR�RUR�toptional_nested_enumR,(RR�R�R�((R�RsL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytassetIntegerBoundsChecking�s
cCs|jd��dS(NcSs|S(N((R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR��R�(R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSingleScalarBoundsChecking�scCs|jtj�dS(N(R�R
R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt)testNonStandardSingleScalarBoundsChecking�scCs'tj�}|jt|jjd�|jt|jjd�|jt|jd�|jt|jd�|jjd�d|jd<|jt|jj	dd�|jt|jj	dd�|jt|jj	dg�|jt|jj	dd�|jjd	�|jt|jj	dd�dS(
Ng�������?RSi
iii�tabctindexR�(
RR6RTRUR<R|R?trepeated_bytesR�t__setitem__(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalarTypeSafety�s

cCswtj�}|jd|j�d|_|jd|j�d|_|jd|j�d|_|jd|j�dS(Niil���l����(RR6R,R2R�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt!testSingleScalarGettersAndSetters�s			cCsstj�}|jd�d|_|j|jd��|jd�|jd|j�|j|jd��dS(NR2ii(RR6RZR2RYR9R,(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSingleScalarClearField�s
	
cCs�tj�}|jd|j�|jdtjj�|jd|j�|jdtjj�|jd|j�|jdtjj�dS(Niii(RR6R,RLRMtBAZ(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt	testEnums�scCs~|jdtjjtj��|jdtjjtj��|jdtjjtj��|jttjjd�tj	�}|jd|j
j|j��|jdtj	j
j|j��|jd|j
j|j��|jdtj	j
j|j��|jd|j
j|j
��|jdtj	j
j|j
��|jt|j
jd�|jttj	j
jd�dS(NtFOREIGN_FOOR�tFOREIGN_BAZi0,RLRMR�(R,RtForeignEnumtNameR�R�RRTR�R6t
NestedEnumRLRMR�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt
testEnum_Names2												cCs~|jtjtjjd��|jtjtjjd��|jtjtjjd��|jttjjd�tj	�}|j|j
|jjd��|j|j
tj	jjd��|j|j|jjd��|j|jtj	jjd��|j|j
|jjd��|j|j
tj	jjd��|jt|jjd�|jttj	jjd�dS(	NR�R�RtFORLRMR�tFoo(R,RR�RtValueR�RRTR�R6RLRRMR�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEnum_Value"s2			cCs	|jdddgttjj���|jdddgttjj���|jdddgttjj���tj�}|jddd	d
gt|jj���|jddd
dgt|jj���|jddddgt|jj���dS(NR�R�RiiiRLRMR�tNEGiiii����(R�i(R�i(Ri(RLi(RMi(R�i(R	i����(	R,RCRRtkeysR.titemsR6R(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEnum_KeysAndValues>s++cCs�tj�}|j|j�|jdt|j��|jjd�|jjd�|jjd�|j|j�|jdt|j��|jdddg|j�|jd|jd�|jd|jd�|jt|jj	d�|jt|jj	d�|jt
|jj	d	�|jt
|jj	d�d
|jd<|jdd
dg|j�|jjdd�|jddd
dg|j�|jjd
�|jdd
dg|jdd!�|jddd
dd
g|j�d�t
d�D�|jdd+|jddddd
g|j�dddg|jdd+|jddddd
g|j�g}x|jD]}|j|�q{W|jddddd
g|�|jd=|jdddd
g|j�|jd3|jddg|j�|jjddg�|jddddg|j�|jd�|j|j�|jdt|j��|jjd�|jd|jd�d|jd<|jd|jd�ddddg|j(|jd=|jdddg|j�|jd=|jddg|j�|jt|jjd�|jt|jjd�|jdd5|jdg|j�|jdd5|jdg|j�dS(Niii
iii����i�i.���RSiiiiicss|]}|VqdS(N((R�R0((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pys	<genexpr>rsii#i(i-i
R<i����i����i,idi'(RR6RYR<R,R!R|RTR�t__getitem__RUR7tinsertR-R�RZt__delitem__(RR:RR0((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalarsMsl
## ""







cCs�tj�}|j|j�|jdt|j��|jjd�|jjd�|jjd�|jjd�|jdt|j��|jjd�|jdt|j��|jd|jd�|jd|jd�|jd|jd�|jjd�|jdt|j��|jd|jd�|jd|jd�|jjd�|jdt|j��|jd|jd�|jt	|jjd�dS(	Niii
iiiii{(
RR6RYR<R,R!R|tremoveRTR�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalarsRemove�s*cCs$tj�}|j|j�|jdt|j��|jj�}|jj�}|j|j�|jdt|j��|j||g|j�|j|tjj	�|j
t|jjd�|j
t|jjd�|j
t
|jjd�|j
t
|jjd�|jj�}|jj�}|jj�}|j|||g|jdd!�|j|||||g|j�|j||g|jd �|j|||g|jd�|j||jd�|j|g|jd �g}x|jD]}|j|�qW|j|||||g|�|jd=|j||||g|j�|jd3|j||g|j�tjj	dd�}	tjj	dd�}
|jj|	|
g�|jdt|j��|j|	|jd�|j|
|jd	�|j
t
|jj|	�|j
t
|jjdg�tj�}|j
t
|jj|g�|jd
�|j|j�|jdt|j��|jjdd�|jdt|j��|jd|jdj�|j
t
|jjd�|j
t��d|jd<WdQXdS(Niii�i.���RSiiRFiREi(RR6RYRER,R!R~R1R�RKRTR�R
RUR7R|R�RZRFt	Exception(RR:tm0tm1tm2tm3tm4RR0tn1tn2twrong_message_type((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedComposites�s~

				

cCs�tj�}|jdt|j��|jj�}t|j�|_|jj�}t|j�|_|j||k�|jj�}t|j�|_|j|||g|j�|jdt|j��|jj	|�|jdt|j��|j||jd�|j||jd�|j
t|jj	|�|j
t|jj	d�|jdt|j��|jj	|�|jdt|j��|j||jd�dS(Niiii(
RR6R,R!RER~RFRYR1RRTR�R7(RR:RRR((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedCompositeRemoves*csmtj�dkrdStj}|dddddddd	d
|jd|jd|jd
ddddddddtdddt	j
��}tjdddddddddgdgd|gdgdt	j��	�dt
jtjtj�f�fd��Y}|�}|jd|j�|j|jd��d|_|jd|j�|j|jd��dS(NRvtnamet	foo_fieldt	full_namesMyProto.foo_fieldR�itnumberittypetcpp_typetlabelt
default_valuetcontaining_typetmessage_typet	enum_typetis_extensiontextension_scopetoptionstMyPrototfilenametignoredtnested_typest
enum_typestfieldst
extensionstMyProtoClasscseZ�ZRS((R#R$R�((tmydescriptor(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR3Hsi(RRxRtFieldDescriptort
TYPE_INT64t
CPPTYPE_INT64tLABEL_OPTIONALR7RBRtFieldOptionst
DescriptortMessageOptionstsixtwith_metaclassRtGeneratedProtocolMessageTypeRtMessageR,RRYR9(RR5tfoo_field_descriptorR3tmyproto_instance((R4sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestHandWrittenReflection4s.			.		cs�tj�dkrdS�fd��d�_tj�}d|_tj}�|d|j��|d|j��|d|j	��|d|j
��jd	7_|jj�}d
|_|j|_
�j|_tjj|_tj|��|jd�jk�|jd�jk�|jd�jk�|jd�jk�|jd
�jk�dtjtjtj�f�fd��Y}|�}d
|_d|_t|_d|_|jj ddg�|j!�}tj"�|�}|j||k	�|j#||�|j#|j|j�|j#|j|j�|j#|j|j�|j#|j|j�|j#|j|j�dS(NRvcsO�jd7_|jj�}||_||_�j|_tjj|_	dS(Ni(
tfield_indextfieldR~RR"R!RtFieldDescriptorProtoR8R$(R:R�t
field_typet	new_field(tAddDescriptorField(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRHWs		itCarRtyeart	automatictpriceitownerst
CarMessagecseZ�ZRS((R#R$R�((tdesc(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRNwstpriusi�g���@tbobtsusan($RRxRCRtDescriptorProtoRREtTYPE_STRINGR6t	TYPE_BOOLtTYPE_DOUBLERDR~R"R!tLABEL_REPEATEDR$RtMakeDescriptorRYR�R<R=RR>RR?RJRARKRLRMR�R�tParseMessageR,(Rt
desc_prototfdpRGRNRPtserialized_priust	new_prius((RHROsL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDescriptorProtoSupportQsN				.					cCs�tj�}tj}|j|j|��|jd|j|�|j|j|��d|j|<|jd|j|�|j|j|��|j|�|jd|j|�|j|j|��dS(Nii(RR�R�RYtHasExtensionR,R�tClearExtension(Rtextendee_protot	extension((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt'testTopLevelExtensionsForOptionalScalar�s	

cCs�tj�}tj}|jdt|j|��|j|jd�|jdg|j|�|j|}|j|�|jdt|j|��|j||j|k	�|j	t
tj|j|d�dS(NiRSRJ(
RR�R�R,R!R�R|R`RYRTRUtoperatortsetitem(RRaRbtstring_list((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt'testTopLevelExtensionsForRepeatedScalar�s	

cCs=tj�}tj}|j|j|��|jd|j|j�|j|j|��d|j|_|jd|j|j�|j|j|��|j|}|j|�|j||j|k	�d|_|jd|j�|j|j	d��|j|j|��|j
ttj
|j|d�dS(Niii*RHRJ(RR�t"optional_foreign_message_extensionRYR_R,R�RHR`R9RTRURdRe(RRaRbtforeign_message((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testTopLevelExtensionsForOptionalMessage�s"	

	cCstj�}tj}|jdt|j|��|j|j�}d|_|jd|j|dj�d|_|jd|j|dj�|j|}|j|�|jdt|j|��|j	||j|k	�|j
ttj
|j|d�dS(Niii*RJ(RR�trepeatedgroup_extensionR,R!R�R~RJR`RYRTRURdRe(RRaRbtgroupt
group_list((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testTopLevelExtensionsForRepeatedMessage�s			

cCs�tj�}tjj}|j|j|��|j|}|jd|j�|j|j|��d|_|jd|j|j�|j|j|��|j	|�|j||j|k	�|j|j|��dS(Nii(
RR�tTestRequiredtsingleRYR_R�R,RJR`(RRaRbtrequired((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNestedExtensions�s
	
cCsvtjj}|j|jtjjd��|j|jd�jtjj�|j	dt
|jtjj���dS(Nis*protobuf_unittest.optional_int32_extensioni(
RR�tpoolRYtFindExtensionByNumberR�tassertIstFindExtensionByNameR&R,R!tFindAllExtensionsR6(RRs((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRegisteredExtensions�s	
cCs�tj�}|j|jd��|jd|jjtj�|j|jd��d|jjtj<|jd|jjtj�|j|jd��tj�}|j|jd��|jg|jjtj�|j|jd��|jjtjj	d�|jdg|jjtj�|j|jd��tj�}|j|jd��|jd|jjtj
j�|j|jd��d|jjtj
_|jd|jjtj
j�|j|jd��tj�}|j|jd��|jdt|jjtj
��|j|jd��|jjtj
j�}|j||jjtj
d�|j|jd��dS(Nt
submessageii(R	tTopLevelMessageRYR9R,RyR�toptional_int_extensiontrepeated_int_extensionR|toptional_message_extensiontforeign_message_intR!trepeated_message_extensionR~(Rttopleveltforeign((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testHasBitsForAncestorsOfExtendedMessage�sL		cCs_tj�}|j}tj}|j|}|j|�d|_|j||j|k	�dS(Ni(R	RzRyR}R�R`R~RY(RR�RaRbtextension_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt*testDisconnectionAfterClearingEmptyMessage*s		

	cCstj�}|jt|jd�|jt|jd�|jt|jjd�|jt|jjdd�x�t	j
t	jt	jt	j
fD]g}|jt|j|�|jt|j|�|jt|jj|�|jt|jj|d�q�W|jt|jtj�dS(Ni�i(RR�RTtKeyErrorR_R`R�R
R�R	R{R}R|RR�(RRatunknown_handle((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestExtensionFailureModes4s&	cCsKtj�}tj|�|j�}tjj|�}|j||�dS(N(RR6R
tSetAllFieldsR�t
FromStringR,(RRststring1Rt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestStaticParseFromSs

cCsatj�}d|_tj�}d|_|j|�|jd|j�|jd|j�dS(NiR�(RR6R2R4RrR,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromSingularField]s		
cCs�tj�}|jjd�|jjd�tj�}|jjd�|j|�|jd|jd�|jd|jd�|jd|jd�dS(Niii(RR6R<R|RrR,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromRepeatedFieldjs
cCsKtj�}d|j_tj�}|j|�|jd|jj�dS(Ni(RR6ReRJRrR,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromOptionalGroupxs

cCs,tj�}|jj�}d|_|jj�}d|_tj�}|jj�}d|_|j|�|jd|jdj�|jd|jdj�|jd|jdj�tj�}|jj|j�|jd|jdj�|jd|jdj�|jd|jdj�dS(Ni{iAi�iii(RR6RER~RFRrR,(RRstmRttproto3((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt"testMergeFromRepeatedNestedMessage�s"			
cCsntj�}tj|�tj�}|j|�|j||�|j�}|j�}|j||�dS(N(RR6R
R�RrR,R�(RRsRtR�tstring2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromAllFields�s

cCsStj�}d|jtj<tj�}|j|�|jd|jtj�dS(Ni(RR�R�R�RrR,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromExtensionsSingular�s
cCs�tj�}|jtjjd�|jtjjd�tj�}|jtjjd�|j|�|jdt|jtj��|jd|jtjd�|jd|jtjd�|jd|jtjd�dS(Niiii(RR�R�R�R|RrR,R!(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromExtensionsRepeated�s
cCs�tj�}|jtj}|j�}d|_|j�}d|_tj�}|jtj}|j�}d|_|j|�|jtj}|jdt|��|jd|dj�|jd|dj�|jd|dj�dS(Ni�iMioiiii(	RR�R�t!repeated_nested_message_extensionR~RFRrR,R!(RRstext1R�Rttext2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt$testMergeFromExtensionsNestedMessage�s&
		
	

cCs\tj�}tj�}|j|j|jd��|j|�|j|jd��dS(NRQ(RR6RQR8R9Rr(Rtmessage1tmessage2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMergeFromBug�s
cCsjtj�}d|_d|_tj�}d|_|j|�|jd|j�|jd|j�dS(Nisimportant-textR�(RR6R2R4R�R,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCopyFromSingularField�s			
cCs�tj�}|jjd�|jjd�tj�}|jjd�|j|�|jd|jd�|jd|jd�dS(Niii(RR6R<R|R�R,(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCopyFromRepeatedField�s
cCsntj�}tj|�tj�}|j|�|j||�|j�}|j�}|j||�dS(N(RR6R
R�R�R,R�(RRsRtR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCopyFromAllFields�s

cCs|tj�}|jjd�d|_d|_|j|�|jd|jd�|jd|j�|jd|j�dS(Niisimportant-texti(RR6R<R|R2R4R�R,(RRs((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCopyFromSelfs		
cCsHtj�dkrdStj�}tj�}|jt|j|�dS(NRv(RRxRR6R�RTRUR�(RRsRt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCopyFromBadTypes
cCs�tj�}d|_tj|�}|jd|j�|jjd�|jjd�tj|j�}|jddg|�|jj	�}d|_
tj|j�}|j|j|�d|_
|j|j|�dS(Niii(RR6R2tcopytdeepcopyR,R<R|RER~RFtassertNotEqual(RRsRtt	containerR�tmessages((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDeepCopy s			cCs�tj�}tj�dkr.tj|�n
tj|�|j�|j|j	�d�tj�}|j||�tj
�}tj|�|j�|j|j	�d�tj
�}|j||�dS(NRvi(RR6RRxR
R�tSetAllNonLazyFieldstClearR,RWR�tSetAllExtensions(RR:tempty_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt	testClear4s



cCsetj�}|j}|j�|j||jk	�d|_|j|jd��|jd|jj�tj�}|j}d|_|j}d|_	|j�|j||jk	�|j||jk	�|jd|j�|jd|j	�d|_d|_	|j
|jd��|jd|jj�|j
|jd��|jd|jj	�dS(	NiRQiiiiiRf(RR6RQR�RYRFR9R,RfRHR8(RR:RjR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDisconnectingBeforeClearKs.	
					
		cCs�tj�}d|j_|j}|j|jjd�|j|jjd�d|j_|j|jjd�|j|jd�d|_dS(Niiii(Rt
TestOneof2tfoo_messagetqux_intR,tfoo_lazy_message(RR�tsub_message((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestDisconnectingInOneoffs	cCs�tj�}d|_d|j_|jd|jj�|j|jd��|j}d|_|jd|j�|jd|j�|j|jd��dS(Ni
itoneof_uint32R�toneof_nested_message(	RR6R�R�RFR,R8R9toneof_string(RR:Rj((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt	testOneOfts			cCs+|j|j��|j�|j�dS(N(RYt
IsInitializedR�tSerializePartialToString(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytassertInitialized�s
cCsig}|j|j��|j|j|��|j|t|��|jtj|j�|j�dS(N(	R8R�R,R!RTRtEncodeErrorR�R�(RR:t
error_sizeterrors((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytassertNotInitialized�scCsZtj�}|j|�tj�}|j|�tj�}|j|d�d|_|_|_|j|�tj	�}|j|�d|j
_|j|d�d|j
_d|j
_|j|�|jj�}|j|d�d|_|_|_|j|�tj�}tjj
}|j|j�}|j|j�}|j|d�d|_d|_d|_|j|d�d|_d|_d|_|j|�tj�}tjj}d|j|_|j|d�d|j|_d|j|_|j|�g}tj�}|j|j|��|j|dddg�dS(	NiiiiiRJtbRH(RR6R�R�RoR�RJR�RHR�toptional_messageR�R~tmultiR�RpR8R�R,(RR:R�RbR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestIsInitialized�sV





						

tcppisBErrors are only available from the most recent C++ implementation.cCsd}d}tj�}||_||_|jj�}d|_tj||d|j��d}||_|jj�}d|_|j	t
���}tj||d|j��|jt|d�dt
|jd|j��|jdt|j��|jd	t|j��WdQXdS(
Ns!test_file_descriptor_errors.prototmsg1t
serialized_pbs)another_test_file_descriptor_errors.prototmsg2t	exceptions
%s not raisedR#s test_file_descriptor_errors.msg1(RtFileDescriptorProtoRtpackageR'R~RtFileDescriptorR�RTRURYthasattrR\texpectedtassertInR�R�(Rt	file_nametpackage_nametfile_descriptor_protoRtanother_file_nameRtcm((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestFileDescriptorErrors�s0			
		
cCs�tj�}|jtt|dd�|jt|j�tj	�tj	d�|_|j|jt
d��t
d�|_|j|jtj	d��|jtt|dd�djd�}||_d|_d|_dS(	NR�uunicode objecttTestingR4sa�auТестsutf-8R�(
RR6RTRUR]R,R"R4R<t	text_typeR�R�tencode(RR:t
utf8_bytes((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestStringUTF8Encoding�s				c
Cs�tj�}tj}|j}d}|jd�}||j|_|j�}|j|j	�t
|��tj�}|j
|�}|jt
|�|�tj�}	|jdt
|j��|j|jdjd�|j|jdjj|��|	j
|jdj�}|jt
|jdj�|�|jt|	j�tj�|j|	j|�|jdjj|t
|�d�}
t}y|	j
|
�Wntk
r�t}nX|	j}|j|p�t|�tk�dS(NuТестsutf-8iiiʿ�s�(RtTestMessageSettTestMessageSetExtension2tmessage_set_extensionR�R�R�R�R,RWR!Rt
RawMessageSettMergeFromStringtitemttype_idRYRtendswithR"R<R�treplaceRBtUnicodeDecodeErrorRAR(
RR:textension_messageRbt	test_utf8ttest_utf8_bytest
serializedtrawt
bytes_readR�tbadbytestunicode_decode_failedtstring_field((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestStringUTF8Serializations8		  	

	cCs/tjdd�}|jdtj|��dS(NR�s��u#optional_bytes: "\000\177\200\377"
(RR6R,R<R�(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestBytesInTextFormat=s	cCs=tj�}|jjtjj��|j|jd��tj�}|jjtjj��|j|jd��tj�}|jjd�}|j	d|�|j|jd��tj�}|jj
d�|j|jd��|j�}tj�}|j	t|�|j|��|j|jd��dS(NRQR�i(
RR6RQRrRKRYR9R�R�R,R�R�R!(RR:R�R�Rt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEmptyNestedMessageBs*			cCsItj�}|j|jd��|jj�|j|jd��dS(NRe(RR6R8R9RetSetInParentRY(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSetInParent]s
cCs9ddlm}|jj�}|jd|jj�dS(s�Test that we can import nested messages from their __init__.py.

    Such setup is not trivial since at the time of processing of __init__.py one
    can't refer to its submodules by name in code, so expressions like
    google.protobuf.internal.import_test_package.inner_pb2
    don't work. They do work in imports, so we have assign an alias at import
    and then use that alias in generated code.
    i����(timport_test_packagei9N(tgoogle.protobuf.internalR�tmyprototOuterR,tinnerR�(RR�tmsg((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestPackageInitializationImportcsN(`R#R$R1R;RDRPRRRVRXR[RiRkRlRoRpRqRuRyRR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RRRRRRRRBR^RcRgRjRnRrRxR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R7R�R�tunittesttskipIfRRxtVersionR�R�R�R�R�R�R�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR+rs�		
		"	#				Q				
	
		
	
								)						"				!											Z		S			=							1	
		
	
									
	
	
												:! 		6			tTestAllTypesEqualityTestcBs,eZd�Zd�Zd�Zd�ZRS(cCs"tj�|_tj�|_dS(N(RR6tfirst_prototsecond_proto(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytsetUp{scCs|jtt|j�dS(N(RTRUthashR�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNotHashablescCs|j|j|j�dS(N(R,R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSelfEquality�scCs|j|j|j�dS(N(R,R�R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEmptyProtosEqual�s(R#R$R�RRR(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�ys			tFullProtosEqualityTestcBsqeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
RS(s@Equality tests using completely-full protos as a starting point.cCsBtj�|_tj�|_tj|j�tj|j�dS(N(RR6R�R�R
R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR��scCs|jtt|j�dS(N(RTRUR�R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�scCs*|j|jd�|jd|j�dS(N(R�R�R7R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNoneNotEqual�scCs6tj�}|j|j|�|j||j�dS(N(RRoR�R�R�(Rtthird_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNotEqualToOtherMessage�scCs|j|j|j�dS(N(R,R�R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestAllFieldsFilledEquality�scCsR|jjd7_|j|j|j�|jjd�|j|j|j�dS(NiR2(R�R2R�R�RZ(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNonRepeatedScalar�scCs�|jjjd7_|j|j|j�|jjjd8_|j|j|j�|jjjd�|j|j|j�|jjj|jj_|j|j|j�|jjd�|j|j|j�dS(NiRFRQ(R�RQRFR�R�R,RZ(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNonRepeatedComposite�scCsS|jjjd�|j|j|j�|jjd�|j|j|j�dS(NiR<(R�R<R|R�R�RZ(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalar�scCs�|jjdjd7_|j|j|j�|jjdjd8_|j|j|j�|jjj�|j|j|j�|jjj�|j|j|j�dS(Nii(R�RERFR�R�R,R~(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedComposite�scCs6|jjd�d|j_|j|j|j�dS(NR2i(R�RZR�R2R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNonRepeatedScalarHasBits�scCsu|jjd�|jjjd�|j|j|j�d|jj_|jjjd�|j|j|j�dS(NRQRFi(R�RZR�RQR�RFR,(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestNonRepeatedCompositeHasBits�s(R#R$R%R�RRRRRR	R
RRR
(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�s										tExtensionEqualityTestcBseZd�ZRS(cCsDtj�}tj�}|j||�tj|�|j||�tj|�|j||�|jtjcd7<|j||�|jtjcd8<|j||�|jtj�d|jtj<|j||�d|jtj<|j||�tj�}tj�}|jd|jtj�|j||�dS(Nii(	RR�R,R
R�R�R�R�R`(RR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestExtensionEquality�s*

(R#R$R(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�stMutualRecursionEqualityTestcBseZd�ZRS(cCsptj�}tj�}|j||�d|jjj_|j||�d|jjj_|j||�dS(Ni(RR�R,RFRJR2R�(RR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEqualityWithMutualRecursions(R#R$R(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRstByteSizeTestcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs@tj�|_tj�|_tj�|_tj�|_	dS(N(
RR6R:R	tExtendedMessagetextended_prototTestPackedTypestpacked_prototTestPackedExtensionstpacked_extended_proto(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�scCs
|jj�S(N(R:RW(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytSizescCs|jd|jj��dS(Ni(R,R:RW(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestEmptyMessagescCsNtj�}|jd|j��tjdd�}|jd|j��dS(NiR�ii(RR6R,RW(RR:tproto_kwargs((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSizedOnKwargsscs��fd�}|dd�|dd�xGttddd�tdd��D]!\}}|d|>d|�qNW|dd�|d	d�|dd�dS(Ncs7�jj�|�j_�j|d�j��dS(Ni(R:R�R�R,R(R0texpected_varint_size(R(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pytTest#s
iiii?i'i����i
i����ll����(tzipR-(RRR0t	num_bytes((RsL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestVarints"s

1

cCs�d|j_|jd|j��d|j_|jdt|jj�|j��dd|j_|jdt|jj�|j��dS(NR�iR�R�i�i(R:R4R,RR!(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestStrings1s&cCs�d|j_|jd|j��tj�|_d|j_|jd|j��tj�|_d|j_|jd|j��tj�|_d|j_|jd|j��tj�|_d|j_	|jd|j��tj�|_dS(Ni�ii	gX9��v��?i@i(
R:R�R,RRR6R�R5R3R�(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestOtherNumerics>scCs)d|jj_|jd|j��dS(	Niiiii@iii(R:RQRFR,R(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCompositesXscCs-d|jj_|jdd|j��dS(Niiiii ii(R:ReRJR,R(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt
testGroups`scCsD|jjjd�|jjjd�|jdd|j��dS(Ni
i�iiii(R:R<R|R,R(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRgscCs7|jjjddg�|jdd|j��dS(Ni
i�iiii(R:R<R�R,R(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedScalarsExtendmscCsm|jjjd�|jjjd�|jdd|j��|jjjd�|jd|j��dS(Ni
i�iiiii(R:R<R|R,RR(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRrs
cCsG|jjj�}|jjj�}d|_|jd|j��dS(	Niiiiiiii(R:RER~RFR,R(Rtforeign_message_0tforeign_message_1((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRzs	cCss|jjj�}|jjj�}d|_|jd|j��tj|jj�}|jjd=|jd|j��|jjj�}d|_|jd|j��|jjd=|jd|j��|jjd=|jd|j��|jdt|��|dd5t	j
�dkr=|jdt|��n|d=t	j
�dkro|jdt|��ndS(Ni	iiiiRvi����iiiiiiiiiiiiii	i
iii(R:RER~RFR,RR�R�R!RRx(RR'R(REtforeign_message_2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedCompositesDelete�s,	
	


cCsG|jjj�}|jjj�}d|_|jd|j��dS(	Niiiiiii	i(R:RIR~RJR,R(Rtgroup_0tgroup_1((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestRepeatedGroups�s	cCs�tj�}|jd|j��tj}d|j|<|jd|j��tjjjd}|j	t
��d|j|<WdQXdS(NiiiR2(RR�R,RWR�R�R6R�R�RTR�(RR:RbRD((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestExtensions�s	
cCs�d|j_|jd|jj��d|j_|jd|jj��|jjd�|jd|jj��tj}d|jj|<|jd|jj��d|jj|<|jd|jj��|jj	|�|jd|jj��dS(Niii�iR2i(
R:R2R,RWRZR	R{RR�R`(RRb((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt)testCacheInvalidationForNonrepeatedScalar�s	cCs_|jjjd�|jd|jj��|jjjd�|jd|jj��d|jjd<|jd|jj��|jjd�|jd|jj��tj}|jj	|}|jd�|jd|jj��|jd�|jd	|jj��d|d<|jd
|jj��|jj
|�|jd|jj��dS(Niiii�iR<iiii(R:R<R|R,RWRZR	R|RR�R`(RRbtrepeated((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt&testCacheInvalidationForRepeatedScalar�s$	


cCs�d|jj_|jd|jj��d|jj_|jd|jj��|jjjd�|jd|jj��|jjd�|jd|jj��tj�d	kr�|jj}|jjd�d|_|jd|jj��ntj	}|j
j|}|jd|j
j��d|_|jd
|j
j��d|_|jd|j
j��|j
j
|�|jd|j
j��dS(Niii�iRHiRfiRvi(R:RfRHR,RWRZRRxR	R}RR�R~R`(RtchildRb((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt*testCacheInvalidationForNonrepeatedMessage�s,				cCsu|jjj�}|jd|jj��|jjj�|jd|jj��d|_|jd|jj��|jjd�|jd|jj��tj}|j	j
|}|j�}|jd|j	j��|j�|jd|j	j��d|_|jd|j	j��|jd	�|jd|j	j��|j	j|�|jd|j	j��dS(
NiiiiRGiiiR~(
R:RGR~R,RWRHRZR	RRR�R~R`(Rtchild0Rbt
child_list((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt'testCacheInvalidationForRepeatedMessage	s(		
	
cCs�|jd|jj��|jjjd�|jjjd�d}|j||jj��|jjjd�|jjjd�d}|j|||jj��|jjd
�|j||jj��dS(Nii
i�iiig������@g
@itpacked_int32iiii(R,RRWR7R|t
packed_doubleRZ(Rtint_sizetdouble_size((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestPackedRepeatedScalars	scCsb|jd|jj��|jjtj}|jddddg�|jd|jj��dS(Niiiiii(R,RRWR�Rtpacked_fixed32_extensionR�(RRb((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestPackedExtensions0	s
	
(R#R$R�RRRR!R"R#R$R%RR&RRR*R-R.R/R1R3R6R;R=(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyRs,						
								'								tSerializationTestcBseZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsstj�}tj�}|j�}|j|j�t|��|jt|�|j|��|j||�dS(N(RR6R�R,RWR!R�(RR�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeEmtpyMessageF	s	cCs�tj�}tj�}tj|�|j�}|j|j�t|��|jt|�|j|��|j||�dS(N(	RR6R
R�R�R,RWR!R�(RR�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeAllFieldsP	s
	cCsdtj�}tj�}tj|�|j�}|jt|�|j|��|j||�dS(N(RR�R
R�R�R,R!R�(RR�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeAllExtensions[	s
	cCsctj�}tj�}d|j_|j�}|jt|�|j|��|j||�dS(Ni�(RR6ReRJR�R,R!R�(RR�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeWithOptionalGroupe	s	cCsntj�}d|_d	|_d|_d|_d|_d
|_tjj|j	��}|j
||�dS(Ni����ii(i����ii����ill����ll����ll����(RR6R2R�R�R�R�R�R�R�R,(RR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeNegativeValueso	s							cCs$tj�dkrdStj�}tj|�|j�}x�tt|�d�D]�}y�tj�}tj	�}|j
|d|�}|j||�y)|j
|d|�}|j||�Wn!tj
k
r�|jd�nXWqRtj
k
r|jtj
|j
|d|�qRXqRWdS(NRviis@Parsing unknown fields failed when parsing known fields did not.(RRxRR6R
R�R�R-R!tTestEmptyMessaget_InternalParseR,RtDecodeErrortfailRT(RR�R�ttruncation_pointR�tunknown_fieldstpostpos2((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestParseTruncated~	s&
cCs�tj�}d|_d|jtj<d|_d|jtj<d|_|j�}|j	|j
�t|��t|�}|j
}|j	dtjf|��|j	d|j��|j	dtjf|��|j	d|j��|j	dtjf|��|j	d|j��|j	dtjf|��|j	d|j��|j	dtjf|��|j	d|j��dS(Niiiii(R
tOutOfOrderFieldsR�R�R�R�R�R2R�R,RWR!RRRtWIRETYPE_VARINTR&R'R(R)R*(RR:R�RhtReadTag((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestCanonicalSerializationOrder�	s(				cCs6tj�}tj|�|j�}tj|�dS(N(RR�R
R�R�t#ExpectAllFieldsAndExtensionsInOrder(RR:R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testCanonicalSerializationOrderSameAsCpp�	s
cCs�tj�}|jjd�d|_d|j_|j�}tj�}|jjd�d|_d|j_|j|�}|j	t
|�|�|j	ddgt|j��|j	d|j�|j	d|jj�dS(Ntfoobarii*R�idi�(RR6R?R|R2RQRFR�R�R,R!RC(RR�R�R�tbytes_parsed((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt'testMergeFromStringWhenFieldsAlreadySet�	s		c
Cs�tj�}tj}tj}|j}|j}tj}d|j|_d|j|_d|j|_	|j
�}tj�}|j
t|jj�j�|j
t|�|j|��|j
dt|j��tj�}	|j
t|jdj�|	j|jdj��|j
d|	j�tj�}
|j
t|jdj�|
j|jdj��|j
d|
j�tj�}|j
t|jdj�|j|jdj��|j
d|j	�tj�}|j
t|�|j|��|j
d|j|j�|j
d|j|j�|j
d|j|j	�|j
|j�t|��|j
|j�t|��dS(Ni{RSR�iiii(RR�tTestMessageSetExtension1R�R�tmessage_set_extension3R�R0R�ttextR�RR�R,RBR�t
GetOptionstmessage_set_wire_formatR!R�R�RtTestMessageSetExtension3RW(
RR:textension_message1textension_message2t
extension1t
extension2t
extension3R�R�R�R�tmessage3Rt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMessageSetWireFormat�	sR								cCs9tj�}|jj�}d|_tj}tj�}d|_|j�|_	|jj�}d|_tj}tj�}d|_|j�|_	|jj�}d|_tj
�}d|_|j�|_	|j�}tj�}|j
t|�|j|��tj}|j}|j
d|j|j�dS(Ni���i90i���i:0i���RS(RR�R�R~R�RRVR0R�RR�R�R�R,R!R�R�R�(RR�R�R\R�R�R:R^((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(testMessageSetWireFormatUnknownExtension	
s4											cCs�tj�}tj|�|j�}tj�}|jt|�|j|��tj�}d|_	|j�}tj�}|jt|�|j|��dS(Nl����(
RR6R
R�R�RDR,R!R�R�(RR:R�Rt((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestUnknownFields2
s
			cCsUy|�Wn*|k
r7}|j|t|��dSX|jdt|���dS(sEThis method checks if the excpetion type and message are as expected.Ns
%s not raised(R,R�tfailureException(Rt	exc_classtcallable_objR�tex((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt_CheckRaisesM
scCs�tj�}|jtj|jd�|j�}tj�}|j|jd��|j	|�|j|jd��d|_
|jtj|jd�|j�}d|_|jtj|jd�|j�}d|_|j�}|j�}tj�}|j
t|�|j|��|j
d|j
�|j
d|j�|j
d|j�|j
t|�|j|��|j
d|j
�|j
d|j�|j
d|j�dS(NsHMessage protobuf_unittest.TestRequired is missing required fields: a,b,cRJisFMessage protobuf_unittest.TestRequired is missing required fields: b,cisDMessage protobuf_unittest.TestRequired is missing required fields: ci(RRoRiRR�R�R�R8R9R�RJR�RHR,R!R�(RR:tpartialRtR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeUninitializedX
sL
					cCs�tj�}|j�d|j_|jtj|jd�d|j_d|j_	|j�d|j
j�_d|j
j�_|jtj|jd�d|j
d_d|j
d_	d|j
d_d|j
d_	|j�dS(NisoMessage protobuf_unittest.TestRequiredForeign is missing required fields: optional_message.b,optional_message.ciis�Message protobuf_unittest.TestRequiredForeign is missing required fields: repeated_message[0].b,repeated_message[0].c,repeated_message[1].a,repeated_message[1].ci(RR�R�R�RJRiRR�R�RHR�R~(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt$testSerializeUninitializedSubMessage�
s*

cCs�tj�}tj�}tj|�|j�}|j|j�t|��|j|�}|j|j�|�|j||�dS(N(	RRR
tSetAllPackedFieldsR�R,RWR!R�(RR�R�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestSerializeAllPackedFields�
s
cCsjtj�}tj�}tj|�|j�}|j|�}|j|j�|�|j||�dS(N(RRR
tSetAllPackedExtensionsR�R�R,RW(RR�R�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt testSerializeAllPackedExtensions�
s
cCs�tj�}|jjddg�|jjd�|j�}tj�}|jjd�|jjddg�|jjd�|jt	|�|j
|��|jdddg|j�|jdddg|j�|jdg|j�dS(Niig@ig�?g@i(RRR7R�R8R|R�t
packed_sint32R,R!R�(RR�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt1testMergePackedFromStringWhenSomeFieldsAlreadySet�
s	cCs�tj�}|jjddddg�|jjddg�|jjd�|j�}|j|j	�t
|��t|�}|j}|jdt
jf|��|jd|j��|jd|j��|jd|j��|jd|j��|jd|j��|jd	t
jf|��|jd
|j��|jd|j��|jdt
jf|��|jd|j��|jd|j��|jd|j��|j|j��dS(Niii�ig�?g@�@g@iZidiieiiiii(RRR7R�R8tpacked_floatR|R�R,RWR!RRRtWIRETYPE_LENGTH_DELIMITEDR&RR RYR"(RR:R�RhRO((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestPackedFieldsWireFormat�
s,	cCs}tj�}tj|�tj�}|j�}|jt|�|j|��tj�}tj	|�|j||�dS(N(
RtTestUnpackedTypesR
tSetAllUnpackedFieldsRR�R,R!R�Rm(RtunpackedtpackedR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestParsePackedFromUnpacked�
s
	
cCs}tj�}tj|�tj�}|j�}|jt|�|j|��tj�}tj	|�|j||�dS(N(
RRR
RmRvR�R,R!R�Rw(RRyRxR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestParseUnpackedFromPacked�
s
	
cCs�tj�}|jtjjjd�|jtjjd�|jtjjd�|jtjjd�|jtjjd�|jtjj	d�|jtjj
d�|jtjjd�|jtjjd�dS(	Niiiiii.i0i3(
RR6R,RKtBB_FIELD_NUMBERtOPTIONAL_INT32_FIELD_NUMBERtOPTIONALGROUP_FIELD_NUMBERt$OPTIONAL_NESTED_MESSAGE_FIELD_NUMBERt!OPTIONAL_NESTED_ENUM_FIELD_NUMBERtREPEATED_INT32_FIELD_NUMBERtREPEATEDGROUP_FIELD_NUMBERt$REPEATED_NESTED_MESSAGE_FIELD_NUMBERt!REPEATED_NESTED_ENUM_FIELD_NUMBER(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestFieldNumbersscCs�|jtjjjd�|jtjjd�|jtjjjd�|jtjjd�|jtjjd�|jtj	d�|jtj
jd�|jtjd�|jtjjd�|jtj
d�|jtjjd�|jtjd�|jtjjd�|jtjd�|jtjjd�|jtjd�|jtjjd	�|jtjd	�|jtjjd
�|jtjd
�dS(Ni�i�iiiiii.i0i3(R,RRoRpR!tSINGLE_FIELD_NUMBERR�tMULTI_FIELD_NUMBERR�t%OPTIONAL_INT32_EXTENSION_FIELD_NUMBERtoptionalgroup_extensiont$OPTIONALGROUP_EXTENSION_FIELD_NUMBERt!optional_nested_message_extensiont.OPTIONAL_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERtoptional_nested_enum_extensiont+OPTIONAL_NESTED_ENUM_EXTENSION_FIELD_NUMBERR�t%REPEATED_INT32_EXTENSION_FIELD_NUMBERRkt$REPEATEDGROUP_EXTENSION_FIELD_NUMBERR�t.REPEATED_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERtrepeated_nested_enum_extensiont+REPEATED_NESTED_ENUM_EXTENSION_FIELD_NUMBER(R((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestExtensionFieldNumberss0

cCs�tjdddddtdddtjjd	d�d
tjdd�dtjjd
tjddddg�	}|j|j��|j|j	d��|j|j	d��|j|j	d��|j|j	d��|j|j	d��|j|j	d
��|j|j	d��|j|j	d
��|j
d|j�|j
d|j�|j
t|j
�|j
d|j�|j
d|jj�|j
d|jj�|j
tjj|j�|j
tj|j�|j
dddg|j�dS(NR2iR4RSR�R�R�RQRFRfRHR�toptional_foreign_enumR<ii(RR6RARKRNRLR�RYR�R9R,R2R4R�R�RQRFRfRHR�R�R<(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestInitKwargs+s:		
cCs d�}|jt|d�dS(NcSstjdd�}dS(Ntunknown(RRD(tunused_proto((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt(InitalizeEmptyMessageWithExtraKeywordArgKss9Protocol message TestEmptyMessage has no "unknown" field.(RiR�(RR�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestInitArgsUnknownFieldNameJs
	cCs�tjdddddd�}|j|j��|j|jd��|j|jd��|j|jd��|j|jd��|jd|j�|jd|j�|jd|j�dS(NRJiR�RHtdummy2(	RRoRYR�R9R,RJR�RH(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestInitRequiredKwargsRsc	Cs?tjdtjdddddd��}|j|j��|j|jd��|j|jj��|j|jjd��|j|jjd��|j|jjd��|j|jjd��|jtjdddddd�|j�|jd|jj�|jd|jj	�|jd|jj
�dS(NR�RJiR�RHR�(RR�RoRYR�R9R�R,RJR�RH(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestInitRequiredForeignKwargs]s	!!
cCswtjddddg�}|j|j��|jd|jd�|jd|jd�|jd|jd�dS(NR<iiii(RR6RYR�R,R<(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestInitRepeatedKwargsms
(R#R$R?R@RARBRCRLRPRRRURbRcRdRiRkRlRnRpRrRuRzR{R�R�R�R�R�R�R�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR>D	s8	
		
	
						6	)			3	!	
												tOptionsTestcBseZd�Zd�ZRS(cCsTtj�}|jt|jj�j�tj�}|jt	|jj�j�dS(N(
RR�R,RAR�RYRZRR6RB(RR:((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestMessageOptionsws		cCs�tj�}d|_d|_x3|j�D]%\}}|jt|j�j�q+Wtj	�}|j
jd�|jjd�xL|j�D]>\}}|jt
|j�j�|jtjj|j�q�WdS(Nig@(RR6R2R3R�R,RBRYRyRR7R|R8RARR5RWR$(RR:tfield_descriptort_((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestPackedOptionss		(R#R$R�R�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR�us	tClassAPITestcBs�eZejej�dko-ej�dkd�d��Zd�Ze	j
d�d��Ze	j
d�d��Ze	j
d�d��Z
RS(	R�is6C++ implementation requires a call to MakeDescriptor()cCs$tjddddddgdgdgdg�}tjd	d
ddddgd|gdgdg�}tjddddddgdgdgdg�}tjd
dddddgd||gdgdg�}tj|�}|jd	|j�|jd|j�|jd|jj�dS(Ntleafspackage.parent.child.leafR�R&R1R/R0R2R2spackage.parent.childtsiblingspackage.parent.siblingtparentspackage.parent(RR:R7Rt	MakeClassR�t__dict__R2(Rt	leaf_desct
child_desctsibling_desctparent_desct
message_class((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt!testMakeClassWithNestedDescriptor�s(			cCs4d|d}tj�}tj||�|j�S(s Get a serialized representation of a test FileDescriptorProto.

    Args:
      name: All calls to this must use a unique message name, to avoid
          collisions in the cpp descriptor pool.
    Returns:
      A string containing the serialized form of a test FileDescriptorProto.
    smessage_type {  name: "si"  field {    name: "flat"    number: 1    label: LABEL_REPEATED    type: TYPE_UINT32  }  field {    name: "bar"    number: 2    label: LABEL_OPTIONAL    type: TYPE_MESSAGE    type_name: "Bar"  }  nested_type {    name: "Bar"    field {      name: "baz"      number: 3      label: LABEL_OPTIONAL      type: TYPE_MESSAGE      type_name: "Baz"    }    nested_type {      name: "Baz"      enum_type {        name: "deep_enum"        value {          name: "VALUE_A"          number: 0        }      }      field {        name: "deep"        number: 4        label: LABEL_OPTIONAL        type: TYPE_UINT32      }    }  }}(RR�RtMergeR�(RRtfile_descriptor_strtfile_descriptor((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt_GetSerializedFileDescriptor�s)s MakeDescriptor is not repeatablecs�tj�dkrdStj�}|j|jd��tj|jd��dt	j
tjt
j�f�fd��Y}|�}d}tj||�|j|jddd	g�dS(
s7Test that the generated class can parse a flat message.RvNtAitMessageClasscseZ�ZRS((R#R$R�((tmsg_descriptor(sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR��ssflat: 0 flat: 1 flat: 2 ii(RRxRR�R�R�RRXR'R<R=RR>RR?RR�R,tflat(RR�R�R�tmsg_str((R�sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt0testParsingFlatClassWithExplicitClassDeclaration�s
.	cCs�tj�}|j|jd��tj|jd�}tj|�}|�}d}t	j
||�|j|jdddg�dS(s7Test that the generated class can parse a flat message.tBisflat: 0 flat: 1 flat: 2 iiN(
RR�R�R�RRXR'RR�RR�R,R�(RR�R�t	msg_classR�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestParsingFlatClass�s	cCs�tj�}|j|jd��tj|jd�}tj|�}|�}d}t	j
||�|j|jj
jd�dS(s9Test that the generated class can parse a nested message.tCisbar {  baz {    deep: 4  }}iN(RR�R�R�RRXR'RR�RR�R,R�R�tdeep(RR�R�R�R�R�((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyttestParsingNestedClasss	(R#R$R�R�RRxR�R�R�RtSkipReferenceLeakCheckerR�R�R�(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyR��s!	8t__main__()R%R�RmRdR<Rt	unittest2R�tImportErrortgoogle.protobufRRRRRRRRR�RR	R
RRR
RRtBaseTestCasetobjectRR+R�RRRRR>R�R�R#tmain(((sL/usr/lib/python2.7/site-packages/google/protobuf/internal/reflection_test.pyt<module>#s`
	-�������V!�9��3�PK�\��s�a�a protobuf/internal/containers.pyonu�[����
���hc@sdZdZddlZddlZejddkr�defd��YZdefd	��YZejje�ejje�n	ejZd
efd��YZ	de	fd
��YZ
ejje	�de	fd��YZdefd��YZ
defd��YZdS(s�Contains container classes to represent different protocol buffer types.

This file defines container classes which represent categories of protocol
buffer field types which need extra maintenance. Currently these categories
are:
  - Repeated scalar fields - These are all repeated fields which aren't
    composite (e.g. they are of simple types like int32, string, etc).
  - Repeated composite fields - Repeated fields which are composite. This
    includes groups and nested messages.
spetar@google.com (Petar Petrov)i����NiitMappingcBsqeZd
Zdd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�ZdZd�Z
d	�ZRS(cCs%y||SWntk
r |SXdS(N(tKeyError(tselftkeytdefault((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytgetGs
cCs)y||Wntk
r tSXtSdS(N(RtFalsetTrue(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__contains__Ms

cCs
t|�S(N(titer(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytiterkeysUsccsx|D]}||VqWdS(N((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt
itervaluesXs
ccs$x|D]}|||fVqWdS(N((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt	iteritems\s
cCs
t|�S(N(tlist(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytkeys`scCs!g|D]}|||f^qS(N((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytitemscscCsg|D]}||^qS(N((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytvaluesfscCs8t|tj�stSt|j��t|j��kS(N(t
isinstancetcollectionsRtNotImplementedtdictR(Rtother((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__eq__lscCs||kS(N((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__ne__qs(N(t__name__t
__module__t	__slots__tNoneRRR
RRRRRt__hash__RR(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRDs								tMutableMappingcBsJeZdZe�Zed�Zd�Zd�Zd�Zdd�Z
RS(cCsGy||}Wn'tk
r7||jkr3�n|SX||=|SdS(N(Rt_MutableMapping__marker(RRRtvalue((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytpopys
cCsKytt|��}Wntk
r/t�nX||}||=||fS(N(tnextR	t
StopIterationR(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytpopitem�s


cCs3yxtr|j�qWWntk
r.nXdS(N(RR#R(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytclear�s
	
cOs%t|�dkr0tdjt|����n|sEtd��n|d}t|�dkrk|dnd}t|t�r�xw|D]}||||<q�WnXt|d�r�xF|j�D]}||||<q�Wn!x|D]\}}|||<q�Wx$|j�D]\}}|||<qWdS(Nis8update() takes at most 2 positional arguments ({} given)s,update() takes at least 1 argument (0 given)iiR((tlent	TypeErrortformatRRthasattrRR(targstkwdsRRRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytupdate�s"	
"
cCs.y||SWntk
r)|||<nX|S(N(R(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt
setdefault�s

(N(RRRtobjectRR R#R$R+RR,(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRts					t
BaseContainercBsYeZdZddgZd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
RS(
sBase container class.t_message_listenert_valuescCs||_g|_dS(s�
    Args:
      message_listener: A MessageListener implementation.
        The RepeatedScalarFieldContainer will call this object's
        Modified() method when it is modified.
    N(R/R0(Rtmessage_listener((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__init__�s	cCs|j|S(s$Retrieves item by the specified key.(R0(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__getitem__�scCs
t|j�S(s0Returns the number of elements in the container.(R%R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__len__�scCs||kS(s3Checks if another instance isn't equal to this one.((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR�scCstd��dS(Nsunhashable object(R&(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR�scCs
t|j�S(N(treprR0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__repr__�scOs9d|kr"|jd�|d<n|jj||�dS(Nt
sort_functiontcmp(R R0tsort(RR)tkwargs((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR9�s(RRt__doc__RR2R3R4RRR6R9(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR.�s	
					tRepeatedScalarFieldContainercBs�eZdZdgZd�Zd�Zd�Zd�Zd�Zd�Z	dd	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�ZRS(sGSimple, type-checked, list-like container for holding repeated scalars.t
_type_checkercCs#tt|�j|�||_dS(s,
    Args:
      message_listener: A MessageListener implementation.
        The RepeatedScalarFieldContainer will call this object's
        Modified() method when it is modified.
      type_checker: A type_checkers.ValueChecker instance to run on elements
        inserted into this container.
    N(tsuperR<R2R=(RR1ttype_checker((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR2�s	cCs<|jj|jj|��|jjs8|jj�ndS(s6Appends an item to the list. Similar to list.append().N(R0tappendR=t
CheckValueR/tdirtytModified(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR@�scCs?|jj||jj|��|jjs;|jj�ndS(sEInserts the item at the specified position. Similar to list.insert().N(R0tinsertR=RAR/RBRC(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRD�scCs�|dkrdSyt|�}Wntk
r@|s:dS�nXg|D]}|jj|�^qH}|r|jj|�n|jj�dS(sBExtends by appending the given iterable. Similar to list.extend().N(	RR	R&R=RAR0textendR/RC(Rtelem_seqt
elem_seq_itertelemt
new_values((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyREs
%cCs$|jj|j�|jj�dS(s�Appends the contents of another repeated field of the same type to this
    one. We do not check the types of the individual fields.
    N(R0RER/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt	MergeFromscCs!|jj|�|jj�dS(s8Removes an item from the list. Similar to list.remove().N(R0tremoveR/RC(RRH((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRKsi����cCs|j|}|j|�|S(sDRemoves and returns an item at a given index. Similar to list.pop().(R0t__delitem__(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR $s

cCsst|t�rI|jdk	r-td��n|j|j|j|�n&|jj	|�|j
|<|jj�dS(s(Sets the item on the specified position.sExtended slices not supportedN(
RtslicetstepRt
ValueErrort__setslice__tstarttstopR=RAR0R/RC(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__setitem__*scCs|j||!S(sARetrieves the subset of items from between the specified indices.(R0(RRQRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__getslice__4scCsQg}x'|D]}|j|jj|��q
W||j||+|jj�dS(s<Sets the subset of items from between the specified indices.N(R@R=RAR0R/RC(RRQRRRRIR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRP8s

cCs|j|=|jj�dS(s+Deletes the item at the specified position.N(R0R/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRL@s
cCs|j||5|jj�dS(s?Deletes the subset of items from between the specified indices.N(R0R/RC(RRQRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__delslice__Es
cCs?||krtSt||j�r2|j|jkS||jkS(s/Compares the current instance with another one.(RRt	__class__R0(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRJs
(RRR;RR2R@RDRERJRKR RSRTRPRLRUR(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR<�s								
				tRepeatedCompositeFieldContainercBsteZdZdgZd�Zd�Zd�Zd�Zd�Zdd�Z	d	�Z
d
�Zd�Zd�Z
RS(
sBSimple, list-like container for holding repeated composite fields.t_message_descriptorcCs#tt|�j|�||_dS(s�
    Note that we pass in a descriptor instead of the generated directly,
    since at the time we construct a _RepeatedCompositeFieldContainer we
    haven't yet necessarily initialized the type that will be contained in the
    container.

    Args:
      message_listener: A MessageListener implementation.
        The RepeatedCompositeFieldContainer will call this object's
        Modified() method when it is modified.
      message_descriptor: A Descriptor instance describing the protocol type
        that should be present in this container.  We'll use the
        _concrete_class field of this descriptor when the client calls add().
    N(R>RWR2RX(RR1tmessage_descriptor((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR2^scKsR|jj|�}|j|j�|jj|�|jjsN|jj�n|S(s{Adds a new element at the end of the list and returns it. Keyword
    arguments may be used to initialize the element.
    (RXt_concrete_classt_SetListenerR/R0R@RBRC(RR:tnew_element((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytaddpscCsm|jj}|j}|j}x>|D]6}|�}|j|�|j|�|j|�q%W|j�dS(s{Extends by appending the given sequence of elements of the same type
    as this one, copying each individual message.
    N(RXRZR/R0R[RJR@RC(RRFt
message_classtlistenerRtmessageR\((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRE{s		
	

cCs|j|j�dS(svAppends the contents of another repeated field of the same type to this
    one, copying each individual message.
    N(RER0(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRJ�scCs!|jj|�|jj�dS(s8Removes an item from the list. Similar to list.remove().N(R0RKR/RC(RRH((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRK�si����cCs|j|}|j|�|S(sDRemoves and returns an item at a given index. Similar to list.pop().(R0RL(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR �s

cCs|j||!S(sARetrieves the subset of items from between the specified indices.(R0(RRQRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRT�scCs|j|=|jj�dS(s+Deletes the item at the specified position.N(R0R/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRL�s
cCs|j||5|jj�dS(s?Deletes the subset of items from between the specified indices.N(R0R/RC(RRQRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRU�s
cCsA||krtSt||j�s1td��n|j|jkS(s/Compares the current instance with another one.sSCan only compare repeated composite fields against other repeated composite fields.(RRRVR&R0(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR�s
(RRR;RR2R]RERJRKR RTRLRUR(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRWWs									t	ScalarMapcBs�eZdZdddddgZd�Zd�Zd�Zdd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�Zd�Zd�Zd�ZRS(sGSimple, type-checked, dict-like container for holding repeated scalars.t_key_checkert_value_checkerR0R/t_entry_descriptorcCs1||_||_||_||_i|_dS(s�
    Args:
      message_listener: A MessageListener implementation.
        The ScalarMap will call this object's Modified() method when it
        is modified.
      key_checker: A type_checkers.ValueChecker instance to run on keys
        inserted into this container.
      value_checker: A type_checkers.ValueChecker instance to run on values
        inserted into this container.
      entry_descriptor: The MessageDescriptor of a map entry: key and value.
    N(R/RbRcRdR0(RR1tkey_checkert
value_checkertentry_descriptor((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR2�s

				cCsVy|j|SWn@tk
rQ|jj|�}|jj�}||j|<|SXdS(N(R0RRbRARctDefaultValue(RRtval((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR3�s

cCs|jj|�||jkS(N(RbRAR0(Rtitem((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR�scCs||kr||S|SdS(N((RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR�scCsB|jj|�}|jj|�}||j|<|jj�dS(N(RbRARcR0R/RC(RRRtchecked_keyt
checked_value((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRS�s
cCs|j|=|jj�dS(N(R0R/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRL�s
cCs
t|j�S(N(R%R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR4�scCs
t|j�S(N(R	R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt__iter__�scCs
t|j�S(N(R5R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR6�scCs$|jj|j�|jj�dS(N(R0R+R/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRJ�scCs&|j}|j�|_d|d<dS(N(R0tcopyR(Rtoriginal((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pytInvalidateIterators�s	cCs|jj�|jj�dS(N(R0R$R/RC(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR$s
cCs
|jjS(N(RdRZ(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt
GetEntryClasssN(RRR;RR2R3RRRRSRLR4RmR6RJRpR$Rq(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRa�s 														t
MessageMapcBs�eZdZdddddgZd�Zd�Zd�Zdd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�Zd�Zd�Zd�Zd�ZRS(sESimple, type-checked, dict-like container for with submessage values.RbR0R/RXRdcCs1||_||_||_||_i|_dS(s�
    Args:
      message_listener: A MessageListener implementation.
        The ScalarMap will call this object's Modified() method when it
        is modified.
      key_checker: A type_checkers.ValueChecker instance to run on keys
        inserted into this container.
      value_checker: A type_checkers.ValueChecker instance to run on values
        inserted into this container.
      entry_descriptor: The MessageDescriptor of a map entry: key and value.
    N(R/RXRbRdR0(RR1RYReRg((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR2s

				cCssy|j|SWn]tk
rn|jj|�}|jj�}|j|j�||j|<|jj�|SXdS(N(	R0RRbRARXRZR[R/RC(RRR\((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR3's


cCs||S(saget_or_create() is an alias for getitem (ie. map[key]).

    Args:
      key: The key to get or create in the map.

    This is useful in cases where you want to be explicit that the call is
    mutating the map.  This can avoid lint errors for statements like this
    that otherwise would appear to be pointless statements:

      msg.my_map[key]
    ((RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt
get_or_create3scCs||kr||S|SdS(N((RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRDscCs
||jkS(N(R0(RRj((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRJscCstd��dS(Ns5May not set values directly, call my_map[key].foo = 5(RO(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRSMscCs|j|=|jj�dS(N(R0R/RC(RR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRLPs
cCs
t|j�S(N(R%R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR4TscCs
t|j�S(N(R	R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRmWscCs
t|j�S(N(R5R0(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR6ZscCs@x9|D]1}||kr#||=n||j||�qWdS(N(tCopyFrom(RRR((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRJ]s

cCs&|j}|j�|_d|d<dS(N(R0RnR(RRo((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRpgs	cCs|jj�|jj�dS(N(R0R$R/RC(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyR$os
cCs
|jjS(N(RdRZ(R((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRqssN(RRR;RR2R3RsRRRRSRLR4RmR6RJRpR$Rq(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyRrs"											
		(R;t
__author__Rtsystversion_infoR-RRtregisterR.R<tMutableSequenceRWRaRr(((sG/usr/lib/python2.7/site-packages/google/protobuf/internal/containers.pyt<module>(s0<	-n[ZPK�\�bQ|
|
(protobuf/internal/api_implementation.pycnu�[����
���hc@s�dZddlZddlZddlZy#ddlmZejZeZ	Wne
k
rldZeZ	nXedkr�ed��nedkr-y2ddl
mZes�e
d��n[d	ZWq-e
k
r)ydd
lmZ[Wq*e
k
r%e	r&ejddkr"d	Zq"q&q*Xq-Xnedkr?dnd
Zejde�Zedkrld
Zndejkr�ed
kr�ejd�dZnejdd�Zedkr�eded��nee�Zyddl
mZeZWne
k
reZnXd�Zd�Zd�Zed
krvy&ddlmZd�Z d�Z!Wq�e
k
rrq�Xnea"d�Z d�Z!dS(sLDetermine which implementation of the protobuf API is used in this process.
i����N(t_api_implementationis%api_version=1 is no longer supported.i(t_use_fast_cpp_protoss2_use_fast_cpp_protos import succeeded but was Nonei(tuse_pure_pythonitpythontcppt&PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATIONtPyPys\PyPy does not work yet with cpp protocol buffers. Falling back to the python implementation.t.PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSIONt2s=unsupported PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION: "s" (supported versions: 2)(t(enable_deterministic_proto_serializationcCstS(N(t_implementation_type(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pytType�scCstS(N(t_implementation_version(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pytVersion�scCstS(N(t)_python_deterministic_proto_serialization(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyt)IsPythonDefaultSerializationDeterministic�s(t_messagecCs
tj�S(N(Rt&GetPythonProto3PreserveUnknownsDefault(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyR�scCstj|�dS(N(Rt&SetPythonProto3PreserveUnknownsDefault(tpreserve((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyR�scCstS(N(t(_python_proto3_preserve_unknowns_default(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyR�scCs
|adS(N(R(R((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyR�s(#t__doc__tostwarningstsystgoogle.protobuf.internalRtapi_versiont_api_versiontTruet'_proto_extension_modules_exist_in_buildtImportErrortFalset
ValueErrortgoogle.protobufRRtversion_infot_default_implementation_typetgetenvR
tversiontwarnt_implementation_version_strtintRR	RRR
Rtgoogle.protobuf.pyextRRRR(((sO/usr/lib/python2.7/site-packages/google/protobuf/internal/api_implementation.pyt<module> sv	





			
	


				

	PK�\�8Gp�
�
&protobuf/internal/enum_type_wrapper.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""A simple wrapper around enum types to expose utility functions.

Instances are created as properties with the same name as the enum they wrap
on proto classes.  For usage, see:
  reflection_test.py
"""

__author__ = 'rabsatt@google.com (Kevin Rabsatt)'


class EnumTypeWrapper(object):
  """A utility for finding the names of enum values."""

  DESCRIPTOR = None

  def __init__(self, enum_type):
    """Inits EnumTypeWrapper with an EnumDescriptor."""
    self._enum_type = enum_type
    self.DESCRIPTOR = enum_type;

  def Name(self, number):
    """Returns a string containing the name of an enum value."""
    if number in self._enum_type.values_by_number:
      return self._enum_type.values_by_number[number].name
    raise ValueError('Enum %s has no name defined for value %d' % (
        self._enum_type.name, number))

  def Value(self, name):
    """Returns the value coresponding to the given enum name."""
    if name in self._enum_type.values_by_name:
      return self._enum_type.values_by_name[name].number
    raise ValueError('Enum %s has no value defined for name %s' % (
        self._enum_type.name, name))

  def keys(self):
    """Return a list of the string names in the enum.

    These are returned in the order they were defined in the .proto file.
    """

    return [value_descriptor.name
            for value_descriptor in self._enum_type.values]

  def values(self):
    """Return a list of the integer values in the enum.

    These are returned in the order they were defined in the .proto file.
    """

    return [value_descriptor.number
            for value_descriptor in self._enum_type.values]

  def items(self):
    """Return a list of the (name, value) pairs of the enum.

    These are returned in the order they were defined in the .proto file.
    """
    return [(value_descriptor.name, value_descriptor.number)
            for value_descriptor in self._enum_type.values]
PK�\��${�{�)protobuf/internal/descriptor_pool_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Tests for google.protobuf.descriptor_pool."""

__author__ = 'matthewtoia@google.com (Matt Toia)'

import os
import sys

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import unittest_import_pb2
from google.protobuf import unittest_import_public_pb2
from google.protobuf import unittest_pb2
from google.protobuf import descriptor_pb2
from google.protobuf.internal import api_implementation
from google.protobuf.internal import descriptor_pool_test1_pb2
from google.protobuf.internal import descriptor_pool_test2_pb2
from google.protobuf.internal import factory_test1_pb2
from google.protobuf.internal import factory_test2_pb2
from google.protobuf.internal import file_options_test_pb2
from google.protobuf.internal import more_messages_pb2
from google.protobuf import descriptor
from google.protobuf import descriptor_database
from google.protobuf import descriptor_pool
from google.protobuf import message_factory
from google.protobuf import symbol_database



class DescriptorPoolTestBase(object):

  def testFindFileByName(self):
    name1 = 'google/protobuf/internal/factory_test1.proto'
    file_desc1 = self.pool.FindFileByName(name1)
    self.assertIsInstance(file_desc1, descriptor.FileDescriptor)
    self.assertEqual(name1, file_desc1.name)
    self.assertEqual('google.protobuf.python.internal', file_desc1.package)
    self.assertIn('Factory1Message', file_desc1.message_types_by_name)

    name2 = 'google/protobuf/internal/factory_test2.proto'
    file_desc2 = self.pool.FindFileByName(name2)
    self.assertIsInstance(file_desc2, descriptor.FileDescriptor)
    self.assertEqual(name2, file_desc2.name)
    self.assertEqual('google.protobuf.python.internal', file_desc2.package)
    self.assertIn('Factory2Message', file_desc2.message_types_by_name)

  def testFindFileByNameFailure(self):
    with self.assertRaises(KeyError):
      self.pool.FindFileByName('Does not exist')

  def testFindFileContainingSymbol(self):
    file_desc1 = self.pool.FindFileContainingSymbol(
        'google.protobuf.python.internal.Factory1Message')
    self.assertIsInstance(file_desc1, descriptor.FileDescriptor)
    self.assertEqual('google/protobuf/internal/factory_test1.proto',
                     file_desc1.name)
    self.assertEqual('google.protobuf.python.internal', file_desc1.package)
    self.assertIn('Factory1Message', file_desc1.message_types_by_name)

    file_desc2 = self.pool.FindFileContainingSymbol(
        'google.protobuf.python.internal.Factory2Message')
    self.assertIsInstance(file_desc2, descriptor.FileDescriptor)
    self.assertEqual('google/protobuf/internal/factory_test2.proto',
                     file_desc2.name)
    self.assertEqual('google.protobuf.python.internal', file_desc2.package)
    self.assertIn('Factory2Message', file_desc2.message_types_by_name)

    # Tests top level extension.
    file_desc3 = self.pool.FindFileContainingSymbol(
        'google.protobuf.python.internal.another_field')
    self.assertIsInstance(file_desc3, descriptor.FileDescriptor)
    self.assertEqual('google/protobuf/internal/factory_test2.proto',
                     file_desc3.name)

    # Tests nested extension inside a message.
    file_desc4 = self.pool.FindFileContainingSymbol(
        'google.protobuf.python.internal.Factory2Message.one_more_field')
    self.assertIsInstance(file_desc4, descriptor.FileDescriptor)
    self.assertEqual('google/protobuf/internal/factory_test2.proto',
                     file_desc4.name)

    file_desc5 = self.pool.FindFileContainingSymbol(
        'protobuf_unittest.TestService')
    self.assertIsInstance(file_desc5, descriptor.FileDescriptor)
    self.assertEqual('google/protobuf/unittest.proto',
                     file_desc5.name)

  def testFindFileContainingSymbolFailure(self):
    with self.assertRaises(KeyError):
      self.pool.FindFileContainingSymbol('Does not exist')

  def testFindMessageTypeByName(self):
    msg1 = self.pool.FindMessageTypeByName(
        'google.protobuf.python.internal.Factory1Message')
    self.assertIsInstance(msg1, descriptor.Descriptor)
    self.assertEqual('Factory1Message', msg1.name)
    self.assertEqual('google.protobuf.python.internal.Factory1Message',
                     msg1.full_name)
    self.assertEqual(None, msg1.containing_type)
    self.assertFalse(msg1.has_options)

    nested_msg1 = msg1.nested_types[0]
    self.assertEqual('NestedFactory1Message', nested_msg1.name)
    self.assertEqual(msg1, nested_msg1.containing_type)

    nested_enum1 = msg1.enum_types[0]
    self.assertEqual('NestedFactory1Enum', nested_enum1.name)
    self.assertEqual(msg1, nested_enum1.containing_type)

    self.assertEqual(nested_msg1, msg1.fields_by_name[
        'nested_factory_1_message'].message_type)
    self.assertEqual(nested_enum1, msg1.fields_by_name[
        'nested_factory_1_enum'].enum_type)

    msg2 = self.pool.FindMessageTypeByName(
        'google.protobuf.python.internal.Factory2Message')
    self.assertIsInstance(msg2, descriptor.Descriptor)
    self.assertEqual('Factory2Message', msg2.name)
    self.assertEqual('google.protobuf.python.internal.Factory2Message',
                     msg2.full_name)
    self.assertIsNone(msg2.containing_type)

    nested_msg2 = msg2.nested_types[0]
    self.assertEqual('NestedFactory2Message', nested_msg2.name)
    self.assertEqual(msg2, nested_msg2.containing_type)

    nested_enum2 = msg2.enum_types[0]
    self.assertEqual('NestedFactory2Enum', nested_enum2.name)
    self.assertEqual(msg2, nested_enum2.containing_type)

    self.assertEqual(nested_msg2, msg2.fields_by_name[
        'nested_factory_2_message'].message_type)
    self.assertEqual(nested_enum2, msg2.fields_by_name[
        'nested_factory_2_enum'].enum_type)

    self.assertTrue(msg2.fields_by_name['int_with_default'].has_default_value)
    self.assertEqual(
        1776, msg2.fields_by_name['int_with_default'].default_value)

    self.assertTrue(
        msg2.fields_by_name['double_with_default'].has_default_value)
    self.assertEqual(
        9.99, msg2.fields_by_name['double_with_default'].default_value)

    self.assertTrue(
        msg2.fields_by_name['string_with_default'].has_default_value)
    self.assertEqual(
        'hello world', msg2.fields_by_name['string_with_default'].default_value)

    self.assertTrue(msg2.fields_by_name['bool_with_default'].has_default_value)
    self.assertFalse(msg2.fields_by_name['bool_with_default'].default_value)

    self.assertTrue(msg2.fields_by_name['enum_with_default'].has_default_value)
    self.assertEqual(
        1, msg2.fields_by_name['enum_with_default'].default_value)

    msg3 = self.pool.FindMessageTypeByName(
        'google.protobuf.python.internal.Factory2Message.NestedFactory2Message')
    self.assertEqual(nested_msg2, msg3)

    self.assertTrue(msg2.fields_by_name['bytes_with_default'].has_default_value)
    self.assertEqual(
        b'a\xfb\x00c',
        msg2.fields_by_name['bytes_with_default'].default_value)

    self.assertEqual(1, len(msg2.oneofs))
    self.assertEqual(1, len(msg2.oneofs_by_name))
    self.assertEqual(2, len(msg2.oneofs[0].fields))
    for name in ['oneof_int', 'oneof_string']:
      self.assertEqual(msg2.oneofs[0],
                       msg2.fields_by_name[name].containing_oneof)
      self.assertIn(msg2.fields_by_name[name], msg2.oneofs[0].fields)

  def testFindTypeErrors(self):
    self.assertRaises(TypeError, self.pool.FindExtensionByNumber, '')

    # TODO(jieluo): Fix python to raise correct errors.
    if api_implementation.Type() == 'cpp':
      self.assertRaises(TypeError, self.pool.FindMethodByName, 0)
      self.assertRaises(KeyError, self.pool.FindMethodByName, '')
      error_type = TypeError
    else:
      error_type = AttributeError
    self.assertRaises(error_type, self.pool.FindMessageTypeByName, 0)
    self.assertRaises(error_type, self.pool.FindFieldByName, 0)
    self.assertRaises(error_type, self.pool.FindExtensionByName, 0)
    self.assertRaises(error_type, self.pool.FindEnumTypeByName, 0)
    self.assertRaises(error_type, self.pool.FindOneofByName, 0)
    self.assertRaises(error_type, self.pool.FindServiceByName, 0)
    self.assertRaises(error_type, self.pool.FindFileContainingSymbol, 0)
    if api_implementation.Type() == 'python':
      error_type = KeyError
    self.assertRaises(error_type, self.pool.FindFileByName, 0)

  def testFindMessageTypeByNameFailure(self):
    with self.assertRaises(KeyError):
      self.pool.FindMessageTypeByName('Does not exist')

  def testFindEnumTypeByName(self):
    enum1 = self.pool.FindEnumTypeByName(
        'google.protobuf.python.internal.Factory1Enum')
    self.assertIsInstance(enum1, descriptor.EnumDescriptor)
    self.assertEqual(0, enum1.values_by_name['FACTORY_1_VALUE_0'].number)
    self.assertEqual(1, enum1.values_by_name['FACTORY_1_VALUE_1'].number)
    self.assertFalse(enum1.has_options)

    nested_enum1 = self.pool.FindEnumTypeByName(
        'google.protobuf.python.internal.Factory1Message.NestedFactory1Enum')
    self.assertIsInstance(nested_enum1, descriptor.EnumDescriptor)
    self.assertEqual(
        0, nested_enum1.values_by_name['NESTED_FACTORY_1_VALUE_0'].number)
    self.assertEqual(
        1, nested_enum1.values_by_name['NESTED_FACTORY_1_VALUE_1'].number)

    enum2 = self.pool.FindEnumTypeByName(
        'google.protobuf.python.internal.Factory2Enum')
    self.assertIsInstance(enum2, descriptor.EnumDescriptor)
    self.assertEqual(0, enum2.values_by_name['FACTORY_2_VALUE_0'].number)
    self.assertEqual(1, enum2.values_by_name['FACTORY_2_VALUE_1'].number)

    nested_enum2 = self.pool.FindEnumTypeByName(
        'google.protobuf.python.internal.Factory2Message.NestedFactory2Enum')
    self.assertIsInstance(nested_enum2, descriptor.EnumDescriptor)
    self.assertEqual(
        0, nested_enum2.values_by_name['NESTED_FACTORY_2_VALUE_0'].number)
    self.assertEqual(
        1, nested_enum2.values_by_name['NESTED_FACTORY_2_VALUE_1'].number)

  def testFindEnumTypeByNameFailure(self):
    with self.assertRaises(KeyError):
      self.pool.FindEnumTypeByName('Does not exist')

  def testFindFieldByName(self):
    if isinstance(self, SecondaryDescriptorFromDescriptorDB):
      if api_implementation.Type() == 'cpp':
        # TODO(jieluo): Fix cpp extension to find field correctly
        # when descriptor pool is using an underlying database.
        return
    field = self.pool.FindFieldByName(
        'google.protobuf.python.internal.Factory1Message.list_value')
    self.assertEqual(field.name, 'list_value')
    self.assertEqual(field.label, field.LABEL_REPEATED)
    self.assertFalse(field.has_options)

    with self.assertRaises(KeyError):
      self.pool.FindFieldByName('Does not exist')

  def testFindOneofByName(self):
    if isinstance(self, SecondaryDescriptorFromDescriptorDB):
      if api_implementation.Type() == 'cpp':
        # TODO(jieluo): Fix cpp extension to find oneof correctly
        # when descriptor pool is using an underlying database.
        return
    oneof = self.pool.FindOneofByName(
        'google.protobuf.python.internal.Factory2Message.oneof_field')
    self.assertEqual(oneof.name, 'oneof_field')
    with self.assertRaises(KeyError):
      self.pool.FindOneofByName('Does not exist')

  def testFindExtensionByName(self):
    if isinstance(self, SecondaryDescriptorFromDescriptorDB):
      if api_implementation.Type() == 'cpp':
        # TODO(jieluo): Fix cpp extension to find extension correctly
        # when descriptor pool is using an underlying database.
        return
    # An extension defined in a message.
    extension = self.pool.FindExtensionByName(
        'google.protobuf.python.internal.Factory2Message.one_more_field')
    self.assertEqual(extension.name, 'one_more_field')
    # An extension defined at file scope.
    extension = self.pool.FindExtensionByName(
        'google.protobuf.python.internal.another_field')
    self.assertEqual(extension.name, 'another_field')
    self.assertEqual(extension.number, 1002)
    with self.assertRaises(KeyError):
      self.pool.FindFieldByName('Does not exist')

  def testFindAllExtensions(self):
    factory1_message = self.pool.FindMessageTypeByName(
        'google.protobuf.python.internal.Factory1Message')
    factory2_message = self.pool.FindMessageTypeByName(
        'google.protobuf.python.internal.Factory2Message')
    # An extension defined in a message.
    one_more_field = factory2_message.extensions_by_name['one_more_field']
    self.pool.AddExtensionDescriptor(one_more_field)
    # An extension defined at file scope.
    factory_test2 = self.pool.FindFileByName(
        'google/protobuf/internal/factory_test2.proto')
    another_field = factory_test2.extensions_by_name['another_field']
    self.pool.AddExtensionDescriptor(another_field)

    extensions = self.pool.FindAllExtensions(factory1_message)
    expected_extension_numbers = set([one_more_field, another_field])
    self.assertEqual(expected_extension_numbers, set(extensions))
    # Verify that mutating the returned list does not affect the pool.
    extensions.append('unexpected_element')
    # Get the extensions again, the returned value does not contain the
    # 'unexpected_element'.
    extensions = self.pool.FindAllExtensions(factory1_message)
    self.assertEqual(expected_extension_numbers, set(extensions))

  def testFindExtensionByNumber(self):
    factory1_message = self.pool.FindMessageTypeByName(
        'google.protobuf.python.internal.Factory1Message')
    factory2_message = self.pool.FindMessageTypeByName(
        'google.protobuf.python.internal.Factory2Message')
    # An extension defined in a message.
    one_more_field = factory2_message.extensions_by_name['one_more_field']
    self.pool.AddExtensionDescriptor(one_more_field)
    # An extension defined at file scope.
    factory_test2 = self.pool.FindFileByName(
        'google/protobuf/internal/factory_test2.proto')
    another_field = factory_test2.extensions_by_name['another_field']
    self.pool.AddExtensionDescriptor(another_field)

    # An extension defined in a message.
    extension = self.pool.FindExtensionByNumber(factory1_message, 1001)
    self.assertEqual(extension.name, 'one_more_field')
    # An extension defined at file scope.
    extension = self.pool.FindExtensionByNumber(factory1_message, 1002)
    self.assertEqual(extension.name, 'another_field')
    with self.assertRaises(KeyError):
      extension = self.pool.FindExtensionByNumber(factory1_message, 1234567)

  def testExtensionsAreNotFields(self):
    with self.assertRaises(KeyError):
      self.pool.FindFieldByName('google.protobuf.python.internal.another_field')
    with self.assertRaises(KeyError):
      self.pool.FindFieldByName(
          'google.protobuf.python.internal.Factory2Message.one_more_field')
    with self.assertRaises(KeyError):
      self.pool.FindExtensionByName(
          'google.protobuf.python.internal.Factory1Message.list_value')

  def testFindService(self):
    service = self.pool.FindServiceByName('protobuf_unittest.TestService')
    self.assertEqual(service.full_name, 'protobuf_unittest.TestService')
    with self.assertRaises(KeyError):
      self.pool.FindServiceByName('Does not exist')

  def testUserDefinedDB(self):
    db = descriptor_database.DescriptorDatabase()
    self.pool = descriptor_pool.DescriptorPool(db)
    db.Add(self.factory_test1_fd)
    db.Add(self.factory_test2_fd)
    self.testFindMessageTypeByName()

  def testAddSerializedFile(self):
    if isinstance(self, SecondaryDescriptorFromDescriptorDB):
      if api_implementation.Type() == 'cpp':
        # Cpp extension cannot call Add on a DescriptorPool
        # that uses a DescriptorDatabase.
        # TODO(jieluo): Fix python and cpp extension diff.
        return
    self.pool = descriptor_pool.DescriptorPool()
    self.pool.AddSerializedFile(self.factory_test1_fd.SerializeToString())
    self.pool.AddSerializedFile(self.factory_test2_fd.SerializeToString())
    self.testFindMessageTypeByName()


  def testEnumDefaultValue(self):
    """Test the default value of enums which don't start at zero."""
    def _CheckDefaultValue(file_descriptor):
      default_value = (file_descriptor
                       .message_types_by_name['DescriptorPoolTest1']
                       .fields_by_name['nested_enum']
                       .default_value)
      self.assertEqual(default_value,
                       descriptor_pool_test1_pb2.DescriptorPoolTest1.BETA)
    # First check what the generated descriptor contains.
    _CheckDefaultValue(descriptor_pool_test1_pb2.DESCRIPTOR)
    # Then check the generated pool. Normally this is the same descriptor.
    file_descriptor = symbol_database.Default().pool.FindFileByName(
        'google/protobuf/internal/descriptor_pool_test1.proto')
    self.assertIs(file_descriptor, descriptor_pool_test1_pb2.DESCRIPTOR)
    _CheckDefaultValue(file_descriptor)

    if isinstance(self, SecondaryDescriptorFromDescriptorDB):
      if api_implementation.Type() == 'cpp':
        # Cpp extension cannot call Add on a DescriptorPool
        # that uses a DescriptorDatabase.
        # TODO(jieluo): Fix python and cpp extension diff.
        return
    # Then check the dynamic pool and its internal DescriptorDatabase.
    descriptor_proto = descriptor_pb2.FileDescriptorProto.FromString(
        descriptor_pool_test1_pb2.DESCRIPTOR.serialized_pb)
    self.pool.Add(descriptor_proto)
    # And do the same check as above
    file_descriptor = self.pool.FindFileByName(
        'google/protobuf/internal/descriptor_pool_test1.proto')
    _CheckDefaultValue(file_descriptor)

  def testDefaultValueForCustomMessages(self):
    """Check the value returned by non-existent fields."""
    def _CheckValueAndType(value, expected_value, expected_type):
      self.assertEqual(value, expected_value)
      self.assertIsInstance(value, expected_type)

    def _CheckDefaultValues(msg):
      try:
        int64 = long
      except NameError:  # Python3
        int64 = int
      try:
        unicode_type = unicode
      except NameError:  # Python3
        unicode_type = str
      _CheckValueAndType(msg.optional_int32, 0, int)
      _CheckValueAndType(msg.optional_uint64, 0, (int64, int))
      _CheckValueAndType(msg.optional_float, 0, (float, int))
      _CheckValueAndType(msg.optional_double, 0, (float, int))
      _CheckValueAndType(msg.optional_bool, False, bool)
      _CheckValueAndType(msg.optional_string, u'', unicode_type)
      _CheckValueAndType(msg.optional_bytes, b'', bytes)
      _CheckValueAndType(msg.optional_nested_enum, msg.FOO, int)
    # First for the generated message
    _CheckDefaultValues(unittest_pb2.TestAllTypes())
    # Then for a message built with from the DescriptorPool.
    pool = descriptor_pool.DescriptorPool()
    pool.Add(descriptor_pb2.FileDescriptorProto.FromString(
        unittest_import_public_pb2.DESCRIPTOR.serialized_pb))
    pool.Add(descriptor_pb2.FileDescriptorProto.FromString(
        unittest_import_pb2.DESCRIPTOR.serialized_pb))
    pool.Add(descriptor_pb2.FileDescriptorProto.FromString(
        unittest_pb2.DESCRIPTOR.serialized_pb))
    message_class = message_factory.MessageFactory(pool).GetPrototype(
        pool.FindMessageTypeByName(
            unittest_pb2.TestAllTypes.DESCRIPTOR.full_name))
    _CheckDefaultValues(message_class())

  def testAddFileDescriptor(self):
    if isinstance(self, SecondaryDescriptorFromDescriptorDB):
      if api_implementation.Type() == 'cpp':
        # Cpp extension cannot call Add on a DescriptorPool
        # that uses a DescriptorDatabase.
        # TODO(jieluo): Fix python and cpp extension diff.
        return
    file_desc = descriptor_pb2.FileDescriptorProto(name='some/file.proto')
    self.pool.Add(file_desc)
    self.pool.AddSerializedFile(file_desc.SerializeToString())

  def testComplexNesting(self):
    if isinstance(self, SecondaryDescriptorFromDescriptorDB):
      if api_implementation.Type() == 'cpp':
        # Cpp extension cannot call Add on a DescriptorPool
        # that uses a DescriptorDatabase.
        # TODO(jieluo): Fix python and cpp extension diff.
        return
    more_messages_desc = descriptor_pb2.FileDescriptorProto.FromString(
        more_messages_pb2.DESCRIPTOR.serialized_pb)
    test1_desc = descriptor_pb2.FileDescriptorProto.FromString(
        descriptor_pool_test1_pb2.DESCRIPTOR.serialized_pb)
    test2_desc = descriptor_pb2.FileDescriptorProto.FromString(
        descriptor_pool_test2_pb2.DESCRIPTOR.serialized_pb)
    self.pool.Add(more_messages_desc)
    self.pool.Add(test1_desc)
    self.pool.Add(test2_desc)
    TEST1_FILE.CheckFile(self, self.pool)
    TEST2_FILE.CheckFile(self, self.pool)


class DefaultDescriptorPoolTest(DescriptorPoolTestBase, unittest.TestCase):

  def setUp(self):
    self.pool = descriptor_pool.Default()
    self.factory_test1_fd = descriptor_pb2.FileDescriptorProto.FromString(
        factory_test1_pb2.DESCRIPTOR.serialized_pb)
    self.factory_test2_fd = descriptor_pb2.FileDescriptorProto.FromString(
        factory_test2_pb2.DESCRIPTOR.serialized_pb)

  def testFindMethods(self):
    self.assertIs(
        self.pool.FindFileByName('google/protobuf/unittest.proto'),
        unittest_pb2.DESCRIPTOR)
    self.assertIs(
        self.pool.FindMessageTypeByName('protobuf_unittest.TestAllTypes'),
        unittest_pb2.TestAllTypes.DESCRIPTOR)
    self.assertIs(
        self.pool.FindFieldByName(
            'protobuf_unittest.TestAllTypes.optional_int32'),
        unittest_pb2.TestAllTypes.DESCRIPTOR.fields_by_name['optional_int32'])
    self.assertIs(
        self.pool.FindEnumTypeByName('protobuf_unittest.ForeignEnum'),
        unittest_pb2.ForeignEnum.DESCRIPTOR)
    self.assertIs(
        self.pool.FindExtensionByName(
            'protobuf_unittest.optional_int32_extension'),
        unittest_pb2.DESCRIPTOR.extensions_by_name['optional_int32_extension'])
    self.assertIs(
        self.pool.FindOneofByName('protobuf_unittest.TestAllTypes.oneof_field'),
        unittest_pb2.TestAllTypes.DESCRIPTOR.oneofs_by_name['oneof_field'])
    self.assertIs(
        self.pool.FindServiceByName('protobuf_unittest.TestService'),
        unittest_pb2.DESCRIPTOR.services_by_name['TestService'])


class CreateDescriptorPoolTest(DescriptorPoolTestBase, unittest.TestCase):

  def setUp(self):
    self.pool = descriptor_pool.DescriptorPool()
    self.factory_test1_fd = descriptor_pb2.FileDescriptorProto.FromString(
        factory_test1_pb2.DESCRIPTOR.serialized_pb)
    self.factory_test2_fd = descriptor_pb2.FileDescriptorProto.FromString(
        factory_test2_pb2.DESCRIPTOR.serialized_pb)
    self.pool.Add(self.factory_test1_fd)
    self.pool.Add(self.factory_test2_fd)

    self.pool.Add(descriptor_pb2.FileDescriptorProto.FromString(
        unittest_import_public_pb2.DESCRIPTOR.serialized_pb))
    self.pool.Add(descriptor_pb2.FileDescriptorProto.FromString(
        unittest_import_pb2.DESCRIPTOR.serialized_pb))
    self.pool.Add(descriptor_pb2.FileDescriptorProto.FromString(
        unittest_pb2.DESCRIPTOR.serialized_pb))


class SecondaryDescriptorFromDescriptorDB(DescriptorPoolTestBase,
                                          unittest.TestCase):

  def setUp(self):
    self.factory_test1_fd = descriptor_pb2.FileDescriptorProto.FromString(
        factory_test1_pb2.DESCRIPTOR.serialized_pb)
    self.factory_test2_fd = descriptor_pb2.FileDescriptorProto.FromString(
        factory_test2_pb2.DESCRIPTOR.serialized_pb)
    db = descriptor_database.DescriptorDatabase()
    db.Add(self.factory_test1_fd)
    db.Add(self.factory_test2_fd)
    db.Add(descriptor_pb2.FileDescriptorProto.FromString(
        unittest_import_public_pb2.DESCRIPTOR.serialized_pb))
    db.Add(descriptor_pb2.FileDescriptorProto.FromString(
        unittest_import_pb2.DESCRIPTOR.serialized_pb))
    db.Add(descriptor_pb2.FileDescriptorProto.FromString(
        unittest_pb2.DESCRIPTOR.serialized_pb))
    self.pool = descriptor_pool.DescriptorPool(descriptor_db=db)


class ProtoFile(object):

  def __init__(self, name, package, messages, dependencies=None,
               public_dependencies=None):
    self.name = name
    self.package = package
    self.messages = messages
    self.dependencies = dependencies or []
    self.public_dependencies = public_dependencies or []

  def CheckFile(self, test, pool):
    file_desc = pool.FindFileByName(self.name)
    test.assertEqual(self.name, file_desc.name)
    test.assertEqual(self.package, file_desc.package)
    dependencies_names = [f.name for f in file_desc.dependencies]
    test.assertEqual(self.dependencies, dependencies_names)
    public_dependencies_names = [f.name for f in file_desc.public_dependencies]
    test.assertEqual(self.public_dependencies, public_dependencies_names)
    for name, msg_type in self.messages.items():
      msg_type.CheckType(test, None, name, file_desc)


class EnumType(object):

  def __init__(self, values):
    self.values = values

  def CheckType(self, test, msg_desc, name, file_desc):
    enum_desc = msg_desc.enum_types_by_name[name]
    test.assertEqual(name, enum_desc.name)
    expected_enum_full_name = '.'.join([msg_desc.full_name, name])
    test.assertEqual(expected_enum_full_name, enum_desc.full_name)
    test.assertEqual(msg_desc, enum_desc.containing_type)
    test.assertEqual(file_desc, enum_desc.file)
    for index, (value, number) in enumerate(self.values):
      value_desc = enum_desc.values_by_name[value]
      test.assertEqual(value, value_desc.name)
      test.assertEqual(index, value_desc.index)
      test.assertEqual(number, value_desc.number)
      test.assertEqual(enum_desc, value_desc.type)
      test.assertIn(value, msg_desc.enum_values_by_name)


class MessageType(object):

  def __init__(self, type_dict, field_list, is_extendable=False,
               extensions=None):
    self.type_dict = type_dict
    self.field_list = field_list
    self.is_extendable = is_extendable
    self.extensions = extensions or []

  def CheckType(self, test, containing_type_desc, name, file_desc):
    if containing_type_desc is None:
      desc = file_desc.message_types_by_name[name]
      expected_full_name = '.'.join([file_desc.package, name])
    else:
      desc = containing_type_desc.nested_types_by_name[name]
      expected_full_name = '.'.join([containing_type_desc.full_name, name])

    test.assertEqual(name, desc.name)
    test.assertEqual(expected_full_name, desc.full_name)
    test.assertEqual(containing_type_desc, desc.containing_type)
    test.assertEqual(desc.file, file_desc)
    test.assertEqual(self.is_extendable, desc.is_extendable)
    for name, subtype in self.type_dict.items():
      subtype.CheckType(test, desc, name, file_desc)

    for index, (name, field) in enumerate(self.field_list):
      field.CheckField(test, desc, name, index, file_desc)

    for index, (name, field) in enumerate(self.extensions):
      field.CheckField(test, desc, name, index, file_desc)


class EnumField(object):

  def __init__(self, number, type_name, default_value):
    self.number = number
    self.type_name = type_name
    self.default_value = default_value

  def CheckField(self, test, msg_desc, name, index, file_desc):
    field_desc = msg_desc.fields_by_name[name]
    enum_desc = msg_desc.enum_types_by_name[self.type_name]
    test.assertEqual(name, field_desc.name)
    expected_field_full_name = '.'.join([msg_desc.full_name, name])
    test.assertEqual(expected_field_full_name, field_desc.full_name)
    test.assertEqual(index, field_desc.index)
    test.assertEqual(self.number, field_desc.number)
    test.assertEqual(descriptor.FieldDescriptor.TYPE_ENUM, field_desc.type)
    test.assertEqual(descriptor.FieldDescriptor.CPPTYPE_ENUM,
                     field_desc.cpp_type)
    test.assertTrue(field_desc.has_default_value)
    test.assertEqual(enum_desc.values_by_name[self.default_value].number,
                     field_desc.default_value)
    test.assertFalse(enum_desc.values_by_name[self.default_value].has_options)
    test.assertEqual(msg_desc, field_desc.containing_type)
    test.assertEqual(enum_desc, field_desc.enum_type)
    test.assertEqual(file_desc, enum_desc.file)


class MessageField(object):

  def __init__(self, number, type_name):
    self.number = number
    self.type_name = type_name

  def CheckField(self, test, msg_desc, name, index, file_desc):
    field_desc = msg_desc.fields_by_name[name]
    field_type_desc = msg_desc.nested_types_by_name[self.type_name]
    test.assertEqual(name, field_desc.name)
    expected_field_full_name = '.'.join([msg_desc.full_name, name])
    test.assertEqual(expected_field_full_name, field_desc.full_name)
    test.assertEqual(index, field_desc.index)
    test.assertEqual(self.number, field_desc.number)
    test.assertEqual(descriptor.FieldDescriptor.TYPE_MESSAGE, field_desc.type)
    test.assertEqual(descriptor.FieldDescriptor.CPPTYPE_MESSAGE,
                     field_desc.cpp_type)
    test.assertFalse(field_desc.has_default_value)
    test.assertEqual(msg_desc, field_desc.containing_type)
    test.assertEqual(field_type_desc, field_desc.message_type)
    test.assertEqual(file_desc, field_desc.file)
    # TODO(jieluo): Fix python and cpp extension diff for message field
    # default value.
    if api_implementation.Type() == 'cpp':
      test.assertRaises(
          NotImplementedError, getattr, field_desc, 'default_value')


class StringField(object):

  def __init__(self, number, default_value):
    self.number = number
    self.default_value = default_value

  def CheckField(self, test, msg_desc, name, index, file_desc):
    field_desc = msg_desc.fields_by_name[name]
    test.assertEqual(name, field_desc.name)
    expected_field_full_name = '.'.join([msg_desc.full_name, name])
    test.assertEqual(expected_field_full_name, field_desc.full_name)
    test.assertEqual(index, field_desc.index)
    test.assertEqual(self.number, field_desc.number)
    test.assertEqual(descriptor.FieldDescriptor.TYPE_STRING, field_desc.type)
    test.assertEqual(descriptor.FieldDescriptor.CPPTYPE_STRING,
                     field_desc.cpp_type)
    test.assertTrue(field_desc.has_default_value)
    test.assertEqual(self.default_value, field_desc.default_value)
    test.assertEqual(file_desc, field_desc.file)


class ExtensionField(object):

  def __init__(self, number, extended_type):
    self.number = number
    self.extended_type = extended_type

  def CheckField(self, test, msg_desc, name, index, file_desc):
    field_desc = msg_desc.extensions_by_name[name]
    test.assertEqual(name, field_desc.name)
    expected_field_full_name = '.'.join([msg_desc.full_name, name])
    test.assertEqual(expected_field_full_name, field_desc.full_name)
    test.assertEqual(self.number, field_desc.number)
    test.assertEqual(index, field_desc.index)
    test.assertEqual(descriptor.FieldDescriptor.TYPE_MESSAGE, field_desc.type)
    test.assertEqual(descriptor.FieldDescriptor.CPPTYPE_MESSAGE,
                     field_desc.cpp_type)
    test.assertFalse(field_desc.has_default_value)
    test.assertTrue(field_desc.is_extension)
    test.assertEqual(msg_desc, field_desc.extension_scope)
    test.assertEqual(msg_desc, field_desc.message_type)
    test.assertEqual(self.extended_type, field_desc.containing_type.name)
    test.assertEqual(file_desc, field_desc.file)


class AddDescriptorTest(unittest.TestCase):

  def _TestMessage(self, prefix):
    pool = descriptor_pool.DescriptorPool()
    pool.AddDescriptor(unittest_pb2.TestAllTypes.DESCRIPTOR)
    self.assertEqual(
        'protobuf_unittest.TestAllTypes',
        pool.FindMessageTypeByName(
            prefix + 'protobuf_unittest.TestAllTypes').full_name)

    # AddDescriptor is not recursive.
    with self.assertRaises(KeyError):
      pool.FindMessageTypeByName(
          prefix + 'protobuf_unittest.TestAllTypes.NestedMessage')

    pool.AddDescriptor(unittest_pb2.TestAllTypes.NestedMessage.DESCRIPTOR)
    self.assertEqual(
        'protobuf_unittest.TestAllTypes.NestedMessage',
        pool.FindMessageTypeByName(
            prefix + 'protobuf_unittest.TestAllTypes.NestedMessage').full_name)

    # Files are implicitly also indexed when messages are added.
    self.assertEqual(
        'google/protobuf/unittest.proto',
        pool.FindFileByName(
            'google/protobuf/unittest.proto').name)

    self.assertEqual(
        'google/protobuf/unittest.proto',
        pool.FindFileContainingSymbol(
            prefix + 'protobuf_unittest.TestAllTypes.NestedMessage').name)

  @unittest.skipIf(api_implementation.Type() == 'cpp',
                   'With the cpp implementation, Add() must be called first')
  def testMessage(self):
    self._TestMessage('')
    self._TestMessage('.')

  def _TestEnum(self, prefix):
    pool = descriptor_pool.DescriptorPool()
    pool.AddEnumDescriptor(unittest_pb2.ForeignEnum.DESCRIPTOR)
    self.assertEqual(
        'protobuf_unittest.ForeignEnum',
        pool.FindEnumTypeByName(
            prefix + 'protobuf_unittest.ForeignEnum').full_name)

    # AddEnumDescriptor is not recursive.
    with self.assertRaises(KeyError):
      pool.FindEnumTypeByName(
          prefix + 'protobuf_unittest.ForeignEnum.NestedEnum')

    pool.AddEnumDescriptor(unittest_pb2.TestAllTypes.NestedEnum.DESCRIPTOR)
    self.assertEqual(
        'protobuf_unittest.TestAllTypes.NestedEnum',
        pool.FindEnumTypeByName(
            prefix + 'protobuf_unittest.TestAllTypes.NestedEnum').full_name)

    # Files are implicitly also indexed when enums are added.
    self.assertEqual(
        'google/protobuf/unittest.proto',
        pool.FindFileByName(
            'google/protobuf/unittest.proto').name)

    self.assertEqual(
        'google/protobuf/unittest.proto',
        pool.FindFileContainingSymbol(
            prefix + 'protobuf_unittest.TestAllTypes.NestedEnum').name)

  @unittest.skipIf(api_implementation.Type() == 'cpp',
                   'With the cpp implementation, Add() must be called first')
  def testEnum(self):
    self._TestEnum('')
    self._TestEnum('.')

  @unittest.skipIf(api_implementation.Type() == 'cpp',
                   'With the cpp implementation, Add() must be called first')
  def testService(self):
    pool = descriptor_pool.DescriptorPool()
    with self.assertRaises(KeyError):
      pool.FindServiceByName('protobuf_unittest.TestService')
    pool.AddServiceDescriptor(unittest_pb2._TESTSERVICE)
    self.assertEqual(
        'protobuf_unittest.TestService',
        pool.FindServiceByName('protobuf_unittest.TestService').full_name)

  @unittest.skipIf(api_implementation.Type() == 'cpp',
                   'With the cpp implementation, Add() must be called first')
  def testFile(self):
    pool = descriptor_pool.DescriptorPool()
    pool.AddFileDescriptor(unittest_pb2.DESCRIPTOR)
    self.assertEqual(
        'google/protobuf/unittest.proto',
        pool.FindFileByName(
            'google/protobuf/unittest.proto').name)

    # AddFileDescriptor is not recursive; messages and enums within files must
    # be explicitly registered.
    with self.assertRaises(KeyError):
      pool.FindFileContainingSymbol(
          'protobuf_unittest.TestAllTypes')

  def testEmptyDescriptorPool(self):
    # Check that an empty DescriptorPool() contains no messages.
    pool = descriptor_pool.DescriptorPool()
    proto_file_name = descriptor_pb2.DESCRIPTOR.name
    self.assertRaises(KeyError, pool.FindFileByName, proto_file_name)
    # Add the above file to the pool
    file_descriptor = descriptor_pb2.FileDescriptorProto()
    descriptor_pb2.DESCRIPTOR.CopyToProto(file_descriptor)
    pool.Add(file_descriptor)
    # Now it exists.
    self.assertTrue(pool.FindFileByName(proto_file_name))

  def testCustomDescriptorPool(self):
    # Create a new pool, and add a file descriptor.
    pool = descriptor_pool.DescriptorPool()
    file_desc = descriptor_pb2.FileDescriptorProto(
        name='some/file.proto', package='package')
    file_desc.message_type.add(name='Message')
    pool.Add(file_desc)
    self.assertEqual(pool.FindFileByName('some/file.proto').name,
                     'some/file.proto')
    self.assertEqual(pool.FindMessageTypeByName('package.Message').name,
                     'Message')
    # Test no package
    file_proto = descriptor_pb2.FileDescriptorProto(
        name='some/filename/container.proto')
    message_proto = file_proto.message_type.add(
        name='TopMessage')
    message_proto.field.add(
        name='bb',
        number=1,
        type=descriptor_pb2.FieldDescriptorProto.TYPE_INT32,
        label=descriptor_pb2.FieldDescriptorProto.LABEL_OPTIONAL)
    enum_proto = file_proto.enum_type.add(name='TopEnum')
    enum_proto.value.add(name='FOREIGN_FOO', number=4)
    file_proto.service.add(name='TopService')
    pool = descriptor_pool.DescriptorPool()
    pool.Add(file_proto)
    self.assertEqual('TopMessage',
                     pool.FindMessageTypeByName('TopMessage').name)
    self.assertEqual('TopEnum', pool.FindEnumTypeByName('TopEnum').name)
    self.assertEqual('TopService', pool.FindServiceByName('TopService').name)

  def testFileDescriptorOptionsWithCustomDescriptorPool(self):
    # Create a descriptor pool, and add a new FileDescriptorProto to it.
    pool = descriptor_pool.DescriptorPool()
    file_name = 'file_descriptor_options_with_custom_descriptor_pool.proto'
    file_descriptor_proto = descriptor_pb2.FileDescriptorProto(name=file_name)
    extension_id = file_options_test_pb2.foo_options
    file_descriptor_proto.options.Extensions[extension_id].foo_name = 'foo'
    pool.Add(file_descriptor_proto)
    # The options set on the FileDescriptorProto should be available in the
    # descriptor even if they contain extensions that cannot be deserialized
    # using the pool.
    file_descriptor = pool.FindFileByName(file_name)
    options = file_descriptor.GetOptions()
    self.assertEqual('foo', options.Extensions[extension_id].foo_name)
    # The object returned by GetOptions() is cached.
    self.assertIs(options, file_descriptor.GetOptions())

  def testAddTypeError(self):
    pool = descriptor_pool.DescriptorPool()
    with self.assertRaises(TypeError):
      pool.AddDescriptor(0)
    with self.assertRaises(TypeError):
      pool.AddEnumDescriptor(0)
    with self.assertRaises(TypeError):
      pool.AddServiceDescriptor(0)
    with self.assertRaises(TypeError):
      pool.AddExtensionDescriptor(0)
    with self.assertRaises(TypeError):
      pool.AddFileDescriptor(0)


TEST1_FILE = ProtoFile(
    'google/protobuf/internal/descriptor_pool_test1.proto',
    'google.protobuf.python.internal',
    {
        'DescriptorPoolTest1': MessageType({
            'NestedEnum': EnumType([('ALPHA', 1), ('BETA', 2)]),
            'NestedMessage': MessageType({
                'NestedEnum': EnumType([('EPSILON', 5), ('ZETA', 6)]),
                'DeepNestedMessage': MessageType({
                    'NestedEnum': EnumType([('ETA', 7), ('THETA', 8)]),
                }, [
                    ('nested_enum', EnumField(1, 'NestedEnum', 'ETA')),
                    ('nested_field', StringField(2, 'theta')),
                ]),
            }, [
                ('nested_enum', EnumField(1, 'NestedEnum', 'ZETA')),
                ('nested_field', StringField(2, 'beta')),
                ('deep_nested_message', MessageField(3, 'DeepNestedMessage')),
            ])
        }, [
            ('nested_enum', EnumField(1, 'NestedEnum', 'BETA')),
            ('nested_message', MessageField(2, 'NestedMessage')),
        ], is_extendable=True),

        'DescriptorPoolTest2': MessageType({
            'NestedEnum': EnumType([('GAMMA', 3), ('DELTA', 4)]),
            'NestedMessage': MessageType({
                'NestedEnum': EnumType([('IOTA', 9), ('KAPPA', 10)]),
                'DeepNestedMessage': MessageType({
                    'NestedEnum': EnumType([('LAMBDA', 11), ('MU', 12)]),
                }, [
                    ('nested_enum', EnumField(1, 'NestedEnum', 'MU')),
                    ('nested_field', StringField(2, 'lambda')),
                ]),
            }, [
                ('nested_enum', EnumField(1, 'NestedEnum', 'IOTA')),
                ('nested_field', StringField(2, 'delta')),
                ('deep_nested_message', MessageField(3, 'DeepNestedMessage')),
            ])
        }, [
            ('nested_enum', EnumField(1, 'NestedEnum', 'GAMMA')),
            ('nested_message', MessageField(2, 'NestedMessage')),
        ]),
    })


TEST2_FILE = ProtoFile(
    'google/protobuf/internal/descriptor_pool_test2.proto',
    'google.protobuf.python.internal',
    {
        'DescriptorPoolTest3': MessageType({
            'NestedEnum': EnumType([('NU', 13), ('XI', 14)]),
            'NestedMessage': MessageType({
                'NestedEnum': EnumType([('OMICRON', 15), ('PI', 16)]),
                'DeepNestedMessage': MessageType({
                    'NestedEnum': EnumType([('RHO', 17), ('SIGMA', 18)]),
                }, [
                    ('nested_enum', EnumField(1, 'NestedEnum', 'RHO')),
                    ('nested_field', StringField(2, 'sigma')),
                ]),
            }, [
                ('nested_enum', EnumField(1, 'NestedEnum', 'PI')),
                ('nested_field', StringField(2, 'nu')),
                ('deep_nested_message', MessageField(3, 'DeepNestedMessage')),
            ])
        }, [
            ('nested_enum', EnumField(1, 'NestedEnum', 'XI')),
            ('nested_message', MessageField(2, 'NestedMessage')),
        ], extensions=[
            ('descriptor_pool_test',
             ExtensionField(1001, 'DescriptorPoolTest1')),
        ]),
    },
    dependencies=['google/protobuf/internal/descriptor_pool_test1.proto',
                  'google/protobuf/internal/more_messages.proto'],
    public_dependencies=['google/protobuf/internal/more_messages.proto'])


if __name__ == '__main__':
  unittest.main()
PK�\�=�~�~�&protobuf/internal/json_format_test.pycnu�[����
���hc@s\dZdZddlZddlZddlZyddlZWnek
r_ddlZnXddlm	Z	ddlm
Z
ddlmZddlmZddlm
Z
dd	lmZdd
lmZddlmZddlmZdd
lmZddlmZdejfd��YZdefd��YZedkrXej�ndS(s%Test for google.protobuf.json_format.sjieluo@google.com (Jie Luo)i����N(tany_pb2(tduration_pb2(tfield_mask_pb2(t
struct_pb2(t
timestamp_pb2(twrappers_pb2(tunittest_mset_pb2(tunittest_pb2(twell_known_types(tjson_format(tjson_format_proto3_pb2tJsonFormatBasecBs#eZd�Zd�Zd�ZRS(cCs�d|_d|_d|_d|_td�|_d|_t|_d|_	d|_
d	|j_t
j|_|jjd
�|jjd�|jjd�|jjd
�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjtd��|jjt�|jjt�|jjd�|jjd�|jjd�|jjd�d	|jj�_d|jj�_|jjt
j�|jjt
j�||_dS(Nii��l~tl4�?s-infgo���!	@tfootbari
i���i�ll����i���i���l����igV瞯�<tinfsFew symbols!#$,;i( tint32_valuetint64_valuetuint32_valuetuint64_valuetfloattfloat_valuetdouble_valuetTruet
bool_valuetstring_valuetbytes_valuet
message_valuetvalueR
tBARt
enum_valuetrepeated_int32_valuetappendtrepeated_int64_valuetrepeated_uint32_valuetrepeated_uint64_valuetrepeated_float_valuetrepeated_double_valuetrepeated_bool_valuetFalsetrepeated_string_valuetrepeated_bytes_valuetrepeated_message_valuetaddtrepeated_enum_valuetFOOtmessage(tselfR-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
FillAllFields<sB								cCs-tjtj|�|�|j||�dS(N(R	tParset
MessageToJsontassertEqual(R.R-tparsed_message((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pytCheckParseBackascCs/tj�}|jtj|tj||�dS(N(R
tTestMessagetassertRaisesRegexpR	t
ParseErrorR0(R.ttextt
error_messageR-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
CheckErrorfs
(t__name__t
__module__R/R4R:(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyR:s	%	tJsonFormatTestcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1RS(0cCsEtj�}|jtj|�d�tj�}|j||�dS(Ns{}(R
R5R2R	R1R4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestEmptyMessageToJsonps
cCsitjdddddg�}|jtjtj|��tjd��tj�}|j||�dS(NRttestRiYis6{"stringValue": "test", "repeatedInt32Value": [89, 4]}(R
R5R2tjsontloadsR	R1R4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestPartialMessageToJsonws	cCsztj�}d}|j|�|jtjtj|��tj|��tj�}tj||�|j||�dS(Ns�{"int32Value": 20, "int64Value": "-20", "uint32Value": 3120987654,"uint64Value": "12345678900","floatValue": "-Infinity","doubleValue": 3.1415,"boolValue": true,"stringValue": "foo","bytesValue": "YmFy","messageValue": {"value": 10},"enumValue": "BAR","repeatedInt32Value": [2147483647, -2147483648],"repeatedInt64Value": ["9007199254740992", "-9007199254740992"],"repeatedUint32Value": [268435455, 134217727],"repeatedUint64Value": ["9007199254740992", "9007199254740991"],"repeatedFloatValue": [0],"repeatedDoubleValue": [1e-15, "Infinity"],"repeatedBoolValue": [true, false],"repeatedStringValue": ["Few symbols!#$,;", "bar"],"repeatedBytesValue": ["Zm9v", "YmFy"],"repeatedMessageValue": [{"value": 10}, {"value": 11}],"repeatedEnumValue": ["FOO", "BAR"]}(	R
R5R/R2R@RAR	R1R0(R.R-R8R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestAllFieldsToJson�s
cCsdd}tj�}d|_|jtj|�|�tj�}tj||�|j||�dS(Ns{
  "enumValue": 999
}i�(R
R5RR2R	R1R0(R.R8R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestUnknownEnumToJsonAndBack�s	cCs�tj�}tjj}tjj}d|jj|_d|jj|_t	j
|�}tj�}t	j||�|j||�dS(NiR(
RtTestMessageSetContainertTestMessageSetExtension1tmessage_set_extensiontTestMessageSetExtension2tmessage_sett
ExtensionstitstrR	R1R0R2(R.R-text1text2tmessage_textR3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestExtensionToJsonAndBack�s	cCs|jdd�dS(Ns{"[extensionField]": {}}s8Message type proto3.TestMessage does not have extensions(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestExtensionErrors�s	cCs�tj�}tjj}tjj}d|jj|_d|jj|_t	j
|�}tj�}t	j||�|j||�dS(NiR(
RRERFRGRHRIRJRKRLR	t
MessageToDictt	ParseDictR2(R.R-RMRNtmessage_dictR3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestExtensionToDictAndBack�s	cCs�tj�}tjj}tjj}d|jj|_d|jj|_t	j
|�}iiidd6d6idd6d6d6}|j||�d	S(
s&See go/proto3-json-spec for spec.
    iRRKs@[protobuf_unittest.TestMessageSetExtension1.messageSetExtension]ufooRLs@[protobuf_unittest.TestMessageSetExtension2.messageSetExtension]t
messageSetN(RRERFRGRHRIRJRKRLR	RRR2(R.R-RMRNRTtgolden_dict((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt/testExtensionSerializationDictMatchesProto3Spec�s	cCs�tj�}tjj}tjj}d|jj|_d|jj|_t	j
|�}d}d}d||f}|jtj
|�tj
|��dS(s&See go/proto3-json-spec for spec.
    iRs>protobuf_unittest.TestMessageSetExtension1.messageSetExtensions>protobuf_unittest.TestMessageSetExtension2.messageSetExtensionsZ{"messageSet": {    "[%s]": {        "i": 23    },    "[%s]": {        "str": "foo"    }}}N(RRERFRGRHRIRJRKRLR	R1R2R@RA(R.R-RMRNROt	ext1_textt	ext2_texttgolden_text((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt/testExtensionSerializationJsonMatchesProto3Spec�s	
cCs�tj�}tjddkr+d|_n!d|_|jdjd�7_|jtj|�d�tj�}|j	||�d}tj
||�|j|jd	�dS(
Niis&
<"
>	\/

s&
<"
>	\/s

sutf-8s;{
  "stringValue": "&\n<\"\r>\b\t\f\\\u0001/\u2028\u2029"
}u{"int32Value": "1"}i(R
R5tsystversion_infoRtdecodeR2R	R1R4R0R(R.R-R3R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestJsonEscapeString�s	cCs`tjdd�}|jtjtj|t��tjd��tj�}|j||�dS(NRRs�{"repeatedStringValue": [],"stringValue": "foo","repeatedBoolValue": [],"repeatedUint32Value": [],"repeatedInt32Value": [],"enumValue": "FOO","int32Value": 0,"floatValue": 0,"int64Value": "0","uint32Value": 0,"repeatedBytesValue": [],"repeatedUint64Value": [],"repeatedDoubleValue": [],"bytesValue": "","boolValue": false,"repeatedEnumValue": [],"uint64Value": "0","doubleValue": 0,"repeatedFloatValue": [],"repeatedInt64Value": [],"repeatedMessageValue": []}(	R
R5R2R@RAR	R1RR4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestAlwaysSeriliazes		cCsytj�}tjd|�|j|jd�tjd|�|j|jd�tjd|�|j|jd�dS(Ns{"int32Value": -2.147483648e9}i�s{"int32Value": 1e5}i��s{"int32Value": 1.0}i(R
R5R	R0R2R(R.R-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestIntegersRepresentedAsFloat-scCs8tj�}|jtjtj|t��tjd��d|jt<d|jt	<d|j
d<d|j
d<d|jd<d|jd<d|jd<d|jd<d|j
d<d|j
d<d|jd<d|jd<d|jdjt<|jtjtj|t	��tjd��tj�}|j||�dS(Nsj{"boolMap": {},"int32Map": {},"int64Map": {},"uint32Map": {},"uint64Map": {},"stringMap": {},"mapMap": {}}iiit1tnulls�{"boolMap": {"false": 2, "true": 1},"int32Map": {"1": 2, "2": 3},"int64Map": {"1": 2, "2": 3},"uint32Map": {"1": 2, "2": 3},"uint64Map": {"1": 2, "2": 3},"stringMap": {"1": 2, "null": 3},"mapMap": {"1": {"boolMap": {"true": 3}}}}(R
t
TestNestedMapR2R@RAR	R1Rtbool_mapR&t	int32_mapt	int64_mapt
uint32_mapt
uint64_mapt
string_maptmap_mapR4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
testMapFields6s,	











	cCsmtj�}|jtj|t�d�d|_|jtj|t�d�tj�}|j||�dS(Ns{}is{
  "oneofInt32Value": 0
}(R
t	TestOneofR2R	R1Rtoneof_int32_valueR4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestOneofFields^s	cCs_tj�}tjd|�|j|jdjdd��|jdd�|jdd�dS(Ns{"stringValue": "\uD83D\uDE01"}s😁sutf-8tstricts{"stringValue": "\uD83D"}s*Invalid \\uXXXX escape|Unpaired.*surrogates{"stringValue": "\uDE01"}(R
R5R	R0R2RR_R:(R.R-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestSurrogatesmscCs�tj�}d|j_d|j_d|jj�_d|jd_d|jj�_d|jd_d|jj�_d|jd_d|jj�_d|jd	_d
|jj�_d|jd_|jtj	t
j|t��tj	d��tj�}|j
||�d
}t
j||�|j|jjd�|j|jjd�|j|jdjd�|j|jdjdd�dS(Niiii'i�ilA��i�ɚ;il����w#o9is�{"value": "1970-01-01T00:00:00Z","repeatedValue": [  "1970-01-01T00:00:20.000000001Z",  "1970-01-01T00:00:00.000010Z",  "1973-03-03T09:46:40Z",  "9999-12-31T23:59:59.999999999Z",  "0001-01-01T00:00:00Z"]}s}{"value": "1970-01-01T00:00:00.01+08:00","repeatedValue":[  "1970-01-01T00:00:00.01+08:30",  "1970-01-01T00:00:00.01-01:23"]}i����ii���g!�ii<i����g��id(R
t
TestTimestampRtsecondstnanostrepeated_valueR*R2R@RAR	R1RR4R0(R.R-R3R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestTimestampMessage~s0
cCs�tj�}d|j_d|jj�_d|jd_d|jj�_d|jd_d|jj�_d|jd_d|jj�_d	|jj�_|jtj	t
j|t��tj	d
��tj�}|j
||�dS(Niii
i����i���i�اil�����s%l�s%ss{"value": "1s","repeatedValue": [  "0.000000010s",  "-1.000001s",  "10.011s",  "-315576000000s",  "315576000000s"]}(R
tTestDurationRRtRvR*RuR2R@RAR	R1RR4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestDurationMessage�s
cCsntj�}|jjjd�|jjjd�|jtj|t�d�tj�}|j	||�dS(Nsfoo.barR
s{
  "value": "foo.bar,bar"
}(
R
t
TestFieldMaskRtpathsRR2R	R1RR4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestFieldMaskMessage�scCs�tj�}t|j_d|j_d|j_d|j_t|j	j
�_t|j	j
�_|jj
�|jt
jtj|t��t
jd��tj�}|j||�dS(NitsR{
  "int32Value": 0,  "boolValue": false,  "stringValue": "",  "bytesValue": "",  "repeatedBoolValue": [true, false],  "repeatedInt32Value": [0],  "repeatedUint32Value": [],  "repeatedFloatValue": [],  "repeatedDoubleValue": [],  "repeatedBytesValue": [],  "repeatedInt64Value": [],  "repeatedUint64Value": [],  "repeatedStringValue": []}(R
tTestWrapperR&RRRRRRR%R*RR2R@RAR	R1R4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestWrapperMessage�s
cCstj�}d|jd<d|jd<t|jd<d|jd<d|jjd�d	<d
|jdd<|jjd�}|jd
dttdg�d|j	�d<d|j
j�d<|j
j�|jt
jtj|t��t
jd��tj�}|j||�dS(NtJimtnamei
tagetattendtemailtSFOtaddresstcityithouse_numbertlistitseveni	tsubkey2is{  "value": {    "address": {      "city": "SFO",       "house_number": 1024    },     "age": 10,     "name": "Jim",     "attend": true,     "email": null,     "list": [6, "seven", true, false, null, {"subkey2": 9}]  },  "repeatedValue": [{"age": 11}, {}]}(R
t
TestStructRRtNonetget_or_create_structtget_or_create_listtextendR&t
add_structRvR*R2R@RAR	R1R4(R.R-tstruct_listR3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestStructMessage�s$





cCs
tj�}d|j_d|jj�_t|jj�_d|jj�_	|j
tjt
j|t��tjd��tj�}|j||�|jj�|j
tjt
j|t��tjd��|j�t
jd|�|j
|jjd�d�dS(	Nthellog333333&@is;{  "value": "hello",  "repeatedValue": [11.1, false, null]}sA{  "value": "hello",  "repeatedValue": [11.1, false, null, null]}s{"value": null}tkindt
null_value(R
t	TestValueRRRvR*tnumber_valueR&RR�R2R@RAR	R1R4tClearR0t
WhichOneof(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestValueMessage
s&



cCs�tj�}d|jjj�_d|jjj�_t|jjj�_d|jjj�_	d|jjj�j
d<d|jj�jj�_|jj�|jt
jtj|t��t
jd��tj�}|j||�dS(Ng333333&@iR�R�R�isS{"value": [11.1, null, true, "hello", {"name": "Jim"}]
,"repeatedValue": [[1], []]}(R
t
TestListValueRtvaluesR*R�R�RRRtstruct_valueRvR2R@RAR	R1R&R4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestListValueMessage&s

cCs@tj�}tj�}tj�}d|_d|_|jj|�|jj�j|�|jj�j|�|jj�|jtj	t
j|t��tj	d��tj�}|j
||�tjdtddddd	dd
dddd
d�}|j�|jj|�|jt
j|t�dd!d�dS(Ni�i.s{
  "repeatedValue": [ {
    "@type": "type.googleapis.com/proto3.MessageType",
    "value": 1234
  }, {
    "@type": "type.googleapis.com/proto3.MessageType",
    "value": 5678
  },
  {}],
  "value": {
    "@type": "type.googleapis.com/proto3.MessageType",
    "value": 1234
  }
}
RRiRi��RRRg��Q�	@RRiiDsD{
  "value": {
    "@type": "type.googleapis.com/proto3.TestMessage"(R
tTestAnytMessageTypeRtPackRvR*R2R@RAR	R1RR4R5R�R&(R.R-tvalue1tvalue2R3ttest_message((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestAnyMessage7s8		

		
c	Csxtj�}tj�}d|_|j|�|jtjt	j
|t��tjd��tj�}|j||�t
j�}|j|�|jtjt	j
|t��tjd��|j||�tj�}d|_|j|�|jtjt	j
|t��tjd��|j||�tj�}|jjd�|jjd�|j|�|jtjt	j
|t��tjd��|j||�tj�}d	|d
<|j|�|jtjt	j
|t��tjd��|j||�tj�}d|_|j|�|j|�|jtjt	j
|t��tjd
��|j||�dS(Ni�sQ{
  "@type": "type.googleapis.com/google.protobuf.Int32Value",
  "value": 1234
}
sb{
  "@type": "type.googleapis.com/google.protobuf.Timestamp",
  "value": "1970-01-01T00:00:00Z"
}
isO{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1s"
}
sfoo.barR
sY{
  "@type": "type.googleapis.com/google.protobuf.FieldMask",
  "value": "foo.bar,bar"
}
R�R�sX{
  "@type": "type.googleapis.com/google.protobuf.Struct",
  "value": {"name": "Jim"}
}
i.s�{
  "@type": "type.googleapis.com/google.protobuf.Any",
  "value": {
    "@type": "type.googleapis.com/google.protobuf.Int32Value",
    "value": 5678
  }
}
(RtAnyRt
Int32ValueRR�R2R@RAR	R1RR4Rt	TimestampRtDurationRtRt	FieldMaskR{RRtStruct(	R.R-RR3t	timestamptdurationt
field_masktstruct_messaget
nested_any((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestWellKnownInAnyMessageesf	



	






	


cCs�tj�}tj�}|j|�tjd|�|j||�|j|jd��tjd|�|j|jd��|j	tj
dtjd|�|jdd�dS(Ns{"int32Value": null, "int64Value": null, "uint32Value": null,"uint64Value": null,"floatValue": null,"doubleValue": null,"boolValue": null,"stringValue": null,"bytesValue": null,"messageValue": null,"enumValue": null,"repeatedInt32Value": null,"repeatedInt64Value": null,"repeatedUint32Value": null,"repeatedUint64Value": null,"repeatedFloatValue": null,"repeatedDoubleValue": null,"repeatedBoolValue": null,"repeatedStringValue": null,"repeatedBytesValue": null,"repeatedMessageValue": null,"repeatedEnumValue": null}Rs{"messageValue": {}}skFailed to parse repeatedInt32Value field: null is not allowed to be used as an element in a repeated field.s {"repeatedInt32Value":[1, null]}s{"repeatedMessageValue":[null]}smFailed to parse repeatedMessageValue field: null is not allowed to be used as an element in a repeated field.(R
R5R/R	R0R2tassertFalsetHasFieldt
assertTrueR6R7R:(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
testParseNull�s"
		cCsstj�}td�|_d}|jtj|�|�tj�}tj||�|jt	j
|j��dS(Ntnans{
  "floatValue": "NaN"
}(R
R5RRR2R	R1R0R�tmathtisnan(R.R-R8R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestNanFloat�scCs|jdd�dS(NR}s1Failed to load JSON: (Expecting value)|(No JSON).(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestParseEmptyText�s	cCs�tj�}d}tj||�d}tj||�|jdd�d}tj||�tj�}|jtjdtjd|�dS(Ns{"enumValue": 0}s{"enumValue": 1}s{"enumValue": "baz"}sVFailed to parse enumValue field: Invalid enum value baz for enum type proto3.EnumType.s{"enumValue": 12345}s{Failed to parse optionalNestedEnum field: Invalid enum value 12345 for enum type protobuf_unittest.TestAllTypes.NestedEnum.s{"optionalNestedEnum": 12345}(	R
R5R	R0R:RtTestAllTypesR6R7(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestParseEnumValue�scCs$|jdd�|jdd�dS(Ns{int32Value: 1}sQFailed to load JSON: Expecting property name( enclosed in double quotes)?: line 1s{"unknownName": 1}sCMessage type "proto3.TestMessage" has no field named "unknownName".(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestParseBadIdentifers		cCsTd}tj�}tj||dt�d}tj�}tj||dt�dS(Ns{"unknownName": 1}tignore_unknown_fieldssl{
  "repeatedValue": [ {
    "@type": "type.googleapis.com/proto3.MessageType",
    "unknownName": 1
  }]
}
(R
R5R	R0RR�(R.R8R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestIgnoreUnknownFieldscCs'tjdkrdS|jdd�dS(Niis!{"int32Value": 1,
"int32Value":2}s.Failed to load JSON: duplicate key int32Value.(ii(R]R^R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestDuplicateFields	cCs$|jdd�|jdd�dS(Ns{"boolValue": 1}sGFailed to parse boolValue field: Expected true or false without quotes.s{"boolValue": "true"}(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidBoolValues		cCs�tj�}d}|jtjtj||�|jdd�|jdd�|jdd�|jdd	�|jd
d�|jdd
�dS(Ns{"int32Value": 0x12345}s{"int32Value": 1.5}s>Failed to parse int32Value field: Couldn't parse integer: 1.5.s{"int32Value": 012345}s9Failed to load JSON: Expecting \'?,\'? delimiter: line 1.s{"int32Value": " 1 "}s@Failed to parse int32Value field: Couldn't parse integer: " 1 ".s{"int32Value": "1 "}s?Failed to parse int32Value field: Couldn't parse integer: "1 ".s${"int32Value": 12345678901234567890}sKFailed to parse int32Value field: Value out of range: 12345678901234567890.s{"uint32Value": -1}s:Failed to parse uint32Value field: Value out of range: -1.(R
R5tassertRaisesR	R7R0R:(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidIntegerValue's 						cCs|jdd�dS(Ns{"floatValue": "nan"}sPFailed to parse floatValue field: Couldn't parse float "nan", use "NaN" instead.(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidFloatValue?s	cCs$|jdd�|jdd�dS(Ns{"bytesValue": "AQI"}s4Failed to parse bytesValue field: Incorrect padding.s{"bytesValue": "AQI*"}(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidBytesValueDs		cCs|jdd�dS(Ns{"repeatedInt32Value": 12345}skFailed to parse repeatedInt32Value field: repeated field repeatedInt32Value must be in \[\] which is 12345.(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidRepeatedJs	cCs�tj�}d}|jtjdtj||�d}|jtjdtj||�d}|jtjdtj||�tjd
kr�dSd	}|jtjd
tj||�d}|jtjdtj||�dS(Ns!{"int32Map": {"null": 2, "2": 3}}s/Failed to parse int32Map field: invalid literals{"int32Map": {1: 2, "2": 3}}sQFailed to load JSON: Expecting property name( enclosed in double quotes)?: line 1s{"boolMap": {"null": 1}}sDFailed to parse boolMap field: Expected "true" or "false", not null.iis${"stringMap": {"a": 3, "\u0061": 2}}s$Failed to load JSON: duplicate key as{"stringMap": 0}sSFailed to parse stringMap field: Map field string_map must be in a dict which is 0.(ii(R
tTestMapR6R	R7R0R]R^(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidMapOs8cCs�tj�}d}|jtjdtj||�d}|jtjdtj||�d}|jtjdtj||�d}|jtjdtj||�d	|j_|jt	d
tj
|�dS(Ns%{"value": "10000-01-01T00:00:00.00Z"}sKtime data '10000-01-01T00:00:00' does not match format '%Y-%m-%dT%H:%M:%S'.s/{"value": "1970-01-01T00:00:00.0123456789012Z"}s2nanos 0123456789012 more than 9 fractional digits.s&{"value": "1972-01-01T01:00:00.01+08"}s$Invalid timezone offset value: \+08.s!{"value": "0000-01-01T00:00:00Z"}s7Failed to parse value field: year (0 )?is out of range.l�A��sdate value out of range(R
RsR6R	R7R0RRRtt
OverflowErrorR1(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidTimestampos4cCs5tj�}d}|jtjdtj||�dS(Ns/{"oneofInt32Value": 1, "oneofStringValue": "2"}sTMessage type "proto3.TestOneof" should not have multiple "oneof_value" oneof fields.(R
RnR6R	R7R0(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidOneof�scCs5tj�}d}|jtjdtj||�dS(Ns{"value": 1234}sDFailed to parse value field: ListValue must be in \[\] which is 1234(R
R�R6R	R7R0(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidListValue�scCs5tj�}d}|jtjdtj||�dS(Ns{"value": 1234}sCFailed to parse value field: Struct must be in a dict which is 1234(R
R�R6R	R7R0(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidStruct�scCs�tj�}d}|jtdtj||�d}|jtjdtj||�d}|jtdtj||�d}tj||�dS(Ns;{"@type": "type.googleapis.com/google.protobuf.Int32Value"}Rs{"value": 1234}s*@type is missing when parsing any message.s?{"@type": "type.googleapis.com/MessageNotExist", "value": 1234}sQCan not find message descriptor by type_url: type.googleapis.com/MessageNotExist.sN{"@type": "incorrect.googleapis.com/google.protobuf.Int32Value","value": 1234}(RR�R6tKeyErrorR	R0R7t	TypeError(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidAny�s$cCs�tj�}d|_|jdtj|��|jdtj|tt��tj�}|jdtj|tt��|jdtj|tt��tj�}tj	d|�|jd|j�tj	d|�|jd|j�dS(	Ni90s{
  "int32Value": 12345
}s{
  "int32_value": 12345
}s{
  "repeatedValue": []
}s{
  "repeated_value": []
}s{"int32Value": 54321}i1�s{"int32_value": 12345}(
R
R5RR2R	R1R&RRsR0(R.R-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestPreservingProtoFieldNames�s 					cCs8tj�}d|_|jdtj|dd��dS(Ni90s{
"int32Value": 12345
}tindenti(R
R5RR2R	R1(R.R-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
testIndent�s		cCsFd}i|d6}tj�}tj||�|j||j�dS(Ni90t
int32Value(R
R5R	RSR2R(R.texpectedtjs_dictR-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
testParseDict�s

cCs?tj�}d|_idd6}|j|tj|��dS(Ni90R�(R
R5RR2R	RR(R.R-R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestMessageToDict�s
	
	cCsNtj�}d|_|jdtj|��tj�}|j||�dS(Ni90s{
  "@value": 12345
}(R
tTestCustomJsonNameRR2R	R1R4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestJsonName�s		cCs�tjdtdddddddd	�}|jtj|d
t�tjitd6dd6d
d6dd6d	d6ddd
t��dS(NRRiRiRiRtblat	sort_keyst	boolValueR�t3t
int64Valuetuint32ValuetstringValueR�i(R
R5RR2R	R1R@tdumps(R.R-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestSortKeys�s	(2R;R<R>RBRCRDRPRQRURXR\R`RaRbRmRpRrRwRyR|RR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyR=ns`		
	!	
	
		
							(			(				!			.	O	-						
							 											t__main__(t__doc__t
__author__R@R�R]t	unittest2tunittesttImportErrortgoogle.protobufRRRRRRRRtgoogle.protobuf.internalRR	tgoogle.protobuf.utilR
tTestCaseRR=R;tmain(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt<module> s4
4����PK�\�F��{{'protobuf/internal/more_messages_pb2.pyonu�[����
���hc/@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��ZdZejdddddddddddddddeddddd dd!dd"ed#dd$dd%e�Zd&Zejdd'dd(dddd&dddd&dddeddddd dd!dd"ed#dd$dd%e�Zejdd)dd*d+dd%ed!dd,ejdd-dd.dddd/dd0dddddeddddd dd!dd"ed#dd$dd%e�ejdd1dd2dddddd3dddddeddddd dd!dd"ed#dd$dd%e�ejdd4dd5dd&dddd/dddddeddddd dd!dd"ed#dd$dd%e�gd6gd7gd8gd$dd9eddd:dCdDgd;gd<d=d>d?�Zeejd)<eejd<eejd'<eje�e	jd)ejfe d@edAdB��Z!ej"e!�e!j#e�e!j#e�dS(Ei����NiicCs|S(N((tx((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/more_messages_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/more_messages_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames,google/protobuf/internal/more_messages.prototpackagesgoogle.protobuf.internaltsyntaxtproto2t
serialized_pbs;
,google/protobuf/internal/more_messages.protogoogle.protobuf.internal"h
OutOfOrderFields
optional_sint32 (
optional_uint32 (

optional_int32 (**:C
optional_uint64*.google.protobuf.internal.OutOfOrderFields (:B
optional_int64*.google.protobuf.internal.OutOfOrderFields (itoptional_uint64t	full_names(google.protobuf.internal.optional_uint64tindextnumberttypetcpp_typetlabelithas_default_valuet
default_valuetmessage_typet	enum_typetcontaining_typetis_extensiontextension_scopetoptionstfileitoptional_int64s'google.protobuf.internal.optional_int64tOutOfOrderFieldss)google.protobuf.internal.OutOfOrderFieldstfilenametfieldstoptional_sint32s9google.protobuf.internal.OutOfOrderFields.optional_sint32iitoptional_uint32s9google.protobuf.internal.OutOfOrderFields.optional_uint32i
toptional_int32s8google.protobuf.internal.OutOfOrderFields.optional_int32t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiJtserialized_endi�t
DESCRIPTORt
__module__s*google.protobuf.internal.more_messages_pb2(ii(ii($tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR.tOPTIONAL_UINT64_FIELD_NUMBERtFieldDescriptortFalsetNonetTrueRtOPTIONAL_INT64_FIELD_NUMBERRt
Descriptort_OUTOFORDERFIELDStmessage_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR tRegisterMessagetRegisterExtension(((sN/usr/lib/python2.7/site-packages/google/protobuf/internal/more_messages_pb2.pyt<module>s�%								





PK�\�=�~�~�&protobuf/internal/json_format_test.pyonu�[����
���hc@s\dZdZddlZddlZddlZyddlZWnek
r_ddlZnXddlm	Z	ddlm
Z
ddlmZddlmZddlm
Z
dd	lmZdd
lmZddlmZddlmZdd
lmZddlmZdejfd��YZdefd��YZedkrXej�ndS(s%Test for google.protobuf.json_format.sjieluo@google.com (Jie Luo)i����N(tany_pb2(tduration_pb2(tfield_mask_pb2(t
struct_pb2(t
timestamp_pb2(twrappers_pb2(tunittest_mset_pb2(tunittest_pb2(twell_known_types(tjson_format(tjson_format_proto3_pb2tJsonFormatBasecBs#eZd�Zd�Zd�ZRS(cCs�d|_d|_d|_d|_td�|_d|_t|_d|_	d|_
d	|j_t
j|_|jjd
�|jjd�|jjd�|jjd
�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjtd��|jjt�|jjt�|jjd�|jjd�|jjd�|jjd�d	|jj�_d|jj�_|jjt
j�|jjt
j�||_dS(Nii��l~tl4�?s-infgo���!	@tfootbari
i���i�ll����i���i���l����igV瞯�<tinfsFew symbols!#$,;i( tint32_valuetint64_valuetuint32_valuetuint64_valuetfloattfloat_valuetdouble_valuetTruet
bool_valuetstring_valuetbytes_valuet
message_valuetvalueR
tBARt
enum_valuetrepeated_int32_valuetappendtrepeated_int64_valuetrepeated_uint32_valuetrepeated_uint64_valuetrepeated_float_valuetrepeated_double_valuetrepeated_bool_valuetFalsetrepeated_string_valuetrepeated_bytes_valuetrepeated_message_valuetaddtrepeated_enum_valuetFOOtmessage(tselfR-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
FillAllFields<sB								cCs-tjtj|�|�|j||�dS(N(R	tParset
MessageToJsontassertEqual(R.R-tparsed_message((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pytCheckParseBackascCs/tj�}|jtj|tj||�dS(N(R
tTestMessagetassertRaisesRegexpR	t
ParseErrorR0(R.ttextt
error_messageR-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
CheckErrorfs
(t__name__t
__module__R/R4R:(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyR:s	%	tJsonFormatTestcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1RS(0cCsEtj�}|jtj|�d�tj�}|j||�dS(Ns{}(R
R5R2R	R1R4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestEmptyMessageToJsonps
cCsitjdddddg�}|jtjtj|��tjd��tj�}|j||�dS(NRttestRiYis6{"stringValue": "test", "repeatedInt32Value": [89, 4]}(R
R5R2tjsontloadsR	R1R4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestPartialMessageToJsonws	cCsztj�}d}|j|�|jtjtj|��tj|��tj�}tj||�|j||�dS(Ns�{"int32Value": 20, "int64Value": "-20", "uint32Value": 3120987654,"uint64Value": "12345678900","floatValue": "-Infinity","doubleValue": 3.1415,"boolValue": true,"stringValue": "foo","bytesValue": "YmFy","messageValue": {"value": 10},"enumValue": "BAR","repeatedInt32Value": [2147483647, -2147483648],"repeatedInt64Value": ["9007199254740992", "-9007199254740992"],"repeatedUint32Value": [268435455, 134217727],"repeatedUint64Value": ["9007199254740992", "9007199254740991"],"repeatedFloatValue": [0],"repeatedDoubleValue": [1e-15, "Infinity"],"repeatedBoolValue": [true, false],"repeatedStringValue": ["Few symbols!#$,;", "bar"],"repeatedBytesValue": ["Zm9v", "YmFy"],"repeatedMessageValue": [{"value": 10}, {"value": 11}],"repeatedEnumValue": ["FOO", "BAR"]}(	R
R5R/R2R@RAR	R1R0(R.R-R8R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestAllFieldsToJson�s
cCsdd}tj�}d|_|jtj|�|�tj�}tj||�|j||�dS(Ns{
  "enumValue": 999
}i�(R
R5RR2R	R1R0(R.R8R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestUnknownEnumToJsonAndBack�s	cCs�tj�}tjj}tjj}d|jj|_d|jj|_t	j
|�}tj�}t	j||�|j||�dS(NiR(
RtTestMessageSetContainertTestMessageSetExtension1tmessage_set_extensiontTestMessageSetExtension2tmessage_sett
ExtensionstitstrR	R1R0R2(R.R-text1text2tmessage_textR3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestExtensionToJsonAndBack�s	cCs|jdd�dS(Ns{"[extensionField]": {}}s8Message type proto3.TestMessage does not have extensions(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestExtensionErrors�s	cCs�tj�}tjj}tjj}d|jj|_d|jj|_t	j
|�}tj�}t	j||�|j||�dS(NiR(
RRERFRGRHRIRJRKRLR	t
MessageToDictt	ParseDictR2(R.R-RMRNtmessage_dictR3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestExtensionToDictAndBack�s	cCs�tj�}tjj}tjj}d|jj|_d|jj|_t	j
|�}iiidd6d6idd6d6d6}|j||�d	S(
s&See go/proto3-json-spec for spec.
    iRRKs@[protobuf_unittest.TestMessageSetExtension1.messageSetExtension]ufooRLs@[protobuf_unittest.TestMessageSetExtension2.messageSetExtension]t
messageSetN(RRERFRGRHRIRJRKRLR	RRR2(R.R-RMRNRTtgolden_dict((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt/testExtensionSerializationDictMatchesProto3Spec�s	cCs�tj�}tjj}tjj}d|jj|_d|jj|_t	j
|�}d}d}d||f}|jtj
|�tj
|��dS(s&See go/proto3-json-spec for spec.
    iRs>protobuf_unittest.TestMessageSetExtension1.messageSetExtensions>protobuf_unittest.TestMessageSetExtension2.messageSetExtensionsZ{"messageSet": {    "[%s]": {        "i": 23    },    "[%s]": {        "str": "foo"    }}}N(RRERFRGRHRIRJRKRLR	R1R2R@RA(R.R-RMRNROt	ext1_textt	ext2_texttgolden_text((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt/testExtensionSerializationJsonMatchesProto3Spec�s	
cCs�tj�}tjddkr+d|_n!d|_|jdjd�7_|jtj|�d�tj�}|j	||�d}tj
||�|j|jd	�dS(
Niis&
<"
>	\/

s&
<"
>	\/s

sutf-8s;{
  "stringValue": "&\n<\"\r>\b\t\f\\\u0001/\u2028\u2029"
}u{"int32Value": "1"}i(R
R5tsystversion_infoRtdecodeR2R	R1R4R0R(R.R-R3R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestJsonEscapeString�s	cCs`tjdd�}|jtjtj|t��tjd��tj�}|j||�dS(NRRs�{"repeatedStringValue": [],"stringValue": "foo","repeatedBoolValue": [],"repeatedUint32Value": [],"repeatedInt32Value": [],"enumValue": "FOO","int32Value": 0,"floatValue": 0,"int64Value": "0","uint32Value": 0,"repeatedBytesValue": [],"repeatedUint64Value": [],"repeatedDoubleValue": [],"bytesValue": "","boolValue": false,"repeatedEnumValue": [],"uint64Value": "0","doubleValue": 0,"repeatedFloatValue": [],"repeatedInt64Value": [],"repeatedMessageValue": []}(	R
R5R2R@RAR	R1RR4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestAlwaysSeriliazes		cCsytj�}tjd|�|j|jd�tjd|�|j|jd�tjd|�|j|jd�dS(Ns{"int32Value": -2.147483648e9}i�s{"int32Value": 1e5}i��s{"int32Value": 1.0}i(R
R5R	R0R2R(R.R-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestIntegersRepresentedAsFloat-scCs8tj�}|jtjtj|t��tjd��d|jt<d|jt	<d|j
d<d|j
d<d|jd<d|jd<d|jd<d|jd<d|j
d<d|j
d<d|jd<d|jd<d|jdjt<|jtjtj|t	��tjd��tj�}|j||�dS(Nsj{"boolMap": {},"int32Map": {},"int64Map": {},"uint32Map": {},"uint64Map": {},"stringMap": {},"mapMap": {}}iiit1tnulls�{"boolMap": {"false": 2, "true": 1},"int32Map": {"1": 2, "2": 3},"int64Map": {"1": 2, "2": 3},"uint32Map": {"1": 2, "2": 3},"uint64Map": {"1": 2, "2": 3},"stringMap": {"1": 2, "null": 3},"mapMap": {"1": {"boolMap": {"true": 3}}}}(R
t
TestNestedMapR2R@RAR	R1Rtbool_mapR&t	int32_mapt	int64_mapt
uint32_mapt
uint64_mapt
string_maptmap_mapR4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
testMapFields6s,	











	cCsmtj�}|jtj|t�d�d|_|jtj|t�d�tj�}|j||�dS(Ns{}is{
  "oneofInt32Value": 0
}(R
t	TestOneofR2R	R1Rtoneof_int32_valueR4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestOneofFields^s	cCs_tj�}tjd|�|j|jdjdd��|jdd�|jdd�dS(Ns{"stringValue": "\uD83D\uDE01"}s😁sutf-8tstricts{"stringValue": "\uD83D"}s*Invalid \\uXXXX escape|Unpaired.*surrogates{"stringValue": "\uDE01"}(R
R5R	R0R2RR_R:(R.R-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestSurrogatesmscCs�tj�}d|j_d|j_d|jj�_d|jd_d|jj�_d|jd_d|jj�_d|jd_d|jj�_d|jd	_d
|jj�_d|jd_|jtj	t
j|t��tj	d��tj�}|j
||�d
}t
j||�|j|jjd�|j|jjd�|j|jdjd�|j|jdjdd�dS(Niiii'i�ilA��i�ɚ;il����w#o9is�{"value": "1970-01-01T00:00:00Z","repeatedValue": [  "1970-01-01T00:00:20.000000001Z",  "1970-01-01T00:00:00.000010Z",  "1973-03-03T09:46:40Z",  "9999-12-31T23:59:59.999999999Z",  "0001-01-01T00:00:00Z"]}s}{"value": "1970-01-01T00:00:00.01+08:00","repeatedValue":[  "1970-01-01T00:00:00.01+08:30",  "1970-01-01T00:00:00.01-01:23"]}i����ii���g!�ii<i����g��id(R
t
TestTimestampRtsecondstnanostrepeated_valueR*R2R@RAR	R1RR4R0(R.R-R3R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestTimestampMessage~s0
cCs�tj�}d|j_d|jj�_d|jd_d|jj�_d|jd_d|jj�_d|jd_d|jj�_d	|jj�_|jtj	t
j|t��tj	d
��tj�}|j
||�dS(Niii
i����i���i�اil�����s%l�s%ss{"value": "1s","repeatedValue": [  "0.000000010s",  "-1.000001s",  "10.011s",  "-315576000000s",  "315576000000s"]}(R
tTestDurationRRtRvR*RuR2R@RAR	R1RR4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestDurationMessage�s
cCsntj�}|jjjd�|jjjd�|jtj|t�d�tj�}|j	||�dS(Nsfoo.barR
s{
  "value": "foo.bar,bar"
}(
R
t
TestFieldMaskRtpathsRR2R	R1RR4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestFieldMaskMessage�scCs�tj�}t|j_d|j_d|j_d|j_t|j	j
�_t|j	j
�_|jj
�|jt
jtj|t��t
jd��tj�}|j||�dS(NitsR{
  "int32Value": 0,  "boolValue": false,  "stringValue": "",  "bytesValue": "",  "repeatedBoolValue": [true, false],  "repeatedInt32Value": [0],  "repeatedUint32Value": [],  "repeatedFloatValue": [],  "repeatedDoubleValue": [],  "repeatedBytesValue": [],  "repeatedInt64Value": [],  "repeatedUint64Value": [],  "repeatedStringValue": []}(R
tTestWrapperR&RRRRRRR%R*RR2R@RAR	R1R4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestWrapperMessage�s
cCstj�}d|jd<d|jd<t|jd<d|jd<d|jjd�d	<d
|jdd<|jjd�}|jd
dttdg�d|j	�d<d|j
j�d<|j
j�|jt
jtj|t��t
jd��tj�}|j||�dS(NtJimtnamei
tagetattendtemailtSFOtaddresstcityithouse_numbertlistitseveni	tsubkey2is{  "value": {    "address": {      "city": "SFO",       "house_number": 1024    },     "age": 10,     "name": "Jim",     "attend": true,     "email": null,     "list": [6, "seven", true, false, null, {"subkey2": 9}]  },  "repeatedValue": [{"age": 11}, {}]}(R
t
TestStructRRtNonetget_or_create_structtget_or_create_listtextendR&t
add_structRvR*R2R@RAR	R1R4(R.R-tstruct_listR3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestStructMessage�s$





cCs
tj�}d|j_d|jj�_t|jj�_d|jj�_	|j
tjt
j|t��tjd��tj�}|j||�|jj�|j
tjt
j|t��tjd��|j�t
jd|�|j
|jjd�d�dS(	Nthellog333333&@is;{  "value": "hello",  "repeatedValue": [11.1, false, null]}sA{  "value": "hello",  "repeatedValue": [11.1, false, null, null]}s{"value": null}tkindt
null_value(R
t	TestValueRRRvR*tnumber_valueR&RR�R2R@RAR	R1R4tClearR0t
WhichOneof(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestValueMessage
s&



cCs�tj�}d|jjj�_d|jjj�_t|jjj�_d|jjj�_	d|jjj�j
d<d|jj�jj�_|jj�|jt
jtj|t��t
jd��tj�}|j||�dS(Ng333333&@iR�R�R�isS{"value": [11.1, null, true, "hello", {"name": "Jim"}]
,"repeatedValue": [[1], []]}(R
t
TestListValueRtvaluesR*R�R�RRRtstruct_valueRvR2R@RAR	R1R&R4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestListValueMessage&s

cCs@tj�}tj�}tj�}d|_d|_|jj|�|jj�j|�|jj�j|�|jj�|jtj	t
j|t��tj	d��tj�}|j
||�tjdtddddd	dd
dddd
d�}|j�|jj|�|jt
j|t�dd!d�dS(Ni�i.s{
  "repeatedValue": [ {
    "@type": "type.googleapis.com/proto3.MessageType",
    "value": 1234
  }, {
    "@type": "type.googleapis.com/proto3.MessageType",
    "value": 5678
  },
  {}],
  "value": {
    "@type": "type.googleapis.com/proto3.MessageType",
    "value": 1234
  }
}
RRiRi��RRRg��Q�	@RRiiDsD{
  "value": {
    "@type": "type.googleapis.com/proto3.TestMessage"(R
tTestAnytMessageTypeRtPackRvR*R2R@RAR	R1RR4R5R�R&(R.R-tvalue1tvalue2R3ttest_message((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestAnyMessage7s8		

		
c	Csxtj�}tj�}d|_|j|�|jtjt	j
|t��tjd��tj�}|j||�t
j�}|j|�|jtjt	j
|t��tjd��|j||�tj�}d|_|j|�|jtjt	j
|t��tjd��|j||�tj�}|jjd�|jjd�|j|�|jtjt	j
|t��tjd��|j||�tj�}d	|d
<|j|�|jtjt	j
|t��tjd��|j||�tj�}d|_|j|�|j|�|jtjt	j
|t��tjd
��|j||�dS(Ni�sQ{
  "@type": "type.googleapis.com/google.protobuf.Int32Value",
  "value": 1234
}
sb{
  "@type": "type.googleapis.com/google.protobuf.Timestamp",
  "value": "1970-01-01T00:00:00Z"
}
isO{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1s"
}
sfoo.barR
sY{
  "@type": "type.googleapis.com/google.protobuf.FieldMask",
  "value": "foo.bar,bar"
}
R�R�sX{
  "@type": "type.googleapis.com/google.protobuf.Struct",
  "value": {"name": "Jim"}
}
i.s�{
  "@type": "type.googleapis.com/google.protobuf.Any",
  "value": {
    "@type": "type.googleapis.com/google.protobuf.Int32Value",
    "value": 5678
  }
}
(RtAnyRt
Int32ValueRR�R2R@RAR	R1RR4Rt	TimestampRtDurationRtRt	FieldMaskR{RRtStruct(	R.R-RR3t	timestamptdurationt
field_masktstruct_messaget
nested_any((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestWellKnownInAnyMessageesf	



	






	


cCs�tj�}tj�}|j|�tjd|�|j||�|j|jd��tjd|�|j|jd��|j	tj
dtjd|�|jdd�dS(Ns{"int32Value": null, "int64Value": null, "uint32Value": null,"uint64Value": null,"floatValue": null,"doubleValue": null,"boolValue": null,"stringValue": null,"bytesValue": null,"messageValue": null,"enumValue": null,"repeatedInt32Value": null,"repeatedInt64Value": null,"repeatedUint32Value": null,"repeatedUint64Value": null,"repeatedFloatValue": null,"repeatedDoubleValue": null,"repeatedBoolValue": null,"repeatedStringValue": null,"repeatedBytesValue": null,"repeatedMessageValue": null,"repeatedEnumValue": null}Rs{"messageValue": {}}skFailed to parse repeatedInt32Value field: null is not allowed to be used as an element in a repeated field.s {"repeatedInt32Value":[1, null]}s{"repeatedMessageValue":[null]}smFailed to parse repeatedMessageValue field: null is not allowed to be used as an element in a repeated field.(R
R5R/R	R0R2tassertFalsetHasFieldt
assertTrueR6R7R:(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
testParseNull�s"
		cCsstj�}td�|_d}|jtj|�|�tj�}tj||�|jt	j
|j��dS(Ntnans{
  "floatValue": "NaN"
}(R
R5RRR2R	R1R0R�tmathtisnan(R.R-R8R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestNanFloat�scCs|jdd�dS(NR}s1Failed to load JSON: (Expecting value)|(No JSON).(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestParseEmptyText�s	cCs�tj�}d}tj||�d}tj||�|jdd�d}tj||�tj�}|jtjdtjd|�dS(Ns{"enumValue": 0}s{"enumValue": 1}s{"enumValue": "baz"}sVFailed to parse enumValue field: Invalid enum value baz for enum type proto3.EnumType.s{"enumValue": 12345}s{Failed to parse optionalNestedEnum field: Invalid enum value 12345 for enum type protobuf_unittest.TestAllTypes.NestedEnum.s{"optionalNestedEnum": 12345}(	R
R5R	R0R:RtTestAllTypesR6R7(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestParseEnumValue�scCs$|jdd�|jdd�dS(Ns{int32Value: 1}sQFailed to load JSON: Expecting property name( enclosed in double quotes)?: line 1s{"unknownName": 1}sCMessage type "proto3.TestMessage" has no field named "unknownName".(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestParseBadIdentifers		cCsTd}tj�}tj||dt�d}tj�}tj||dt�dS(Ns{"unknownName": 1}tignore_unknown_fieldssl{
  "repeatedValue": [ {
    "@type": "type.googleapis.com/proto3.MessageType",
    "unknownName": 1
  }]
}
(R
R5R	R0RR�(R.R8R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestIgnoreUnknownFieldscCs'tjdkrdS|jdd�dS(Niis!{"int32Value": 1,
"int32Value":2}s.Failed to load JSON: duplicate key int32Value.(ii(R]R^R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestDuplicateFields	cCs$|jdd�|jdd�dS(Ns{"boolValue": 1}sGFailed to parse boolValue field: Expected true or false without quotes.s{"boolValue": "true"}(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidBoolValues		cCs�tj�}d}|jtjtj||�|jdd�|jdd�|jdd�|jdd	�|jd
d�|jdd
�dS(Ns{"int32Value": 0x12345}s{"int32Value": 1.5}s>Failed to parse int32Value field: Couldn't parse integer: 1.5.s{"int32Value": 012345}s9Failed to load JSON: Expecting \'?,\'? delimiter: line 1.s{"int32Value": " 1 "}s@Failed to parse int32Value field: Couldn't parse integer: " 1 ".s{"int32Value": "1 "}s?Failed to parse int32Value field: Couldn't parse integer: "1 ".s${"int32Value": 12345678901234567890}sKFailed to parse int32Value field: Value out of range: 12345678901234567890.s{"uint32Value": -1}s:Failed to parse uint32Value field: Value out of range: -1.(R
R5tassertRaisesR	R7R0R:(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidIntegerValue's 						cCs|jdd�dS(Ns{"floatValue": "nan"}sPFailed to parse floatValue field: Couldn't parse float "nan", use "NaN" instead.(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidFloatValue?s	cCs$|jdd�|jdd�dS(Ns{"bytesValue": "AQI"}s4Failed to parse bytesValue field: Incorrect padding.s{"bytesValue": "AQI*"}(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidBytesValueDs		cCs|jdd�dS(Ns{"repeatedInt32Value": 12345}skFailed to parse repeatedInt32Value field: repeated field repeatedInt32Value must be in \[\] which is 12345.(R:(R.((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidRepeatedJs	cCs�tj�}d}|jtjdtj||�d}|jtjdtj||�d}|jtjdtj||�tjd
kr�dSd	}|jtjd
tj||�d}|jtjdtj||�dS(Ns!{"int32Map": {"null": 2, "2": 3}}s/Failed to parse int32Map field: invalid literals{"int32Map": {1: 2, "2": 3}}sQFailed to load JSON: Expecting property name( enclosed in double quotes)?: line 1s{"boolMap": {"null": 1}}sDFailed to parse boolMap field: Expected "true" or "false", not null.iis${"stringMap": {"a": 3, "\u0061": 2}}s$Failed to load JSON: duplicate key as{"stringMap": 0}sSFailed to parse stringMap field: Map field string_map must be in a dict which is 0.(ii(R
tTestMapR6R	R7R0R]R^(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidMapOs8cCs�tj�}d}|jtjdtj||�d}|jtjdtj||�d}|jtjdtj||�d}|jtjdtj||�d	|j_|jt	d
tj
|�dS(Ns%{"value": "10000-01-01T00:00:00.00Z"}sKtime data '10000-01-01T00:00:00' does not match format '%Y-%m-%dT%H:%M:%S'.s/{"value": "1970-01-01T00:00:00.0123456789012Z"}s2nanos 0123456789012 more than 9 fractional digits.s&{"value": "1972-01-01T01:00:00.01+08"}s$Invalid timezone offset value: \+08.s!{"value": "0000-01-01T00:00:00Z"}s7Failed to parse value field: year (0 )?is out of range.l�A��sdate value out of range(R
RsR6R	R7R0RRRtt
OverflowErrorR1(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidTimestampos4cCs5tj�}d}|jtjdtj||�dS(Ns/{"oneofInt32Value": 1, "oneofStringValue": "2"}sTMessage type "proto3.TestOneof" should not have multiple "oneof_value" oneof fields.(R
RnR6R	R7R0(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidOneof�scCs5tj�}d}|jtjdtj||�dS(Ns{"value": 1234}sDFailed to parse value field: ListValue must be in \[\] which is 1234(R
R�R6R	R7R0(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidListValue�scCs5tj�}d}|jtjdtj||�dS(Ns{"value": 1234}sCFailed to parse value field: Struct must be in a dict which is 1234(R
R�R6R	R7R0(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidStruct�scCs�tj�}d}|jtdtj||�d}|jtjdtj||�d}|jtdtj||�d}tj||�dS(Ns;{"@type": "type.googleapis.com/google.protobuf.Int32Value"}Rs{"value": 1234}s*@type is missing when parsing any message.s?{"@type": "type.googleapis.com/MessageNotExist", "value": 1234}sQCan not find message descriptor by type_url: type.googleapis.com/MessageNotExist.sN{"@type": "incorrect.googleapis.com/google.protobuf.Int32Value","value": 1234}(RR�R6tKeyErrorR	R0R7t	TypeError(R.R-R8((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestInvalidAny�s$cCs�tj�}d|_|jdtj|��|jdtj|tt��tj�}|jdtj|tt��|jdtj|tt��tj�}tj	d|�|jd|j�tj	d|�|jd|j�dS(	Ni90s{
  "int32Value": 12345
}s{
  "int32_value": 12345
}s{
  "repeatedValue": []
}s{
  "repeated_value": []
}s{"int32Value": 54321}i1�s{"int32_value": 12345}(
R
R5RR2R	R1R&RRsR0(R.R-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestPreservingProtoFieldNames�s 					cCs8tj�}d|_|jdtj|dd��dS(Ni90s{
"int32Value": 12345
}tindenti(R
R5RR2R	R1(R.R-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
testIndent�s		cCsFd}i|d6}tj�}tj||�|j||j�dS(Ni90t
int32Value(R
R5R	RSR2R(R.texpectedtjs_dictR-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt
testParseDict�s

cCs?tj�}d|_idd6}|j|tj|��dS(Ni90R�(R
R5RR2R	RR(R.R-R�((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestMessageToDict�s
	
	cCsNtj�}d|_|jdtj|��tj�}|j||�dS(Ni90s{
  "@value": 12345
}(R
tTestCustomJsonNameRR2R	R1R4(R.R-R3((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestJsonName�s		cCs�tjdtdddddddd	�}|jtj|d
t�tjitd6dd6d
d6dd6d	d6ddd
t��dS(NRRiRiRiRtblat	sort_keyst	boolValueR�t3t
int64Valuetuint32ValuetstringValueR�i(R
R5RR2R	R1R@tdumps(R.R-((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyttestSortKeys�s	(2R;R<R>RBRCRDRPRQRURXR\R`RaRbRmRpRrRwRyR|RR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyR=ns`		
	!	
	
		
							(			(				!			.	O	-						
							 											t__main__(t__doc__t
__author__R@R�R]t	unittest2tunittesttImportErrortgoogle.protobufRRRRRRRRtgoogle.protobuf.internalRR	tgoogle.protobuf.utilR
tTestCaseRR=R;tmain(((sM/usr/lib/python2.7/site-packages/google/protobuf/internal/json_format_test.pyt<module> s4
4����PK�\�m.�M�M�*protobuf/internal/well_known_types_test.pynu�[���#
# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Test for google.protobuf.internal.well_known_types."""

__author__ = 'jieluo@google.com (Jie Luo)'

import collections
from datetime import datetime

try:
  import unittest2 as unittest  #PY26
except ImportError:
  import unittest

from google.protobuf import any_pb2
from google.protobuf import duration_pb2
from google.protobuf import field_mask_pb2
from google.protobuf import struct_pb2
from google.protobuf import timestamp_pb2
from google.protobuf import unittest_pb2
from google.protobuf.internal import any_test_pb2
from google.protobuf.internal import test_util
from google.protobuf.internal import well_known_types
from google.protobuf import descriptor
from google.protobuf import text_format


class TimeUtilTestBase(unittest.TestCase):

  def CheckTimestampConversion(self, message, text):
    self.assertEqual(text, message.ToJsonString())
    parsed_message = timestamp_pb2.Timestamp()
    parsed_message.FromJsonString(text)
    self.assertEqual(message, parsed_message)

  def CheckDurationConversion(self, message, text):
    self.assertEqual(text, message.ToJsonString())
    parsed_message = duration_pb2.Duration()
    parsed_message.FromJsonString(text)
    self.assertEqual(message, parsed_message)


class TimeUtilTest(TimeUtilTestBase):

  def testTimestampSerializeAndParse(self):
    message = timestamp_pb2.Timestamp()
    # Generated output should contain 3, 6, or 9 fractional digits.
    message.seconds = 0
    message.nanos = 0
    self.CheckTimestampConversion(message, '1970-01-01T00:00:00Z')
    message.nanos = 10000000
    self.CheckTimestampConversion(message, '1970-01-01T00:00:00.010Z')
    message.nanos = 10000
    self.CheckTimestampConversion(message, '1970-01-01T00:00:00.000010Z')
    message.nanos = 10
    self.CheckTimestampConversion(message, '1970-01-01T00:00:00.000000010Z')
    # Test min timestamps.
    message.seconds = -62135596800
    message.nanos = 0
    self.CheckTimestampConversion(message, '0001-01-01T00:00:00Z')
    # Test max timestamps.
    message.seconds = 253402300799
    message.nanos = 999999999
    self.CheckTimestampConversion(message, '9999-12-31T23:59:59.999999999Z')
    # Test negative timestamps.
    message.seconds = -1
    self.CheckTimestampConversion(message, '1969-12-31T23:59:59.999999999Z')

    # Parsing accepts an fractional digits as long as they fit into nano
    # precision.
    message.FromJsonString('1970-01-01T00:00:00.1Z')
    self.assertEqual(0, message.seconds)
    self.assertEqual(100000000, message.nanos)
    # Parsing accpets offsets.
    message.FromJsonString('1970-01-01T00:00:00-08:00')
    self.assertEqual(8 * 3600, message.seconds)
    self.assertEqual(0, message.nanos)

    # It is not easy to check with current time. For test coverage only.
    message.GetCurrentTime()
    self.assertNotEqual(8 * 3600, message.seconds)

  def testDurationSerializeAndParse(self):
    message = duration_pb2.Duration()
    # Generated output should contain 3, 6, or 9 fractional digits.
    message.seconds = 0
    message.nanos = 0
    self.CheckDurationConversion(message, '0s')
    message.nanos = 10000000
    self.CheckDurationConversion(message, '0.010s')
    message.nanos = 10000
    self.CheckDurationConversion(message, '0.000010s')
    message.nanos = 10
    self.CheckDurationConversion(message, '0.000000010s')

    # Test min and max
    message.seconds = 315576000000
    message.nanos = 999999999
    self.CheckDurationConversion(message, '315576000000.999999999s')
    message.seconds = -315576000000
    message.nanos = -999999999
    self.CheckDurationConversion(message, '-315576000000.999999999s')

    # Parsing accepts an fractional digits as long as they fit into nano
    # precision.
    message.FromJsonString('0.1s')
    self.assertEqual(100000000, message.nanos)
    message.FromJsonString('0.0000001s')
    self.assertEqual(100, message.nanos)

  def testTimestampIntegerConversion(self):
    message = timestamp_pb2.Timestamp()
    message.FromNanoseconds(1)
    self.assertEqual('1970-01-01T00:00:00.000000001Z',
                     message.ToJsonString())
    self.assertEqual(1, message.ToNanoseconds())

    message.FromNanoseconds(-1)
    self.assertEqual('1969-12-31T23:59:59.999999999Z',
                     message.ToJsonString())
    self.assertEqual(-1, message.ToNanoseconds())

    message.FromMicroseconds(1)
    self.assertEqual('1970-01-01T00:00:00.000001Z',
                     message.ToJsonString())
    self.assertEqual(1, message.ToMicroseconds())

    message.FromMicroseconds(-1)
    self.assertEqual('1969-12-31T23:59:59.999999Z',
                     message.ToJsonString())
    self.assertEqual(-1, message.ToMicroseconds())

    message.FromMilliseconds(1)
    self.assertEqual('1970-01-01T00:00:00.001Z',
                     message.ToJsonString())
    self.assertEqual(1, message.ToMilliseconds())

    message.FromMilliseconds(-1)
    self.assertEqual('1969-12-31T23:59:59.999Z',
                     message.ToJsonString())
    self.assertEqual(-1, message.ToMilliseconds())

    message.FromSeconds(1)
    self.assertEqual('1970-01-01T00:00:01Z',
                     message.ToJsonString())
    self.assertEqual(1, message.ToSeconds())

    message.FromSeconds(-1)
    self.assertEqual('1969-12-31T23:59:59Z',
                     message.ToJsonString())
    self.assertEqual(-1, message.ToSeconds())

    message.FromNanoseconds(1999)
    self.assertEqual(1, message.ToMicroseconds())
    # For negative values, Timestamp will be rounded down.
    # For example, "1969-12-31T23:59:59.5Z" (i.e., -0.5s) rounded to seconds
    # will be "1969-12-31T23:59:59Z" (i.e., -1s) rather than
    # "1970-01-01T00:00:00Z" (i.e., 0s).
    message.FromNanoseconds(-1999)
    self.assertEqual(-2, message.ToMicroseconds())

  def testDurationIntegerConversion(self):
    message = duration_pb2.Duration()
    message.FromNanoseconds(1)
    self.assertEqual('0.000000001s',
                     message.ToJsonString())
    self.assertEqual(1, message.ToNanoseconds())

    message.FromNanoseconds(-1)
    self.assertEqual('-0.000000001s',
                     message.ToJsonString())
    self.assertEqual(-1, message.ToNanoseconds())

    message.FromMicroseconds(1)
    self.assertEqual('0.000001s',
                     message.ToJsonString())
    self.assertEqual(1, message.ToMicroseconds())

    message.FromMicroseconds(-1)
    self.assertEqual('-0.000001s',
                     message.ToJsonString())
    self.assertEqual(-1, message.ToMicroseconds())

    message.FromMilliseconds(1)
    self.assertEqual('0.001s',
                     message.ToJsonString())
    self.assertEqual(1, message.ToMilliseconds())

    message.FromMilliseconds(-1)
    self.assertEqual('-0.001s',
                     message.ToJsonString())
    self.assertEqual(-1, message.ToMilliseconds())

    message.FromSeconds(1)
    self.assertEqual('1s', message.ToJsonString())
    self.assertEqual(1, message.ToSeconds())

    message.FromSeconds(-1)
    self.assertEqual('-1s',
                     message.ToJsonString())
    self.assertEqual(-1, message.ToSeconds())

    # Test truncation behavior.
    message.FromNanoseconds(1999)
    self.assertEqual(1, message.ToMicroseconds())

    # For negative values, Duration will be rounded towards 0.
    message.FromNanoseconds(-1999)
    self.assertEqual(-1, message.ToMicroseconds())

  def testDatetimeConverison(self):
    message = timestamp_pb2.Timestamp()
    dt = datetime(1970, 1, 1)
    message.FromDatetime(dt)
    self.assertEqual(dt, message.ToDatetime())

    message.FromMilliseconds(1999)
    self.assertEqual(datetime(1970, 1, 1, 0, 0, 1, 999000),
                     message.ToDatetime())

  def testTimedeltaConversion(self):
    message = duration_pb2.Duration()
    message.FromNanoseconds(1999999999)
    td = message.ToTimedelta()
    self.assertEqual(1, td.seconds)
    self.assertEqual(999999, td.microseconds)

    message.FromNanoseconds(-1999999999)
    td = message.ToTimedelta()
    self.assertEqual(-1, td.days)
    self.assertEqual(86398, td.seconds)
    self.assertEqual(1, td.microseconds)

    message.FromMicroseconds(-1)
    td = message.ToTimedelta()
    self.assertEqual(-1, td.days)
    self.assertEqual(86399, td.seconds)
    self.assertEqual(999999, td.microseconds)
    converted_message = duration_pb2.Duration()
    converted_message.FromTimedelta(td)
    self.assertEqual(message, converted_message)

  def testInvalidTimestamp(self):
    message = timestamp_pb2.Timestamp()
    self.assertRaisesRegexp(
        well_known_types.ParseError,
        'Failed to parse timestamp: missing valid timezone offset.',
        message.FromJsonString,
        '')
    self.assertRaisesRegexp(
        well_known_types.ParseError,
        'Failed to parse timestamp: invalid trailing data '
        '1970-01-01T00:00:01Ztrail.',
        message.FromJsonString,
        '1970-01-01T00:00:01Ztrail')
    self.assertRaisesRegexp(
        ValueError,
        'time data \'10000-01-01T00:00:00\' does not match'
        ' format \'%Y-%m-%dT%H:%M:%S\'',
        message.FromJsonString, '10000-01-01T00:00:00.00Z')
    self.assertRaisesRegexp(
        well_known_types.ParseError,
        'nanos 0123456789012 more than 9 fractional digits.',
        message.FromJsonString,
        '1970-01-01T00:00:00.0123456789012Z')
    self.assertRaisesRegexp(
        well_known_types.ParseError,
        (r'Invalid timezone offset value: \+08.'),
        message.FromJsonString,
        '1972-01-01T01:00:00.01+08',)
    self.assertRaisesRegexp(
        ValueError,
        'year (0 )?is out of range',
        message.FromJsonString,
        '0000-01-01T00:00:00Z')
    message.seconds = 253402300800
    self.assertRaisesRegexp(
        OverflowError,
        'date value out of range',
        message.ToJsonString)

  def testInvalidDuration(self):
    message = duration_pb2.Duration()
    self.assertRaisesRegexp(
        well_known_types.ParseError,
        'Duration must end with letter "s": 1.',
        message.FromJsonString, '1')
    self.assertRaisesRegexp(
        well_known_types.ParseError,
        'Couldn\'t parse duration: 1...2s.',
        message.FromJsonString, '1...2s')
    text = '-315576000001.000000000s'
    self.assertRaisesRegexp(
        well_known_types.Error,
        r'Duration is not valid\: Seconds -315576000001 must be in range'
        r' \[-315576000000\, 315576000000\].',
        message.FromJsonString, text)
    text = '315576000001.000000000s'
    self.assertRaisesRegexp(
        well_known_types.Error,
        r'Duration is not valid\: Seconds 315576000001 must be in range'
        r' \[-315576000000\, 315576000000\].',
        message.FromJsonString, text)
    message.seconds = -315576000001
    message.nanos = 0
    self.assertRaisesRegexp(
        well_known_types.Error,
        r'Duration is not valid\: Seconds -315576000001 must be in range'
        r' \[-315576000000\, 315576000000\].',
        message.ToJsonString)
    message.seconds = 0
    message.nanos = 999999999 + 1
    self.assertRaisesRegexp(
        well_known_types.Error,
        r'Duration is not valid\: Nanos 1000000000 must be in range'
        r' \[-999999999\, 999999999\].',
        message.ToJsonString)


class FieldMaskTest(unittest.TestCase):

  def testStringFormat(self):
    mask = field_mask_pb2.FieldMask()
    self.assertEqual('', mask.ToJsonString())
    mask.paths.append('foo')
    self.assertEqual('foo', mask.ToJsonString())
    mask.paths.append('bar')
    self.assertEqual('foo,bar', mask.ToJsonString())

    mask.FromJsonString('')
    self.assertEqual('', mask.ToJsonString())
    mask.FromJsonString('foo')
    self.assertEqual(['foo'], mask.paths)
    mask.FromJsonString('foo,bar')
    self.assertEqual(['foo', 'bar'], mask.paths)

    # Test camel case
    mask.Clear()
    mask.paths.append('foo_bar')
    self.assertEqual('fooBar', mask.ToJsonString())
    mask.paths.append('bar_quz')
    self.assertEqual('fooBar,barQuz', mask.ToJsonString())

    mask.FromJsonString('')
    self.assertEqual('', mask.ToJsonString())
    mask.FromJsonString('fooBar')
    self.assertEqual(['foo_bar'], mask.paths)
    mask.FromJsonString('fooBar,barQuz')
    self.assertEqual(['foo_bar', 'bar_quz'], mask.paths)

  def testDescriptorToFieldMask(self):
    mask = field_mask_pb2.FieldMask()
    msg_descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
    mask.AllFieldsFromDescriptor(msg_descriptor)
    self.assertEqual(75, len(mask.paths))
    self.assertTrue(mask.IsValidForDescriptor(msg_descriptor))
    for field in msg_descriptor.fields:
      self.assertTrue(field.name in mask.paths)

  def testIsValidForDescriptor(self):
    msg_descriptor = unittest_pb2.TestAllTypes.DESCRIPTOR
    # Empty mask
    mask = field_mask_pb2.FieldMask()
    self.assertTrue(mask.IsValidForDescriptor(msg_descriptor))
    # All fields from descriptor
    mask.AllFieldsFromDescriptor(msg_descriptor)
    self.assertTrue(mask.IsValidForDescriptor(msg_descriptor))
    # Child under optional message
    mask.paths.append('optional_nested_message.bb')
    self.assertTrue(mask.IsValidForDescriptor(msg_descriptor))
    # Repeated field is only allowed in the last position of path
    mask.paths.append('repeated_nested_message.bb')
    self.assertFalse(mask.IsValidForDescriptor(msg_descriptor))
    # Invalid top level field
    mask = field_mask_pb2.FieldMask()
    mask.paths.append('xxx')
    self.assertFalse(mask.IsValidForDescriptor(msg_descriptor))
    # Invalid field in root
    mask = field_mask_pb2.FieldMask()
    mask.paths.append('xxx.zzz')
    self.assertFalse(mask.IsValidForDescriptor(msg_descriptor))
    # Invalid field in internal node
    mask = field_mask_pb2.FieldMask()
    mask.paths.append('optional_nested_message.xxx.zzz')
    self.assertFalse(mask.IsValidForDescriptor(msg_descriptor))
    # Invalid field in leaf
    mask = field_mask_pb2.FieldMask()
    mask.paths.append('optional_nested_message.xxx')
    self.assertFalse(mask.IsValidForDescriptor(msg_descriptor))

  def testCanonicalFrom(self):
    mask = field_mask_pb2.FieldMask()
    out_mask = field_mask_pb2.FieldMask()
    # Paths will be sorted.
    mask.FromJsonString('baz.quz,bar,foo')
    out_mask.CanonicalFormFromMask(mask)
    self.assertEqual('bar,baz.quz,foo', out_mask.ToJsonString())
    # Duplicated paths will be removed.
    mask.FromJsonString('foo,bar,foo')
    out_mask.CanonicalFormFromMask(mask)
    self.assertEqual('bar,foo', out_mask.ToJsonString())
    # Sub-paths of other paths will be removed.
    mask.FromJsonString('foo.b1,bar.b1,foo.b2,bar')
    out_mask.CanonicalFormFromMask(mask)
    self.assertEqual('bar,foo.b1,foo.b2', out_mask.ToJsonString())

    # Test more deeply nested cases.
    mask.FromJsonString(
        'foo.bar.baz1,foo.bar.baz2.quz,foo.bar.baz2')
    out_mask.CanonicalFormFromMask(mask)
    self.assertEqual('foo.bar.baz1,foo.bar.baz2',
                     out_mask.ToJsonString())
    mask.FromJsonString(
        'foo.bar.baz1,foo.bar.baz2,foo.bar.baz2.quz')
    out_mask.CanonicalFormFromMask(mask)
    self.assertEqual('foo.bar.baz1,foo.bar.baz2',
                     out_mask.ToJsonString())
    mask.FromJsonString(
        'foo.bar.baz1,foo.bar.baz2,foo.bar.baz2.quz,foo.bar')
    out_mask.CanonicalFormFromMask(mask)
    self.assertEqual('foo.bar', out_mask.ToJsonString())
    mask.FromJsonString(
        'foo.bar.baz1,foo.bar.baz2,foo.bar.baz2.quz,foo')
    out_mask.CanonicalFormFromMask(mask)
    self.assertEqual('foo', out_mask.ToJsonString())

  def testUnion(self):
    mask1 = field_mask_pb2.FieldMask()
    mask2 = field_mask_pb2.FieldMask()
    out_mask = field_mask_pb2.FieldMask()
    mask1.FromJsonString('foo,baz')
    mask2.FromJsonString('bar,quz')
    out_mask.Union(mask1, mask2)
    self.assertEqual('bar,baz,foo,quz', out_mask.ToJsonString())
    # Overlap with duplicated paths.
    mask1.FromJsonString('foo,baz.bb')
    mask2.FromJsonString('baz.bb,quz')
    out_mask.Union(mask1, mask2)
    self.assertEqual('baz.bb,foo,quz', out_mask.ToJsonString())
    # Overlap with paths covering some other paths.
    mask1.FromJsonString('foo.bar.baz,quz')
    mask2.FromJsonString('foo.bar,bar')
    out_mask.Union(mask1, mask2)
    self.assertEqual('bar,foo.bar,quz', out_mask.ToJsonString())
    src = unittest_pb2.TestAllTypes()
    with self.assertRaises(ValueError):
      out_mask.Union(src, mask2)

  def testIntersect(self):
    mask1 = field_mask_pb2.FieldMask()
    mask2 = field_mask_pb2.FieldMask()
    out_mask = field_mask_pb2.FieldMask()
    # Test cases without overlapping.
    mask1.FromJsonString('foo,baz')
    mask2.FromJsonString('bar,quz')
    out_mask.Intersect(mask1, mask2)
    self.assertEqual('', out_mask.ToJsonString())
    # Overlap with duplicated paths.
    mask1.FromJsonString('foo,baz.bb')
    mask2.FromJsonString('baz.bb,quz')
    out_mask.Intersect(mask1, mask2)
    self.assertEqual('baz.bb', out_mask.ToJsonString())
    # Overlap with paths covering some other paths.
    mask1.FromJsonString('foo.bar.baz,quz')
    mask2.FromJsonString('foo.bar,bar')
    out_mask.Intersect(mask1, mask2)
    self.assertEqual('foo.bar.baz', out_mask.ToJsonString())
    mask1.FromJsonString('foo.bar,bar')
    mask2.FromJsonString('foo.bar.baz,quz')
    out_mask.Intersect(mask1, mask2)
    self.assertEqual('foo.bar.baz', out_mask.ToJsonString())

  def testMergeMessage(self):
    # Test merge one field.
    src = unittest_pb2.TestAllTypes()
    test_util.SetAllFields(src)
    for field in src.DESCRIPTOR.fields:
      if field.containing_oneof:
        continue
      field_name = field.name
      dst = unittest_pb2.TestAllTypes()
      # Only set one path to mask.
      mask = field_mask_pb2.FieldMask()
      mask.paths.append(field_name)
      mask.MergeMessage(src, dst)
      # The expected result message.
      msg = unittest_pb2.TestAllTypes()
      if field.label == descriptor.FieldDescriptor.LABEL_REPEATED:
        repeated_src = getattr(src, field_name)
        repeated_msg = getattr(msg, field_name)
        if field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
          for item in repeated_src:
            repeated_msg.add().CopyFrom(item)
        else:
          repeated_msg.extend(repeated_src)
      elif field.cpp_type == descriptor.FieldDescriptor.CPPTYPE_MESSAGE:
        getattr(msg, field_name).CopyFrom(getattr(src, field_name))
      else:
        setattr(msg, field_name, getattr(src, field_name))
      # Only field specified in mask is merged.
      self.assertEqual(msg, dst)

    # Test merge nested fields.
    nested_src = unittest_pb2.NestedTestAllTypes()
    nested_dst = unittest_pb2.NestedTestAllTypes()
    nested_src.child.payload.optional_int32 = 1234
    nested_src.child.child.payload.optional_int32 = 5678
    mask = field_mask_pb2.FieldMask()
    mask.FromJsonString('child.payload')
    mask.MergeMessage(nested_src, nested_dst)
    self.assertEqual(1234, nested_dst.child.payload.optional_int32)
    self.assertEqual(0, nested_dst.child.child.payload.optional_int32)

    mask.FromJsonString('child.child.payload')
    mask.MergeMessage(nested_src, nested_dst)
    self.assertEqual(1234, nested_dst.child.payload.optional_int32)
    self.assertEqual(5678, nested_dst.child.child.payload.optional_int32)

    nested_dst.Clear()
    mask.FromJsonString('child.child.payload')
    mask.MergeMessage(nested_src, nested_dst)
    self.assertEqual(0, nested_dst.child.payload.optional_int32)
    self.assertEqual(5678, nested_dst.child.child.payload.optional_int32)

    nested_dst.Clear()
    mask.FromJsonString('child')
    mask.MergeMessage(nested_src, nested_dst)
    self.assertEqual(1234, nested_dst.child.payload.optional_int32)
    self.assertEqual(5678, nested_dst.child.child.payload.optional_int32)

    # Test MergeOptions.
    nested_dst.Clear()
    nested_dst.child.payload.optional_int64 = 4321
    # Message fields will be merged by default.
    mask.FromJsonString('child.payload')
    mask.MergeMessage(nested_src, nested_dst)
    self.assertEqual(1234, nested_dst.child.payload.optional_int32)
    self.assertEqual(4321, nested_dst.child.payload.optional_int64)
    # Change the behavior to replace message fields.
    mask.FromJsonString('child.payload')
    mask.MergeMessage(nested_src, nested_dst, True, False)
    self.assertEqual(1234, nested_dst.child.payload.optional_int32)
    self.assertEqual(0, nested_dst.child.payload.optional_int64)

    # By default, fields missing in source are not cleared in destination.
    nested_dst.payload.optional_int32 = 1234
    self.assertTrue(nested_dst.HasField('payload'))
    mask.FromJsonString('payload')
    mask.MergeMessage(nested_src, nested_dst)
    self.assertTrue(nested_dst.HasField('payload'))
    # But they are cleared when replacing message fields.
    nested_dst.Clear()
    nested_dst.payload.optional_int32 = 1234
    mask.FromJsonString('payload')
    mask.MergeMessage(nested_src, nested_dst, True, False)
    self.assertFalse(nested_dst.HasField('payload'))

    nested_src.payload.repeated_int32.append(1234)
    nested_dst.payload.repeated_int32.append(5678)
    # Repeated fields will be appended by default.
    mask.FromJsonString('payload.repeatedInt32')
    mask.MergeMessage(nested_src, nested_dst)
    self.assertEqual(2, len(nested_dst.payload.repeated_int32))
    self.assertEqual(5678, nested_dst.payload.repeated_int32[0])
    self.assertEqual(1234, nested_dst.payload.repeated_int32[1])
    # Change the behavior to replace repeated fields.
    mask.FromJsonString('payload.repeatedInt32')
    mask.MergeMessage(nested_src, nested_dst, False, True)
    self.assertEqual(1, len(nested_dst.payload.repeated_int32))
    self.assertEqual(1234, nested_dst.payload.repeated_int32[0])

  def testMergeErrors(self):
    src = unittest_pb2.TestAllTypes()
    dst = unittest_pb2.TestAllTypes()
    mask = field_mask_pb2.FieldMask()
    test_util.SetAllFields(src)
    mask.FromJsonString('optionalInt32.field')
    with self.assertRaises(ValueError) as e:
      mask.MergeMessage(src, dst)
    self.assertEqual('Error: Field optional_int32 in message '
                     'protobuf_unittest.TestAllTypes is not a singular '
                     'message field and cannot have sub-fields.',
                     str(e.exception))

  def testSnakeCaseToCamelCase(self):
    self.assertEqual('fooBar',
                     well_known_types._SnakeCaseToCamelCase('foo_bar'))
    self.assertEqual('FooBar',
                     well_known_types._SnakeCaseToCamelCase('_foo_bar'))
    self.assertEqual('foo3Bar',
                     well_known_types._SnakeCaseToCamelCase('foo3_bar'))

    # No uppercase letter is allowed.
    self.assertRaisesRegexp(
        well_known_types.Error,
        'Fail to print FieldMask to Json string: Path name Foo must '
        'not contain uppercase letters.',
        well_known_types._SnakeCaseToCamelCase,
        'Foo')
    # Any character after a "_" must be a lowercase letter.
    #   1. "_" cannot be followed by another "_".
    #   2. "_" cannot be followed by a digit.
    #   3. "_" cannot appear as the last character.
    self.assertRaisesRegexp(
        well_known_types.Error,
        'Fail to print FieldMask to Json string: The character after a '
        '"_" must be a lowercase letter in path name foo__bar.',
        well_known_types._SnakeCaseToCamelCase,
        'foo__bar')
    self.assertRaisesRegexp(
        well_known_types.Error,
        'Fail to print FieldMask to Json string: The character after a '
        '"_" must be a lowercase letter in path name foo_3bar.',
        well_known_types._SnakeCaseToCamelCase,
        'foo_3bar')
    self.assertRaisesRegexp(
        well_known_types.Error,
        'Fail to print FieldMask to Json string: Trailing "_" in path '
        'name foo_bar_.',
        well_known_types._SnakeCaseToCamelCase,
        'foo_bar_')

  def testCamelCaseToSnakeCase(self):
    self.assertEqual('foo_bar',
                     well_known_types._CamelCaseToSnakeCase('fooBar'))
    self.assertEqual('_foo_bar',
                     well_known_types._CamelCaseToSnakeCase('FooBar'))
    self.assertEqual('foo3_bar',
                     well_known_types._CamelCaseToSnakeCase('foo3Bar'))
    self.assertRaisesRegexp(
        well_known_types.ParseError,
        'Fail to parse FieldMask: Path name foo_bar must not contain "_"s.',
        well_known_types._CamelCaseToSnakeCase,
        'foo_bar')


class StructTest(unittest.TestCase):

  def testStruct(self):
    struct = struct_pb2.Struct()
    self.assertIsInstance(struct, collections.Mapping)
    self.assertEqual(0, len(struct))
    struct_class = struct.__class__

    struct['key1'] = 5
    struct['key2'] = 'abc'
    struct['key3'] = True
    struct.get_or_create_struct('key4')['subkey'] = 11.0
    struct_list = struct.get_or_create_list('key5')
    self.assertIsInstance(struct_list, collections.Sequence)
    struct_list.extend([6, 'seven', True, False, None])
    struct_list.add_struct()['subkey2'] = 9
    struct['key6'] = {'subkey': {}}
    struct['key7'] = [2, False]

    self.assertEqual(7, len(struct))
    self.assertTrue(isinstance(struct, well_known_types.Struct))
    self.assertEqual(5, struct['key1'])
    self.assertEqual('abc', struct['key2'])
    self.assertIs(True, struct['key3'])
    self.assertEqual(11, struct['key4']['subkey'])
    inner_struct = struct_class()
    inner_struct['subkey2'] = 9
    self.assertEqual([6, 'seven', True, False, None, inner_struct],
                     list(struct['key5'].items()))
    self.assertEqual({}, dict(struct['key6']['subkey'].fields))
    self.assertEqual([2, False], list(struct['key7'].items()))

    serialized = struct.SerializeToString()
    struct2 = struct_pb2.Struct()
    struct2.ParseFromString(serialized)

    self.assertEqual(struct, struct2)
    for key, value in struct.items():
      self.assertIn(key, struct)
      self.assertIn(key, struct2)
      self.assertEqual(value, struct2[key])

    self.assertEqual(7, len(struct.keys()))
    self.assertEqual(7, len(struct.values()))
    for key in struct.keys():
      self.assertIn(key, struct)
      self.assertIn(key, struct2)
      self.assertEqual(struct[key], struct2[key])

    item = (next(iter(struct.keys())), next(iter(struct.values())))
    self.assertEqual(item, next(iter(struct.items())))

    self.assertTrue(isinstance(struct2, well_known_types.Struct))
    self.assertEqual(5, struct2['key1'])
    self.assertEqual('abc', struct2['key2'])
    self.assertIs(True, struct2['key3'])
    self.assertEqual(11, struct2['key4']['subkey'])
    self.assertEqual([6, 'seven', True, False, None, inner_struct],
                     list(struct2['key5'].items()))

    struct_list = struct2['key5']
    self.assertEqual(6, struct_list[0])
    self.assertEqual('seven', struct_list[1])
    self.assertEqual(True, struct_list[2])
    self.assertEqual(False, struct_list[3])
    self.assertEqual(None, struct_list[4])
    self.assertEqual(inner_struct, struct_list[5])

    struct_list[1] = 7
    self.assertEqual(7, struct_list[1])

    struct_list.add_list().extend([1, 'two', True, False, None])
    self.assertEqual([1, 'two', True, False, None],
                     list(struct_list[6].items()))
    struct_list.extend([{'nested_struct': 30}, ['nested_list', 99], {}, []])
    self.assertEqual(11, len(struct_list.values))
    self.assertEqual(30, struct_list[7]['nested_struct'])
    self.assertEqual('nested_list', struct_list[8][0])
    self.assertEqual(99, struct_list[8][1])
    self.assertEqual({}, dict(struct_list[9].fields))
    self.assertEqual([], list(struct_list[10].items()))
    struct_list[0] = {'replace': 'set'}
    struct_list[1] = ['replace', 'set']
    self.assertEqual('set', struct_list[0]['replace'])
    self.assertEqual(['replace', 'set'], list(struct_list[1].items()))

    text_serialized = str(struct)
    struct3 = struct_pb2.Struct()
    text_format.Merge(text_serialized, struct3)
    self.assertEqual(struct, struct3)

    struct.get_or_create_struct('key3')['replace'] = 12
    self.assertEqual(12, struct['key3']['replace'])

    # Tests empty list.
    struct.get_or_create_list('empty_list')
    empty_list = struct['empty_list']
    self.assertEqual([], list(empty_list.items()))
    list2 = struct_pb2.ListValue()
    list2.add_list()
    empty_list = list2[0]
    self.assertEqual([], list(empty_list.items()))

    # Tests empty struct.
    struct.get_or_create_struct('empty_struct')
    empty_struct = struct['empty_struct']
    self.assertEqual({}, dict(empty_struct.fields))
    list2.add_struct()
    empty_struct = list2[1]
    self.assertEqual({}, dict(empty_struct.fields))

    self.assertEqual(9, len(struct))
    del struct['key3']
    del struct['key4']
    self.assertEqual(7, len(struct))
    self.assertEqual(6, len(struct['key5']))
    del struct['key5'][1]
    self.assertEqual(5, len(struct['key5']))
    self.assertEqual([6, True, False, None, inner_struct],
                     list(struct['key5'].items()))

  def testMergeFrom(self):
    struct = struct_pb2.Struct()
    struct_class = struct.__class__

    dictionary = {
        'key1': 5,
        'key2': 'abc',
        'key3': True,
        'key4': {'subkey': 11.0},
        'key5': [6, 'seven', True, False, None, {'subkey2': 9}],
        'key6': [['nested_list', True]],
        'empty_struct': {},
        'empty_list': []
    }
    struct.update(dictionary)
    self.assertEqual(5, struct['key1'])
    self.assertEqual('abc', struct['key2'])
    self.assertIs(True, struct['key3'])
    self.assertEqual(11, struct['key4']['subkey'])
    inner_struct = struct_class()
    inner_struct['subkey2'] = 9
    self.assertEqual([6, 'seven', True, False, None, inner_struct],
                     list(struct['key5'].items()))
    self.assertEqual(2, len(struct['key6'][0].values))
    self.assertEqual('nested_list', struct['key6'][0][0])
    self.assertEqual(True, struct['key6'][0][1])
    empty_list = struct['empty_list']
    self.assertEqual([], list(empty_list.items()))
    empty_struct = struct['empty_struct']
    self.assertEqual({}, dict(empty_struct.fields))

    # According to documentation: "When parsing from the wire or when merging,
    # if there are duplicate map keys the last key seen is used".
    duplicate = {
        'key4': {'replace': 20},
        'key5': [[False, 5]]
    }
    struct.update(duplicate)
    self.assertEqual(1, len(struct['key4'].fields))
    self.assertEqual(20, struct['key4']['replace'])
    self.assertEqual(1, len(struct['key5'].values))
    self.assertEqual(False, struct['key5'][0][0])
    self.assertEqual(5, struct['key5'][0][1])


class AnyTest(unittest.TestCase):

  def testAnyMessage(self):
    # Creates and sets message.
    msg = any_test_pb2.TestAny()
    msg_descriptor = msg.DESCRIPTOR
    all_types = unittest_pb2.TestAllTypes()
    all_descriptor = all_types.DESCRIPTOR
    all_types.repeated_string.append(u'\u00fc\ua71f')
    # Packs to Any.
    msg.value.Pack(all_types)
    self.assertEqual(msg.value.type_url,
                     'type.googleapis.com/%s' % all_descriptor.full_name)
    self.assertEqual(msg.value.value,
                     all_types.SerializeToString())
    # Tests Is() method.
    self.assertTrue(msg.value.Is(all_descriptor))
    self.assertFalse(msg.value.Is(msg_descriptor))
    # Unpacks Any.
    unpacked_message = unittest_pb2.TestAllTypes()
    self.assertTrue(msg.value.Unpack(unpacked_message))
    self.assertEqual(all_types, unpacked_message)
    # Unpacks to different type.
    self.assertFalse(msg.value.Unpack(msg))
    # Only Any messages have Pack method.
    try:
      msg.Pack(all_types)
    except AttributeError:
      pass
    else:
      raise AttributeError('%s should not have Pack method.' %
                           msg_descriptor.full_name)

  def testMessageName(self):
    # Creates and sets message.
    submessage = any_test_pb2.TestAny()
    submessage.int_value = 12345
    msg = any_pb2.Any()
    msg.Pack(submessage)
    self.assertEqual(msg.TypeName(), 'google.protobuf.internal.TestAny')

  def testPackWithCustomTypeUrl(self):
    submessage = any_test_pb2.TestAny()
    submessage.int_value = 12345
    msg = any_pb2.Any()
    # Pack with a custom type URL prefix.
    msg.Pack(submessage, 'type.myservice.com')
    self.assertEqual(msg.type_url,
                     'type.myservice.com/%s' % submessage.DESCRIPTOR.full_name)
    # Pack with a custom type URL prefix ending with '/'.
    msg.Pack(submessage, 'type.myservice.com/')
    self.assertEqual(msg.type_url,
                     'type.myservice.com/%s' % submessage.DESCRIPTOR.full_name)
    # Pack with an empty type URL prefix.
    msg.Pack(submessage, '')
    self.assertEqual(msg.type_url,
                     '/%s' % submessage.DESCRIPTOR.full_name)
    # Test unpacking the type.
    unpacked_message = any_test_pb2.TestAny()
    self.assertTrue(msg.Unpack(unpacked_message))
    self.assertEqual(submessage, unpacked_message)

  def testPackDeterministic(self):
    submessage = any_test_pb2.TestAny()
    for i in range(10):
      submessage.map_value[str(i)] = i * 2
    msg = any_pb2.Any()
    msg.Pack(submessage, deterministic=True)
    serialized = msg.SerializeToString(deterministic=True)
    golden = (b'\n4type.googleapis.com/google.protobuf.internal.TestAny\x12F'
              b'\x1a\x05\n\x010\x10\x00\x1a\x05\n\x011\x10\x02\x1a\x05\n\x01'
              b'2\x10\x04\x1a\x05\n\x013\x10\x06\x1a\x05\n\x014\x10\x08\x1a'
              b'\x05\n\x015\x10\n\x1a\x05\n\x016\x10\x0c\x1a\x05\n\x017\x10'
              b'\x0e\x1a\x05\n\x018\x10\x10\x1a\x05\n\x019\x10\x12')
    self.assertEqual(golden, serialized)


if __name__ == '__main__':
  unittest.main()
PK�\�����protobuf/unittest_arena_pb2.pycnu�[����
���hc.@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�Zejdddddddedddejdddddddd d!d"d#d d$d d%ed&dd'dd(dddd)ed*dd+dde�gd,gd-gd.gd+dd/eddd0gd1gd2d3d4d5�Zejdd6dd7dddedddejdd8dd9dddd d!d:d#d;d$dd%ed&gd'dd(dddd)ed*dd+dde�ejdd<dd=dd dd>d!d:d#d;d$dd%ed&gd'dd(dddd)ed*dd+dde�gd,gd-gd.gd+dd/eddd0gd1gd2d?d4d@�Zeejd8_ejejd<_eejd<eejd6<eje�e	jdejfe dAedBdC��Z!ej"e!�e	jd6ejfe dAedBdC��Z#ej"e#�e$e_%ej&ej'�edD��e_(dS(Ei����NiicCs|S(N((tx((sF/usr/lib/python2.7/site-packages/google/protobuf/unittest_arena_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sF/usr/lib/python2.7/site-packages/google/protobuf/unittest_arena_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_no_arena_import_pb2tnames$google/protobuf/unittest_arena.prototpackagetproto2_arena_unittesttsyntaxtproto2t
serialized_pbsC
$google/protobuf/unittest_arena.protoproto2_arena_unittest.google/protobuf/unittest_no_arena_import.proto"

NestedMessage	
d ("�
ArenaMessageE
repeated_nested_message (2$.proto2_arena_unittest.NestedMessage[
 repeated_import_no_arena_message (21.proto2_arena_unittest.ImportNoArenaNestedMessageB�tdependenciest
NestedMessaget	full_names#proto2_arena_unittest.NestedMessagetfilenametfiletcontaining_typetfieldstds%proto2_arena_unittest.NestedMessage.dtindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiotserialized_endi�tArenaMessages"proto2_arena_unittest.ArenaMessagetrepeated_nested_messages:proto2_arena_unittest.ArenaMessage.repeated_nested_messageii
t repeated_import_no_arena_messagesCproto2_arena_unittest.ArenaMessage.repeated_import_no_arena_messageii�i>t
DESCRIPTORt
__module__s"google.protobuf.unittest_arena_pb2s�()tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbR
t8google_dot_protobuf_dot_unittest__no__arena__import__pb2tFileDescriptorR0t
DescriptortNonetFieldDescriptortFalset_NESTEDMESSAGEt
_ARENAMESSAGEtfields_by_nameR t_IMPORTNOARENANESTEDMESSAGEtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR-tTruethas_optionst
_ParseOptionstFileOptionst_options(((sF/usr/lib/python2.7/site-packages/google/protobuf/unittest_arena_pb2.pyt<module>s�%								




	PK�\��6-protobuf/unittest_no_generic_services_pb2.pycnu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�Zejdd
ddddded��Zejdddddddedejdddddddddd�gd dddd!d"d#d$�	Zeje�eje�ZdZd%Zejdd&dd'dddd%dd(d)dd*dd+ed,dd-dd.dd dd/ed0dddde�Zej dd1dd2ddded dd3ejdd4dd5dddddd(d)dd*dd+ed,dd-dd.dd dd/ed0dddde�gd6gd7gd8gddd9eddd:dLgd<gd!d=d#d>�Z!e!ej"d1<eej#d<eej$d&<ej%e�ej&d1e	j'fe(d?e!d@dA��Z)ej*e)�e)j+e�ej,ddBddCdeddddd!dDd#dEdFej-ddGddHdddIddJe!dKe!dd�g�Z.ej/e.�e.ej0dB<dS(Mi����NiicCs|S(N((tx((sT/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_generic_services_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sT/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_generic_services_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames2google/protobuf/unittest_no_generic_services.prototpackages(google.protobuf.no_generic_services_testtsyntaxtproto2t
serialized_pbsm
2google/protobuf/unittest_no_generic_services.proto(google.protobuf.no_generic_services_test"#
TestMessage	
a (*	�����*
TestEnum
FOO2�
TestServices
Foo5.google.protobuf.no_generic_services_test.TestMessage5.google.protobuf.no_generic_services_test.TestMessage:N
test_extension5.google.protobuf.no_generic_services_test.TestMessage� (tTestEnumt	full_names1google.protobuf.no_generic_services_test.TestEnumtfilenametfiletvaluestFOOtindextnumberitoptionsttypetcontaining_typetserialized_starti�tserialized_endi�i�ttest_extensions7google.protobuf.no_generic_services_test.test_extensionitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetTestMessages4google.protobuf.no_generic_services_test.TestMessagetfieldstas6google.protobuf.no_generic_services_test.TestMessage.at
extensionstnested_typest
enum_typest
is_extendabletextension_rangesi toneofsi`i�t
DESCRIPTORt
__module__s0google.protobuf.unittest_no_generic_services_pb2tTestServices4google.protobuf.no_generic_services_test.TestServicei�itmethodstFoos8google.protobuf.no_generic_services_test.TestService.Footcontaining_servicet
input_typetoutput_type(i�i (1tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbtFileDescriptorR/tEnumDescriptortNonetEnumValueDescriptort	_TESTENUMtRegisterEnumDescriptortEnumTypeWrapperRRtTEST_EXTENSION_FIELD_NUMBERtFieldDescriptortFalsetTrueRt
Descriptort_TESTMESSAGEtmessage_types_by_nametenum_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR&tRegisterMessagetRegisterExtensiontServiceDescriptortMethodDescriptort_TESTSERVICEtRegisterServiceDescriptortservices_by_name(((sT/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_generic_services_pb2.pyt<module>s�%				
					





		
PK�\��K��%�%protobuf/service.pyonu�[����
���hc@shdZdZdefd��YZdefd��YZdefd��YZdefd	��YZd
S(seDEPRECATED:  Declares the RPC service interfaces.

This module declares the abstract interfaces underlying proto2 RPC
services.  These are intended to be independent of any particular RPC
implementation, so that proto2 services can be used on top of a variety
of implementations.  Starting with version 2.3.0, RPC implementations should
not try to build on these, but should instead provide code generator plugins
which generate code specific to the particular RPC implementation.  This way
the generated code can be more appropriate for the implementation in use
and can avoid unnecessary layers of indirection.
spetar@google.com (Petar Petrov)tRpcExceptioncBseZdZRS(s4Exception raised on failed blocking RPC method call.(t__name__t
__module__t__doc__(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyR.stServicecBs2eZdZd�Zd�Zd�Zd�ZRS(sjAbstract base interface for protocol-buffer-based RPC services.

  Services themselves are abstract classes (implemented either by servers or as
  stubs), but they subclass this base interface. The methods of this
  interface can be used to call the methods of the service without knowing
  its exact type at compile time (analogous to the Message interface).
  cCs
t�dS(s$Retrieves this service's descriptor.N(tNotImplementedError(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt
GetDescriptor=scCs
t�dS(s>Calls a method of the service specified by method_descriptor.

    If "done" is None then the call is blocking and the response
    message will be returned directly.  Otherwise the call is asynchronous
    and "done" will later be called with the response value.

    In the blocking case, RpcException will be raised on error.

    Preconditions:
    * method_descriptor.service == GetDescriptor
    * request is of the exact same classes as returned by
      GetRequestClass(method).
    * After the call has started, the request must not be modified.
    * "rpc_controller" is of the correct type for the RPC implementation being
      used by this Service.  For stubs, the "correct type" depends on the
      RpcChannel which the stub is using.

    Postconditions:
    * "done" will be called when the method is complete.  This may be
      before CallMethod() returns or it may be at some point in the future.
    * If the RPC failed, the response value passed to "done" will be None.
      Further details about the failure can be found by querying the
      RpcController.
    N(R(tselftmethod_descriptortrpc_controllertrequesttdone((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt
CallMethodAscCs
t�dS(s�Returns the class of the request message for the specified method.

    CallMethod() requires that the request is of a particular subclass of
    Message. GetRequestClass() gets the default instance of this required
    type.

    Example:
      method = service.GetDescriptor().FindMethodByName("Foo")
      request = stub.GetRequestClass(method)()
      request.ParseFromString(input)
      service.CallMethod(method, request, callback)
    N(R(RR((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytGetRequestClass]s
cCs
t�dS(sReturns the class of the response message for the specified method.

    This method isn't really needed, as the RpcChannel's CallMethod constructs
    the response protocol message. It's provided anyway in case it is useful
    for the caller to know the response type in advance.
    N(R(RR((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytGetResponseClassls(RRRRRR
R(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyR3s
			t
RpcControllercBsMeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(s�An RpcController mediates a single method call.

  The primary purpose of the controller is to provide a way to manipulate
  settings specific to the RPC implementation and to find out about RPC-level
  errors. The methods provided by the RpcController interface are intended
  to be a "least common denominator" set of features which we expect all
  implementations to support.  Specific implementations may provide more
  advanced features (e.g. deadline propagation).
  cCs
t�dS(s�Resets the RpcController to its initial state.

    After the RpcController has been reset, it may be reused in
    a new call. Must not be called while an RPC is in progress.
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytReset�scCs
t�dS(s>Returns true if the call failed.

    After a call has finished, returns true if the call failed.  The possible
    reasons for failure depend on the RPC implementation.  Failed() must not
    be called before a call has finished.  If Failed() returns true, the
    contents of the response message are undefined.
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytFailed�scCs
t�dS(sEIf Failed is true, returns a human-readable description of the error.N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt	ErrorText�scCs
t�dS(sInitiate cancellation.

    Advises the RPC system that the caller desires that the RPC call be
    canceled.  The RPC system may cancel it immediately, may wait awhile and
    then cancel it, or may not even cancel the call at all.  If the call is
    canceled, the "done" callback will still be called and the RpcController
    will indicate that the call failed at that time.
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytStartCancel�s	cCs
t�dS(sWSets a failure reason.

    Causes Failed() to return true on the client side.  "reason" will be
    incorporated into the message returned by ErrorText().  If you find
    you need to return machine-readable information about failures, you
    should incorporate it into your response protocol buffer and should
    NOT call SetFailed().
    N(R(Rtreason((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt	SetFailed�s	cCs
t�dS(s�Checks if the client cancelled the RPC.

    If true, indicates that the client canceled the RPC, so the server may
    as well give up on replying to it.  The server should still call the
    final "done" callback.
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt
IsCanceled�scCs
t�dS(s�Sets a callback to invoke on cancel.

    Asks that the given callback be called when the RPC is canceled.  The
    callback will always be called exactly once.  If the RPC completes without
    being canceled, the callback will be called after completion.  If the RPC
    has already been canceled when NotifyOnCancel() is called, the callback
    will be called immediately.

    NotifyOnCancel() must be called no more than once per request.
    N(R(Rtcallback((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytNotifyOnCancel�s(
RRRRRRRRRR(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyRvs
		
		
			t
RpcChannelcBseZdZd�ZRS(s4Abstract interface for an RPC channel.

  An RpcChannel represents a communication line to a service which can be used
  to call that service's methods.  The service may be running on another
  machine. Normally, you should not use an RpcChannel directly, but instead
  construct a stub {@link Service} wrapping it.  Example:

  Example:
    RpcChannel channel = rpcImpl.Channel("remotehost.example.com:1234")
    RpcController controller = rpcImpl.Controller()
    MyService service = MyService_Stub(channel)
    service.MyMethod(controller, request, callback)
  cCs
t�dS(sbCalls the method identified by the descriptor.

    Call the given method of the remote service.  The signature of this
    procedure looks the same as Service.CallMethod(), but the requirements
    are less strict in one important way:  the request object doesn't have to
    be of any specific class as long as its descriptor is method.input_type.
    N(R(RRR	R
tresponse_classR((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyR�s	(RRRR(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyR�sN(Rt
__author__t	ExceptionRtobjectRRR(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt<module>)s
CSPK�\i�MMprotobuf/message_factory.pyonu�[����
���hc@shdZdZddlmZddlmZddlmZdefd��YZe�Zd�Z	d	S(
soProvides a factory class for generating dynamic messages.

The easiest way to use this class is if you have access to the FileDescriptor
protos containing the messages you want to create you can just do the following:

message_classes = message_factory.GetMessages(iterable_of_file_descriptors)
my_proto_instance = message_classes['some.proto.package.MessageName']()
s"matthewtoia@google.com (Matt Toia)i����(tdescriptor_pool(tmessage(t
reflectiontMessageFactorycBs,eZdZdd�Zd�Zd�ZRS(s@Factory for creating Proto2 messages from descriptors in a pool.cCs"|ptj�|_i|_dS(sInitializes a new factory.N(RtDescriptorPooltpoolt_classes(tselfR((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyt__init__2scCs	||jkr�|j}ttkr<|jjdd�}ntj|tjfi|d6dd6�}||j|<x-|j
D]"}|jr||j|j�q|q|WxY|j
jD]H}|j|jkr�|j|j�n|j|j}|j|�q�Wn|j|S(sDBuilds a proto2 message class based on the passed in descriptor.

    Passing a descriptor with a fully qualified name matching a previous
    invocation will cause the same class to be returned.

    Args:
      descriptor: The descriptor to build from.

    Returns:
      A class describing the passed in descriptor.
    tasciitignoret
DESCRIPTORt
__module__N(RtnametstrtbytestencodeRtGeneratedProtocolMessageTypeRtMessagetNonetfieldstmessage_typetGetPrototypeRt
extensionstcontaining_typetRegisterExtension(Rt
descriptortdescriptor_nametresult_classtfieldt	extensiontextended_class((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyR9s$		
	cCs�i}x�|D]�}|jj|�}x-|jj�D]}|j|�||j<q5WxY|jj�D]H}|j|jkr�|j|j�n|j|j}|j	|�qeWq
W|S(s�Gets all the messages from a specified file.

    This will find and resolve dependencies, failing if the descriptor
    pool cannot satisfy them.

    Args:
      files: The file names to extract messages from.

    Returns:
      A dictionary mapping proto names to the message classes. This will include
      any dependent messages as well as any messages defined in the same file as
      a specified message.
    (
RtFindFileByNametmessage_types_by_nametvaluesRt	full_nametextensions_by_nameRRR(Rtfilestresultt	file_namet	file_desctdescRR((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pytGetMessagesYs
N(t__name__Rt__doc__RRRR*(((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyR/s	 csfd�|D����fd��x�rB��j�d�q%Wtjg|D]}|j^qP�S(s^Builds a dictionary of all the messages available in a set of files.

  Args:
    file_protos: Iterable of FileDescriptorProto to build messages out of.

  Returns:
    A dictionary mapping proto names to the message classes. This will include
    any dependent messages as well as any messages defined in the same file as
    a specified message.
  cSsi|]}||j�qS((R
(t.0t
file_proto((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pys
<dictcomp>�s	csJx3|jD](}|�kr
��j|��q
q
Wtjj|�dS(N(t
dependencytpopt_FACTORYRtAdd(R.R/(t_AddFiletfile_by_name(sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyR3�si(tpopitemR1R*R
(tfile_protosR.((R3R4sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyR*�s

	N(
R,t
__author__tgoogle.protobufRRRtobjectRR1R*(((sC/usr/lib/python2.7/site-packages/google/protobuf/message_factory.pyt<module>&sO	PK�\ZV�))protobuf/duration_pb2.pycnu�[����
���hc.@stddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejddddddddddd d!d"dd#ed$dd%dd&dddd'ed(dd)dde�ejdd*dd+dddd!dd,d dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd-gd.gd/gd)dd0eddd1gd2gd3d4d5d6�Zeejd<eje�e	jdejfed7ed8d9��Zeje�ee_ejej �ed:��e_!dS(;i����NiicCs|S(N((tx((s@/usr/lib/python2.7/site-packages/google/protobuf/duration_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s@/usr/lib/python2.7/site-packages/google/protobuf/duration_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/duration.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/duration.protogoogle.protobuf"*
Duration
seconds (
nanos (B|
com.google.protobufB
DurationProtoPZ*github.com/golang/protobuf/ptypes/duration��GPB�Google.Protobuf.WellKnownTypesbproto3tDurationt	full_namesgoogle.protobuf.Durationtfilenametfiletcontaining_typetfieldstsecondss google.protobuf.Duration.secondstindextnumberittypetcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionstnanossgoogle.protobuf.Duration.nanosit
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti3tserialized_endi]t
DESCRIPTORt
__module__sgoogle.protobuf.duration_pb2s|
com.google.protobufB
DurationProtoPZ*github.com/golang/protobuf/ptypes/duration��GPB�Google.Protobuf.WellKnownTypes("tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR+t
DescriptortNonetFieldDescriptortFalset	_DURATIONtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((s@/usr/lib/python2.7/site-packages/google/protobuf/duration_pb2.pyt<module>sd%					


	PK�\�KI�
�
protobuf/field_mask_pb2.pyonu�[����
���hc-@sddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!d d"dd#ed$gd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d1d2d3�Zeejd<eje�e	jdejfed4ed5d6��Zeje�ee_ejej �ed7��e_!dS(8i����NiicCs|S(N((tx((sB/usr/lib/python2.7/site-packages/google/protobuf/field_mask_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sB/usr/lib/python2.7/site-packages/google/protobuf/field_mask_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames google/protobuf/field_mask.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
 google/protobuf/field_mask.protogoogle.protobuf"
	FieldMask
paths (	B�
com.google.protobufBFieldMaskProtoPZ9google.golang.org/genproto/protobuf/field_mask;field_mask�GPB�Google.Protobuf.WellKnownTypesbproto3t	FieldMaskt	full_namesgoogle.protobuf.FieldMasktfilenametfiletcontaining_typetfieldstpathssgoogle.protobuf.FieldMask.pathstindextnumberittypei	tcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti5tserialized_endiOt
DESCRIPTORt
__module__sgoogle.protobuf.field_mask_pb2s�
com.google.protobufBFieldMaskProtoPZ9google.golang.org/genproto/protobuf/field_mask;field_mask�GPB�Google.Protobuf.WellKnownTypes("tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR*t
DescriptortNonetFieldDescriptortFalset
_FIELDMASKtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((sB/usr/lib/python2.7/site-packages/google/protobuf/field_mask_pb2.pyt<module>sV%				


	PK�\�Ҁ

protobuf/text_encoding.pyonu�[����
���hc@s�dZddlZddlZgedd�D]Zee�^q.Zded<ded<d	ed
<ded<d
ed<ded<gedd�D]Zde^q�gedd�D]Zee�^q�gedd�D]Zde^q�Zded<ded<d	ed
<ded<d
ed<ded<d�Zej	d�Z
gedd�D]Zee�^qVgedd�D]Zde^q{Zd�ZdS(sEncoding related utilities.i����Niis\ti	s\ni
s\ri
s\'i's\"i"s\\i\i s\%03oicsat|tj�rtnd��|rDdj�fd�|D��Sdj�fd�|D��S(s-Escape a bytes string for use in an ascii protocol buffer.

  text.encode('string_escape') does not seem to satisfy our needs as it
  encodes unprintable characters using two-digit hex escapes whereas our
  C++ unescaping function allows hex escapes to be any length.  So,
  "1".encode('string_escape') ends up being "\x011", which will be
  decoded in C++ as a single-character string with char code 0x11.

  Args:
    text: A byte string to be escaped
    as_utf8: Specifies if result should be returned in UTF-8 encoding
  Returns:
    Escaped string
  cSs|S(N((tx((sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pyt<lambda>LtRc3s|]}t�|�VqdS(N(t_cescape_utf8_to_str(t.0tc(tOrd(sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pys	<genexpr>Nsc3s|]}t�|�VqdS(N(t_cescape_byte_to_str(RR(R(sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pys	<genexpr>Os(t
isinstancetsixtstring_typestordtjoin(ttexttas_utf8((RsA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pytCEscape;s!s"(\\+)x([0-9a-fA-F])(?![0-9a-fA-F])cCsld�}tj||�}ttkr4|jd�Sdjd�|D��}|jd�jd�jd�S(sDUnescape a text string with C-style escape sequences to UTF-8 bytes.cSsDt|jd��d@r7|jd�d|jd�S|jd�S(Nitx0ii(tlentgroup(tm((sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pyt
ReplaceHexZst
string_escapeRcss|]}tt|�VqdS(N(t_cescape_highbit_to_strR(RR((sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pys	<genexpr>gstasciitunicode_escapetraw_unicode_escape(t_CUNESCAPE_HEXtsubtstrtbytestdecodeRtencode(R
Rtresult((sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pyt	CUnescapeWs		
	(
t__doc__treR	trangetitchrRRRtcompileRRR!(((sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pyt<module>s,(





I'





	%'PK�\c�+z��(protobuf/unittest_no_arena_import_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest_no_arena_import.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest_no_arena_import.proto',
  package='proto2_arena_unittest',
  syntax='proto2',
  serialized_pb=_b('\n.google/protobuf/unittest_no_arena_import.proto\x12\x15proto2_arena_unittest\"\'\n\x1aImportNoArenaNestedMessage\x12\t\n\x01\x64\x18\x01 \x01(\x05')
)




_IMPORTNOARENANESTEDMESSAGE = _descriptor.Descriptor(
  name='ImportNoArenaNestedMessage',
  full_name='proto2_arena_unittest.ImportNoArenaNestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='d', full_name='proto2_arena_unittest.ImportNoArenaNestedMessage.d', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=73,
  serialized_end=112,
)

DESCRIPTOR.message_types_by_name['ImportNoArenaNestedMessage'] = _IMPORTNOARENANESTEDMESSAGE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ImportNoArenaNestedMessage = _reflection.GeneratedProtocolMessageType('ImportNoArenaNestedMessage', (_message.Message,), dict(
  DESCRIPTOR = _IMPORTNOARENANESTEDMESSAGE,
  __module__ = 'google.protobuf.unittest_no_arena_import_pb2'
  # @@protoc_insertion_point(class_scope:proto2_arena_unittest.ImportNoArenaNestedMessage)
  ))
_sym_db.RegisterMessage(ImportNoArenaNestedMessage)


# @@protoc_insertion_point(module_scope)
PK�\A�i[[ protobuf/compiler/plugin_pb2.pycnu�[����
���hc0@s�	ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zdd
lmZejddd
dddded�dejg�Zejdddddddedddejddddddddd d!d"dd#dd$ed%dd&dd'dddd(ed)dd*dde�ejdd+dd,dddd-d d!d"dd#dd$ed%dd&dd'dddd(ed)dd*dde�ejdd.dd/dd-ddd d!d"dd#dd$ed%dd&dd'dddd(ed)dd*dde�ejdd0dd1dddd2d d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�gd6gd7gd8gd*dd9eddd:gd;gd<d=d>d?�Zejdd@ddAdddedddejddBddCddddd d3d"d3d#dd$ed%gd&dd'dddd(ed)dd*dde�ejddDddEdddd-d d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�ejddFddGdd-ddHd dId"dJd#dd$ed%gd&dd'dddd(ed)dd*dde�ejddKddLddddd dId"dJd#dd$ed%dd&dd'dddd(ed)dd*dde�gd6gd7gd8gd*dd9eddd:gd;gd<dMd>dN�ZejddOddPdddedddejddddQddddd d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�ejddRddSdddd-d d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�ejddTddUdd-ddHd d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�gd6gd7gd8gd*dd9eddd:gd;gd<dVd>dW�ZejddXddYdddedddejddZdd[ddddd d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�ejdddd\ddddHd dId"dJd#dd$ed%gd&dd'dddd(ed)dd*dde�gd6gd7egd8gd*dd9eddd:gd;gd<d]d>dW�ZejejdF_eejdK_ee_eejd_eejd<eejd@<eejdX<ej e�e	j!dej"fe#d^ed_d`��Z$ej%e$�e	j!d@ej"fe#d^ed_d`��Z&ej%e&�e	j!dXej"fe#dOe	j!dOej"fe#d^ed_d`��d^ed_d`��Z'ej%e'�ej%e'j(�e)e_*ej+ej,�eda��e_-dS(bi����NiicCs|S(N((tx((sG/usr/lib/python2.7/site-packages/google/protobuf/compiler/plugin_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sG/usr/lib/python2.7/site-packages/google/protobuf/compiler/plugin_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames%google/protobuf/compiler/plugin.prototpackagesgoogle.protobuf.compilertsyntaxtproto2t
serialized_pbs~
%google/protobuf/compiler/plugin.protogoogle.protobuf.compiler google/protobuf/descriptor.proto"F
Version
major (
minor (
patch (
suffix (	"�
CodeGeneratorRequest
file_to_generate (	
	parameter (	8

proto_file (2$.google.protobuf.FileDescriptorProto;
compiler_version (2!.google.protobuf.compiler.Version"�
CodeGeneratorResponse
error (	B
file (24.google.protobuf.compiler.CodeGeneratorResponse.File>
File
name (	
insertion_point (	
content (	Bg
com.google.protobuf.compilerBPluginProtosZ9github.com/golang/protobuf/protoc-gen-go/plugin;plugin_gotdependenciestVersiont	full_names google.protobuf.compiler.Versiontfilenametfiletcontaining_typetfieldstmajors&google.protobuf.compiler.Version.majortindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionstminors&google.protobuf.compiler.Version.minoritpatchs&google.protobuf.compiler.Version.patchtsuffixs'google.protobuf.compiler.Version.suffixii	Rsutf-8t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startietserialized_endi�tCodeGeneratorRequests-google.protobuf.compiler.CodeGeneratorRequesttfile_to_generates>google.protobuf.compiler.CodeGeneratorRequest.file_to_generatet	parameters7google.protobuf.compiler.CodeGeneratorRequest.parametert
proto_files8google.protobuf.compiler.CodeGeneratorRequest.proto_fileiii
tcompiler_versions>google.protobuf.compiler.CodeGeneratorRequest.compiler_versioni�ihtFiles3google.protobuf.compiler.CodeGeneratorResponse.Files8google.protobuf.compiler.CodeGeneratorResponse.File.nametinsertion_pointsCgoogle.protobuf.compiler.CodeGeneratorResponse.File.insertion_pointtcontents;google.protobuf.compiler.CodeGeneratorResponse.File.contenti�itCodeGeneratorResponses.google.protobuf.compiler.CodeGeneratorResponseterrors4google.protobuf.compiler.CodeGeneratorResponse.errors3google.protobuf.compiler.CodeGeneratorResponse.fileikt
DESCRIPTORt
__module__s#google.protobuf.compiler.plugin_pb2sg
com.google.protobuf.compilerBPluginProtosZ9github.com/golang/protobuf/protoc-gen-go/plugin;plugin_go(.tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbt'google_dot_protobuf_dot_descriptor__pb2tFileDescriptorR8t
DescriptortNonetFieldDescriptortFalsetdecodet_VERSIONt_CODEGENERATORREQUESTt_CODEGENERATORRESPONSE_FILEt_CODEGENERATORRESPONSEt_FILEDESCRIPTORPROTOtfields_by_nameRRtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR.R6R3tTruethas_optionst
_ParseOptionstFileOptionst_options(((sG/usr/lib/python2.7/site-packages/google/protobuf/compiler/plugin_pb2.pyt<module>s�%																								






	PK�\protobuf/compiler/__init__.pynu�[���PK�\O����)�)protobuf/compiler/plugin_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/compiler/plugin.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/compiler/plugin.proto',
  package='google.protobuf.compiler',
  syntax='proto2',
  serialized_pb=_b('\n%google/protobuf/compiler/plugin.proto\x12\x18google.protobuf.compiler\x1a google/protobuf/descriptor.proto\"F\n\x07Version\x12\r\n\x05major\x18\x01 \x01(\x05\x12\r\n\x05minor\x18\x02 \x01(\x05\x12\r\n\x05patch\x18\x03 \x01(\x05\x12\x0e\n\x06suffix\x18\x04 \x01(\t\"\xba\x01\n\x14\x43odeGeneratorRequest\x12\x18\n\x10\x66ile_to_generate\x18\x01 \x03(\t\x12\x11\n\tparameter\x18\x02 \x01(\t\x12\x38\n\nproto_file\x18\x0f \x03(\x0b\x32$.google.protobuf.FileDescriptorProto\x12;\n\x10\x63ompiler_version\x18\x03 \x01(\x0b\x32!.google.protobuf.compiler.Version\"\xaa\x01\n\x15\x43odeGeneratorResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\x12\x42\n\x04\x66ile\x18\x0f \x03(\x0b\x32\x34.google.protobuf.compiler.CodeGeneratorResponse.File\x1a>\n\x04\x46ile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0finsertion_point\x18\x02 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x0f \x01(\tBg\n\x1c\x63om.google.protobuf.compilerB\x0cPluginProtosZ9github.com/golang/protobuf/protoc-gen-go/plugin;plugin_go')
  ,
  dependencies=[google_dot_protobuf_dot_descriptor__pb2.DESCRIPTOR,])




_VERSION = _descriptor.Descriptor(
  name='Version',
  full_name='google.protobuf.compiler.Version',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='major', full_name='google.protobuf.compiler.Version.major', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='minor', full_name='google.protobuf.compiler.Version.minor', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='patch', full_name='google.protobuf.compiler.Version.patch', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='suffix', full_name='google.protobuf.compiler.Version.suffix', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=101,
  serialized_end=171,
)


_CODEGENERATORREQUEST = _descriptor.Descriptor(
  name='CodeGeneratorRequest',
  full_name='google.protobuf.compiler.CodeGeneratorRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='file_to_generate', full_name='google.protobuf.compiler.CodeGeneratorRequest.file_to_generate', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='parameter', full_name='google.protobuf.compiler.CodeGeneratorRequest.parameter', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='proto_file', full_name='google.protobuf.compiler.CodeGeneratorRequest.proto_file', index=2,
      number=15, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='compiler_version', full_name='google.protobuf.compiler.CodeGeneratorRequest.compiler_version', index=3,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=174,
  serialized_end=360,
)


_CODEGENERATORRESPONSE_FILE = _descriptor.Descriptor(
  name='File',
  full_name='google.protobuf.compiler.CodeGeneratorResponse.File',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.compiler.CodeGeneratorResponse.File.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='insertion_point', full_name='google.protobuf.compiler.CodeGeneratorResponse.File.insertion_point', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='content', full_name='google.protobuf.compiler.CodeGeneratorResponse.File.content', index=2,
      number=15, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=471,
  serialized_end=533,
)

_CODEGENERATORRESPONSE = _descriptor.Descriptor(
  name='CodeGeneratorResponse',
  full_name='google.protobuf.compiler.CodeGeneratorResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='error', full_name='google.protobuf.compiler.CodeGeneratorResponse.error', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='file', full_name='google.protobuf.compiler.CodeGeneratorResponse.file', index=1,
      number=15, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_CODEGENERATORRESPONSE_FILE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=363,
  serialized_end=533,
)

_CODEGENERATORREQUEST.fields_by_name['proto_file'].message_type = google_dot_protobuf_dot_descriptor__pb2._FILEDESCRIPTORPROTO
_CODEGENERATORREQUEST.fields_by_name['compiler_version'].message_type = _VERSION
_CODEGENERATORRESPONSE_FILE.containing_type = _CODEGENERATORRESPONSE
_CODEGENERATORRESPONSE.fields_by_name['file'].message_type = _CODEGENERATORRESPONSE_FILE
DESCRIPTOR.message_types_by_name['Version'] = _VERSION
DESCRIPTOR.message_types_by_name['CodeGeneratorRequest'] = _CODEGENERATORREQUEST
DESCRIPTOR.message_types_by_name['CodeGeneratorResponse'] = _CODEGENERATORRESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Version = _reflection.GeneratedProtocolMessageType('Version', (_message.Message,), dict(
  DESCRIPTOR = _VERSION,
  __module__ = 'google.protobuf.compiler.plugin_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.compiler.Version)
  ))
_sym_db.RegisterMessage(Version)

CodeGeneratorRequest = _reflection.GeneratedProtocolMessageType('CodeGeneratorRequest', (_message.Message,), dict(
  DESCRIPTOR = _CODEGENERATORREQUEST,
  __module__ = 'google.protobuf.compiler.plugin_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorRequest)
  ))
_sym_db.RegisterMessage(CodeGeneratorRequest)

CodeGeneratorResponse = _reflection.GeneratedProtocolMessageType('CodeGeneratorResponse', (_message.Message,), dict(

  File = _reflection.GeneratedProtocolMessageType('File', (_message.Message,), dict(
    DESCRIPTOR = _CODEGENERATORRESPONSE_FILE,
    __module__ = 'google.protobuf.compiler.plugin_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorResponse.File)
    ))
  ,
  DESCRIPTOR = _CODEGENERATORRESPONSE,
  __module__ = 'google.protobuf.compiler.plugin_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorResponse)
  ))
_sym_db.RegisterMessage(CodeGeneratorResponse)
_sym_db.RegisterMessage(CodeGeneratorResponse.File)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\034com.google.protobuf.compilerB\014PluginProtosZ9github.com/golang/protobuf/protoc-gen-go/plugin;plugin_go'))
# @@protoc_insertion_point(module_scope)
PK�\A�i[[ protobuf/compiler/plugin_pb2.pyonu�[����
���hc0@s�	ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zdd
lmZejddd
dddded�dejg�Zejdddddddedddejddddddddd d!d"dd#dd$ed%dd&dd'dddd(ed)dd*dde�ejdd+dd,dddd-d d!d"dd#dd$ed%dd&dd'dddd(ed)dd*dde�ejdd.dd/dd-ddd d!d"dd#dd$ed%dd&dd'dddd(ed)dd*dde�ejdd0dd1dddd2d d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�gd6gd7gd8gd*dd9eddd:gd;gd<d=d>d?�Zejdd@ddAdddedddejddBddCddddd d3d"d3d#dd$ed%gd&dd'dddd(ed)dd*dde�ejddDddEdddd-d d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�ejddFddGdd-ddHd dId"dJd#dd$ed%gd&dd'dddd(ed)dd*dde�ejddKddLddddd dId"dJd#dd$ed%dd&dd'dddd(ed)dd*dde�gd6gd7gd8gd*dd9eddd:gd;gd<dMd>dN�ZejddOddPdddedddejddddQddddd d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�ejddRddSdddd-d d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�ejddTddUdd-ddHd d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�gd6gd7gd8gd*dd9eddd:gd;gd<dVd>dW�ZejddXddYdddedddejddZdd[ddddd d3d"d3d#dd$ed%ed4�jd5�d&dd'dddd(ed)dd*dde�ejdddd\ddddHd dId"dJd#dd$ed%gd&dd'dddd(ed)dd*dde�gd6gd7egd8gd*dd9eddd:gd;gd<d]d>dW�ZejejdF_eejdK_ee_eejd_eejd<eejd@<eejdX<ej e�e	j!dej"fe#d^ed_d`��Z$ej%e$�e	j!d@ej"fe#d^ed_d`��Z&ej%e&�e	j!dXej"fe#dOe	j!dOej"fe#d^ed_d`��d^ed_d`��Z'ej%e'�ej%e'j(�e)e_*ej+ej,�eda��e_-dS(bi����NiicCs|S(N((tx((sG/usr/lib/python2.7/site-packages/google/protobuf/compiler/plugin_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sG/usr/lib/python2.7/site-packages/google/protobuf/compiler/plugin_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames%google/protobuf/compiler/plugin.prototpackagesgoogle.protobuf.compilertsyntaxtproto2t
serialized_pbs~
%google/protobuf/compiler/plugin.protogoogle.protobuf.compiler google/protobuf/descriptor.proto"F
Version
major (
minor (
patch (
suffix (	"�
CodeGeneratorRequest
file_to_generate (	
	parameter (	8

proto_file (2$.google.protobuf.FileDescriptorProto;
compiler_version (2!.google.protobuf.compiler.Version"�
CodeGeneratorResponse
error (	B
file (24.google.protobuf.compiler.CodeGeneratorResponse.File>
File
name (	
insertion_point (	
content (	Bg
com.google.protobuf.compilerBPluginProtosZ9github.com/golang/protobuf/protoc-gen-go/plugin;plugin_gotdependenciestVersiont	full_names google.protobuf.compiler.Versiontfilenametfiletcontaining_typetfieldstmajors&google.protobuf.compiler.Version.majortindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionstminors&google.protobuf.compiler.Version.minoritpatchs&google.protobuf.compiler.Version.patchtsuffixs'google.protobuf.compiler.Version.suffixii	Rsutf-8t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startietserialized_endi�tCodeGeneratorRequests-google.protobuf.compiler.CodeGeneratorRequesttfile_to_generates>google.protobuf.compiler.CodeGeneratorRequest.file_to_generatet	parameters7google.protobuf.compiler.CodeGeneratorRequest.parametert
proto_files8google.protobuf.compiler.CodeGeneratorRequest.proto_fileiii
tcompiler_versions>google.protobuf.compiler.CodeGeneratorRequest.compiler_versioni�ihtFiles3google.protobuf.compiler.CodeGeneratorResponse.Files8google.protobuf.compiler.CodeGeneratorResponse.File.nametinsertion_pointsCgoogle.protobuf.compiler.CodeGeneratorResponse.File.insertion_pointtcontents;google.protobuf.compiler.CodeGeneratorResponse.File.contenti�itCodeGeneratorResponses.google.protobuf.compiler.CodeGeneratorResponseterrors4google.protobuf.compiler.CodeGeneratorResponse.errors3google.protobuf.compiler.CodeGeneratorResponse.fileikt
DESCRIPTORt
__module__s#google.protobuf.compiler.plugin_pb2sg
com.google.protobuf.compilerBPluginProtosZ9github.com/golang/protobuf/protoc-gen-go/plugin;plugin_go(.tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbt'google_dot_protobuf_dot_descriptor__pb2tFileDescriptorR8t
DescriptortNonetFieldDescriptortFalsetdecodet_VERSIONt_CODEGENERATORREQUESTt_CODEGENERATORRESPONSE_FILEt_CODEGENERATORRESPONSEt_FILEDESCRIPTORPROTOtfields_by_nameRRtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR.R6R3tTruethas_optionst
_ParseOptionstFileOptionst_options(((sG/usr/lib/python2.7/site-packages/google/protobuf/compiler/plugin_pb2.pyt<module>s�%																								






	PK�\�<����protobuf/compiler/__init__.pyonu�[����
���hc@sdS(N((((sE/usr/lib/python2.7/site-packages/google/protobuf/compiler/__init__.pyt<module>tPK�\�<����protobuf/compiler/__init__.pycnu�[����
���hc@sdS(N((((sE/usr/lib/python2.7/site-packages/google/protobuf/compiler/__init__.pyt<module>tPK�\�I{3,3,protobuf/service_reflection.pycnu�[����
���hc@shdZdZdefd��YZdefd��YZdefd��YZdefd	��YZd
S(s*Contains metaclasses used to create protocol service and service stub
classes from ServiceDescriptor objects at runtime.

The GeneratedServiceType and GeneratedServiceStubType metaclasses are used to
inject all useful functionality into the classes output by the protocol
compiler at compile-time.
spetar@google.com (Petar Petrov)tGeneratedServiceTypecBseZdZdZd�ZRS(s�Metaclass for service classes created at runtime from ServiceDescriptors.

  Implementations for all methods described in the Service class are added here
  by this class. We also create properties to allow getting/setting all fields
  in the protocol message.

  The protocol compiler currently uses this metaclass to create protocol service
  classes at runtime. Clients can also manually create their own classes at
  runtime, as in this example:

  mydescriptor = ServiceDescriptor(.....)
  class MyProtoService(service.Service):
    __metaclass__ = GeneratedServiceType
    DESCRIPTOR = mydescriptor
  myservice_instance = MyProtoService()
  ...
  t
DESCRIPTORcCs=tj|krdS|tj}t|�}|j|�dS(s�Creates a message service class.

    Args:
      name: Name of the class (ignored, but required by the metaclass
        protocol).
      bases: Base classes of the class being constructed.
      dictionary: The class dictionary of the class being constructed.
        dictionary[_DESCRIPTOR_KEY] must contain a ServiceDescriptor object
        describing this protocol service type.
    N(Rt_DESCRIPTOR_KEYt_ServiceBuildertBuildService(tclstnametbasest
dictionaryt
descriptortservice_builder((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyt__init__@s


(t__name__t
__module__t__doc__RR(((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR*stGeneratedServiceStubTypecBseZdZdZd�ZRS(s�Metaclass for service stubs created at runtime from ServiceDescriptors.

  This class has similar responsibilities as GeneratedServiceType, except that
  it creates the service stub classes.
  RcCsYtt|�j|||�tj|kr/dS|tj}t|�}|j|�dS(s`Creates a message service stub class.

    Args:
      name: Name of the class (ignored, here).
      bases: Base classes of the class being constructed.
      dictionary: The class dictionary of the class being constructed.
        dictionary[_DESCRIPTOR_KEY] must contain a ServiceDescriptor object
        describing this protocol service type.
    N(tsuperRRRt_ServiceStubBuildertBuildServiceStub(RRRRR	tservice_stub_builder((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR^s

(RR
RRR(((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyRTsRcBsMeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(sDThis class constructs a protocol service class using a service descriptor.

  Given a service descriptor, this class constructs a class that represents
  the specified service descriptor. One service builder instance constructs
  exactly one service class. That means all instances of that class share the
  same builder.
  cCs
||_dS(s�Initializes an instance of the service class builder.

    Args:
      service_descriptor: ServiceDescriptor to use when constructing the
        service class.
    N(R	(tselftservice_descriptor((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR|scs��fd�}|�_||_t�fd��|_d|j_�j|_�j|_x0�j	j
D]"}t||j�j
|��qjWdS(s\Constructs the service class.

    Args:
      cls: The class that will be constructed.
    cs�j|||||�S(N(t_CallMethod(tsrvctmethod_descriptortrpc_controllertrequesttcallback(R(sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyt_WrapCallMethod�scs�jS(N(R	((R(sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyt<lambda>�tsReturns the service descriptor.N(Rt
CallMethodtstaticmethodt
GetDescriptorRt_GetRequestClasstGetRequestClasst_GetResponseClasstGetResponseClassR	tmethodstsetattrRt_GenerateNonImplementedMethod(RRRtmethod((RsF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�s
		cCsC|j|jkr!td��nt||j�}||||�S(s�Calls the method described by a given method descriptor.

    Args:
      srvc: Instance of the service for which this method is called.
      method_descriptor: Descriptor that represent the method to call.
      rpc_controller: RPC controller to use for this method's execution.
      request: Request protocol message.
      callback: A callback to invoke after the method has completed.
    s<CallMethod() given method descriptor for wrong service type.(tcontaining_serviceR	tRuntimeErrortgetattrR(RRRRRRR)((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�s
cCs+|j|jkr!td��n|jjS(sReturns the class of the request protocol message.

    Args:
      method_descriptor: Descriptor of the method for which to return the
        request protocol message class.

    Returns:
      A class that represents the input protocol message of the specified
      method.
    sAGetRequestClass() given method descriptor for wrong service type.(R*R	R+t
input_typet_concrete_class(RR((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR"�scCs+|j|jkr!td��n|jjS(sReturns the class of the response protocol message.

    Args:
      method_descriptor: Descriptor of the method for which to return the
        response protocol message class.

    Returns:
      A class that represents the output protocol message of the specified
      method.
    sBGetResponseClass() given method descriptor for wrong service type.(R*R	R+toutput_typeR.(RR((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR$�scs��fd�S(s�Generates and returns a method that can be set for a service methods.

    Args:
      method: Descriptor of the service method for which a method is to be
        generated.

    Returns:
      A method that can be added to the service class.
    cs�j�j||�S(N(t_NonImplementedMethodR(tinstRRR(R)R(sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�s((RR)((R)RsF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR(�s
cCs|jd|�|d�dS(s
The body of all methods in the generated service class.

    Args:
      method_name: Name of the method being executed.
      rpc_controller: RPC controller used to execute this method.
      callback: A callback which will be invoked when the method finishes.
    sMethod %s not implemented.N(t	SetFailedtNone(Rtmethod_nameRR((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR0�s(
RR
RRRRR"R$R(R0(((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyRrs							
RcBs2eZdZd�Zd�Zd�Zd�ZRS(s�Constructs a protocol service stub class using a service descriptor.

  Given a service descriptor, this class constructs a suitable stub class.
  A stub is just a type-safe wrapper around an RpcChannel which emulates a
  local implementation of the service.

  One service stub builder instance constructs exactly one class. It means all
  instances of that class share the same service stub builder.
  cCs
||_dS(s�Initializes an instance of the service stub class builder.

    Args:
      service_descriptor: ServiceDescriptor to use when constructing the
        stub class.
    N(R	(RR((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�scCsRd�}||_||_x0|jjD]"}t||j|j|��q(WdS(sYConstructs the stub class.

    Args:
      cls: The class that will be constructed.
    cSs
||_dS(N(trpc_channel(tstubR5((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyt_ServiceStubInitsN(RRR	R&R'Rt_GenerateStubMethod(RRR7R)((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�s
			csd��fd�S(Ncs�j|�|||�S(N(t_StubMethod(R1RRR(R)R(sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR
s(R3(RR)((R)RsF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR8	scCs"|jj||||jj|�S(s�The body of all service methods in the generated stub class.

    Args:
      stub: Stub instance.
      method_descriptor: Descriptor of the invoked method.
      rpc_controller: Rpc controller to execute the method.
      request: Request protocol message.
      callback: A callback to execute when the method finishes.
    Returns:
      Response message (in case of blocking call).
    (R5RR/R.(RR6RRRR((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR9
s
		(RR
RRRR8R9(((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�s

				N(Rt
__author__ttypeRRtobjectRR(((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyt<module>%s
*tPK�\��,*`v`vprotobuf/descriptor_pool.pycnu�[����
���hc@s�dZdZddlZddlmZddlmZddlmZejZd�Zd�Z	d	�Z
d
efd��YZd�Z
er�ejjZn	e�Zd
�ZdS(sJProvides DescriptorPool to use as a container for proto2 descriptors.

The DescriptorPool is used in conjection with a DescriptorDatabase to maintain
a collection of protocol buffer descriptors for use when dynamically creating
message types at runtime.

For most applications protocol buffers should be used via modules generated by
the protocol buffer compiler tool. This should only be used when the type of
protocol buffers used in an application or library cannot be predetermined.

Below is a straightforward example on how to use this class:

  pool = DescriptorPool()
  file_descriptor_protos = [ ... ]
  for file_descriptor_proto in file_descriptor_protos:
    pool.Add(file_descriptor_proto)
  my_message_descriptor = pool.FindMessageTypeByName('some.package.MessageType')

The message descriptor can be used in conjunction with the message_factory
module in order to create a protocol buffer class that can be encoded and
decoded.

If you want to get a Python class for the specified proto, use the
helper functions inside google.protobuf.message_factory
directly instead of this class.
s"matthewtoia@google.com (Matt Toia)i����N(t
descriptor(tdescriptor_database(t
text_encodingcCs
|jd�S(sLRemove leading period from fully-qualified type name.

  Due to b/13860351 in descriptor_database.py, types in the root namespace are
  generated with a leading period. This function removes that prefix.

  Args:
    name: A str, the fully-qualified symbol name.

  Returns:
    A str, the normalized fully-qualified symbol name.
  t.(tlstrip(tname((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt_NormalizeFullyQualifiedNameFscCs|jd�r|jSdSdS(sCReturns the value of the field `options`, or None if it is not set.toptionsN(tHasFieldRtNone(tdescriptor_proto((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt_OptionsOrNoneUscCsO|joN|jjoN|jj�joN|jtjjkoN|j	tjj
kS(N(tis_extensiontcontaining_typethas_optionst
GetOptionstmessage_set_wire_formatttypeRtFieldDescriptortTYPE_MESSAGEtlabeltLABEL_OPTIONAL(tfield((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt_IsMessageSetExtension]s
	tDescriptorPoolcBsaeZdZer!d"d�Znd"d�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd"d"d"d"d�Zd"d"d"d"d�Zed�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d �Z%d!�Z&RS(#sGA collection of protobufs dynamically constructed by descriptor protos.cCstjj|�S(N(Rt_messageR(tclst
descriptor_db((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt__new__jscCsmtj�|_||_i|_i|_i|_i|_i|_t	j
t�|_t	j
t�|_
dS(s�Initializes a Pool of proto buffs.

    The descriptor_db argument to the constructor is provided to allow
    specialized file descriptor proto lookup code to be triggered on demand. An
    example would be an implementation which will read and compile a file
    specified in a call to FindFileByName() and not require the call to Add()
    at all. Results from this database will be cached internally here as well.

    Args:
      descriptor_db: A secondary source of file descriptors.
    N(RtDescriptorDatabaset_internal_dbt_descriptor_dbt_descriptorst_enum_descriptorst_service_descriptorst_file_descriptorst_toplevel_extensionstcollectionstdefaultdicttdictt_extensions_by_namet_extensions_by_number(tselfR((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt__init__ns
						cCs|jj|�dS(sAdds the FileDescriptorProto and its types to this pool.

    Args:
      file_desc_proto: The FileDescriptorProto to add.
    N(RtAdd(R*tfile_desc_proto((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR,�scCs3ddlm}|jj|�}|j|�dS(s�Adds the FileDescriptorProto and its types to this pool.

    Args:
      serialized_file_desc_proto: A bytes string, serialization of the
        FileDescriptorProto to add.
    i����(tdescriptor_pb2N(tgoogle.protobufR.tFileDescriptorProtot
FromStringR,(R*tserialized_file_desc_protoR.R-((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytAddSerializedFile�s			cCsEt|tj�s!td��n||j|j<|j|j�dS(sAdds a Descriptor to the pool, non-recursively.

    If the Descriptor contains nested messages or enums, the caller must
    explicitly register them. This method also registers the FileDescriptor
    associated with the message.

    Args:
      desc: A Descriptor.
    s+Expected instance of descriptor.Descriptor.N(t
isinstanceRt
Descriptort	TypeErrorR t	full_namet_AddFileDescriptortfile(R*tdesc((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt
AddDescriptor�s
cCsEt|tj�s!td��n||j|j<|j|j�dS(s�Adds an EnumDescriptor to the pool.

    This method also registers the FileDescriptor associated with the enum.

    Args:
      enum_desc: An EnumDescriptor.
    s/Expected instance of descriptor.EnumDescriptor.N(R4RtEnumDescriptorR6R!R7R8R9(R*t	enum_desc((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytAddEnumDescriptor�s	cCs5t|tj�s!td��n||j|j<dS(s^Adds a ServiceDescriptor to the pool.

    Args:
      service_desc: A ServiceDescriptor.
    s2Expected instance of descriptor.ServiceDescriptor.N(R4RtServiceDescriptorR6R"R7(R*tservice_desc((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytAddServiceDescriptor�scCst|tj�o|js*td��n|jdkrL||j|j<ny|j	|j
|j}Wntk
rzn;X||k	r�t
d|j|j|j
j|jf��n||j	|j
|j<||j|j
|j<t|�r||j|j
|jj<ndS(s;Adds a FieldDescriptor describing an extension to the pool.

    Args:
      extension: A FieldDescriptor.

    Raises:
      AssertionError: when another extension with the same number extends the
        same message.
      TypeError: when the specified extension is not a
        descriptor.FieldDescriptor.
    s!Expected an extension descriptor.sSExtensions "%s" and "%s" both try to extend message type "%s" with field number %d.N(R4RRRR6textension_scopeR	R$R7R)R
tnumbertKeyErrortAssertionErrorR(Rtmessage_type(R*t	extensiont
existing_desc((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytAddExtensionDescriptor�s&	
cCs|j|�dS(s�Adds a FileDescriptor to the pool, non-recursively.

    If the FileDescriptor contains messages or enums, the caller must explicitly
    register them.

    Args:
      file_desc: A FileDescriptor.
    N(R8(R*t	file_desc((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytAddFileDescriptor�s
cCs5t|tj�s!td��n||j|j<dS(s�Adds a FileDescriptor to the pool, non-recursively.

    If the FileDescriptor contains messages or enums, the caller must explicitly
    register them.

    Args:
      file_desc: A FileDescriptor.
    s/Expected instance of descriptor.FileDescriptor.N(R4RtFileDescriptorR6R#R(R*RJ((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR8s
cCs�y|j|SWntk
r"nXy|jj|�}Wn7tk
rr}|jri|jj|�}qs|�nX|s�td|��n|j|�S(s�Gets a FileDescriptor by file name.

    Args:
      file_name: The path to the file to get a descriptor for.

    Returns:
      A FileDescriptor for the named file.

    Raises:
      KeyError: if the file cannot be found in the pool.
    sCannot find a file named %s(R#RDRtFindFileByNameRt!_ConvertFileProtoToFileDescriptor(R*t	file_namet
file_prototerror((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRMs

	
cCs6t|�}y|j|jSWntk
r1nXy|j|jSWntk
rWnXy|j|jSWntk
r}nXy|j|�SWntk
r�nXy|j|jSWntk
r�nX|jd�\}}}y-|j	|�}|j
|st�|jSWn!tk
r1td|��nXdS(sGets the FileDescriptor for the file containing the specified symbol.

    Args:
      symbol: The name of the symbol to search for.

    Returns:
      A FileDescriptor that contains the specified symbol.

    Raises:
      KeyError: if the file cannot be found in the pool.
    Rs Cannot find a file containing %sN(RR R9RDR!R"t_FindFileContainingSymbolInDbR$t
rpartitiontFindMessageTypeByNametextensions_by_nameRE(R*tsymboltmessage_namet_textension_nametmessage((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindFileContainingSymbol+s8






cCs6t|�}||jkr+|j|�n|j|S(s�Loads the named descriptor from the pool.

    Args:
      full_name: The full name of the descriptor to load.

    Returns:
      The descriptor for the named type.

    Raises:
      KeyError: if the message cannot be found in the pool.
    (RR RR(R*R7((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRT[s
cCs6t|�}||jkr+|j|�n|j|S(s�Loads the named enum descriptor from the pool.

    Args:
      full_name: The full name of the enum descriptor to load.

    Returns:
      The enum descriptor for the named type.

    Raises:
      KeyError: if the enum cannot be found in the pool.
    (RR!RR(R*R7((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindEnumTypeByNamems
cCs>t|�}|jd�\}}}|j|�}|j|S(sLoads the named field descriptor from the pool.

    Args:
      full_name: The full name of the field descriptor to load.

    Returns:
      The field descriptor for the named field.

    Raises:
      KeyError: if the field cannot be found in the pool.
    R(RRSRTtfields_by_name(R*R7RWRXt
field_nametmessage_descriptor((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindFieldByNamescCs>t|�}|jd�\}}}|j|�}|j|S(sLoads the named oneof descriptor from the pool.

    Args:
      full_name: The full name of the oneof descriptor to load.

    Returns:
      The oneof descriptor for the named oneof.

    Raises:
      KeyError: if the oneof cannot be found in the pool.
    R(RRSRTtoneofs_by_name(R*R7RWRXt
oneof_nameR_((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindOneofByName�scCs�t|�}y|j|SWntk
r.nX|jd�\}}}y|j|�}Wn tk
r||j|�}nX|j|S(sLoads the named extension descriptor from the pool.

    Args:
      full_name: The full name of the extension descriptor to load.

    Returns:
      A FieldDescriptor, describing the named extension.

    Raises:
      KeyError: if the extension cannot be found in the pool.
    R(RR$RDRSRTRRRU(R*R7RWRXRYtscope((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindExtensionByName�s

cCs|j||S(s�Gets the extension of the specified message with the specified number.

    Extensions have to be registered to this pool by calling
    AddExtensionDescriptor.

    Args:
      message_descriptor: descriptor of the extended message.
      number: integer, number of the extension field.

    Returns:
      A FieldDescriptor describing the extension.

    Raises:
      KeyError: when no extension with the given number is known for the
        specified message.
    (R)(R*R_RC((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindExtensionByNumber�scCst|j|j��S(s!Gets all the known extension of a given message.

    Extensions have to be registered to this pool by calling
    AddExtensionDescriptor.

    Args:
      message_descriptor: descriptor of the extended message.

    Returns:
      A list of FieldDescriptor describing the extensions.
    (tlistR)tvalues(R*R_((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindAllExtensions�scCs6t|�}||jkr+|j|�n|j|S(sLoads the named service descriptor from the pool.

    Args:
      full_name: The full name of the service descriptor to load.

    Returns:
      The service descriptor for the named service.

    Raises:
      KeyError: if the service cannot be found in the pool.
    (RR"RR(R*R7((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindServiceByName�scCsvy|jj|�}Wn7tk
rO}|jrF|jj|�}qP|�nX|sitd|��n|j|�S(s"Finds the file in descriptor DB containing the specified symbol.

    Args:
      symbol: The name of the symbol to search for.

    Returns:
      A FileDescriptor that contains the specified symbol.

    Raises:
      KeyError: if the file cannot be found in the descriptor database.
    s Cannot find a file containing %s(RR[RDRRN(R*RVRPRQ((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRR�s	
cCs|j|jkrt|j|j��}g|jD]}|j|�^q4}g|jD]}||^qY}tjd|d|jd|j	d|j
dt|�d|j�d|d|�}i}xM|D]E}	|j
|j|	jj���|j
d	�|	jj�D��q�WxB|jD]7}
|j|
|j	|||j
�}||j|j<q Wx9|jD].}|j||j	|d|�|j|j<qeWx�t|j�D]t\}
}|j||j	|
|d
t�}|j|j	|j|�|_|j|||j	|�||j|j<q�Wx'|jD]}|j |j	||�q)W|j	rdt!|j	�}nd}x9|jD].}|j||j|�}||j|j<qtWxEt|j"�D]4\}
}|j#||
||j	|�|j$|j<q�W|j%|�||j|j<n|j|jS(
sDCreates a FileDescriptor from a proto or returns a cached copy.

    This method also has the side effect of loading all the symbols found in
    the file into the appropriate dictionaries in the pool.

    Args:
      file_proto: The proto to convert.

    Returns:
      A FileDescriptor matching the passed in proto.
    tpoolRtpackagetsyntaxRt
serialized_pbtdependenciestpublic_dependenciescss$|]}t|j�|fVqdS(N(t_PrefixWithDotR7(t.0tenum((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pys	<genexpr>,sRtN(&RR#Rgt_GetDepst
dependencyRMtpublic_dependencyRRLRlRmRtSerializeToStringtupdatet_ExtractSymbolstmessage_types_by_nameRhtenum_types_by_nameRFt_ConvertMessageDescriptort	enum_typet_ConvertEnumDescriptorR	t	enumerateRGt_MakeFieldDescriptortTruet_GetTypeFromScopetextendeeR
t
_SetFieldTypeRUt_SetAllFieldTypesRqtservicet_MakeServiceDescriptortservices_by_nameR,(R*RPt
built_depstntdirect_depstitpublic_depstfile_descriptorRdRvRFtmessage_descR~tindextextension_prototextension_desct
desc_prototdesc_proto_prefixR:t
service_proto((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRNsf
% 					
	
	
c!Cs|r!dj||jf�}n	|j}|dkr?d}n	|j}|dkr]i}ng|jD]!}|j|||||�^qg}g|jD]!}	|j|	||d|�^q�}
gt|j�D]$\}}|j	||||�^q�}
gt|j
�D]*\}}|j	||||dt�^q	}gt|j�D]B\}}t
j|jdj||jf�|dg|j�^qI}g|jD]}|j|jf^q�}|r�t}nt}t
jd|jd|d|ddd|
d|d	|d
|
d|dt|�d
|d|d|ddddd|�}x|jD]}||_qMWx|jD]}	||	_qjWxat|j�D]P\}}|jd�r�|j}||jj|
|�|||
|_q�q�W||t|�<||j|<|S(s�Adds the proto to the pool in the specified package.

    Args:
      desc_proto: The descriptor_pb2.DescriptorProto protobuf message.
      package: The package the proto should be located in.
      file_desc: The file containing this message.
      scope: Dict mapping short and full symbols to message and enum types.
      syntax: string indicating syntax of the file ("proto2" or "proto3")

    Returns:
      The added descriptor.
    RRRR7tfilenameR
tfieldstoneofstnested_typest
enum_typest
extensionsRt
is_extendabletextension_rangesR9tserialized_starttserialized_endRmtoneof_indexN( tjoinRR	tnested_typeR}R~RR�RR�RGR�t
oneof_declRtOneofDescriptorRtextension_rangetstarttendtFalseR5RR�R
R�RR�R�tappendtcontaining_oneofRqR (R*R�RlRJRdRmt	desc_nameROtnestedRstenumsR�RR�RGR�R:R�trR�R�tfield_indext
field_descR�((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR}]sf				..7=U(				

	
cCs�|r!dj||jf�}n	|j}|d
kr?d
}n	|j}gt|j�D]\}}	|j|	|�^qX}
tjd|jd|d|d|d|
d|dt|��}||d	|<||j	|<|S(s�Make a protobuf EnumDescriptor given an EnumDescriptorProto protobuf.

    Args:
      enum_proto: The descriptor_pb2.EnumDescriptorProto protobuf message.
      package: Optional package name for the new message EnumDescriptor.
      file_desc: The file containing the enum descriptor.
      containing_type: The type containing this enum.
      scope: Scope containing available types.

    Returns:
      The added descriptor
    RRR7R�R9RhR
Rs.%sN(
R�RR	R�tvaluet_MakeEnumValueDescriptorRR<RR!(R*t
enum_protoRlRJR
Rdt	enum_nameROR�R�RhR:((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR�s$			1
c!Cs�|r!dj||jf�}n	|j}tjd|jd|d|d|jd|jddddd	dd
dd|jdtd
dd|dddt	|�d|�S(s�Creates a field descriptor from a FieldDescriptorProto.

    For message and enum type fields, this method will do a look up
    in the pool for the appropriate descriptor for that type. If it
    is unavailable, it will fall back to the _source function to
    create it. If this type is still unavailable, construction will
    fail.

    Args:
      field_proto: The proto describing the field.
      message_name: The name of the containing message.
      index: Index of the field
      file_desc: The file containing the field descriptor.
      is_extension: Indication that this field is for an extension.

    Returns:
      An initialized FieldDescriptor object
    RRR7R�RCRtcpp_typeRFR~R
Rthas_default_valuet
default_valueRRBRR9N(
R�RRRRCRR	RR�R(R*tfield_protoRWR�RJRR7((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR��s(						cCst|�}|j||j|�}|dkrBt|j�}ndj||jg�}x9t|j|j�D]"\}}|j||||�qpWxTt|j|j	�D]=\}}	|j||j
|�|	_|j||	||�q�Wx$|jD]}
|j
||
|�q�WdS(sSets all the descriptor's fields's types.

    This method also sets the containing types on any extensions.

    Args:
      package: The current package of desc_proto.
      desc_proto: The message descriptor to update.
      scope: Enclosing scope of available types.
    RN(RqR�RR�tzipRR�R�RGR�R�R
R�R�(R*RlR�Rdt	main_desctnested_packageR�R�R�R�R�((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR�s"cCs|jr$|j||j|�}nd}|jd�sot|tj�r]tjj|_	qotjj
|_	ntjj|j	�|_|j	tjjks�|j	tjj
kr�||_n|j	tjj
kr�||_n|jtjjkrt|_g|_n�|jd�r&t|_|j	tjjksJ|j	tjjkr_t|j�|_q�|j	tjjkr�|j|_q�|j	tjjkr�|jj�dk|_q�|j	tjj
kr�|jj|jj|_q�|j	tjjkrtj |j�|_q�t!|j�|_n�t|_|j	tjjksY|j	tjjkred|_n�|j	tjjkr�d|_ny|j	tjjkr�t|_nX|j	tjj
kr�|jj"dj|_n*|j	tjjkr�d|_n	d|_|j	|_	dS(	sSets the field's type, cpp_type, message_type and enum_type.

    Args:
      field_proto: Data about the field in proto format.
      field_desc: The descriptor to modiy.
      package: The package the field's container is in.
      scope: Enclosing scope of available types.
    RR�ttrueguiRtN(#t	type_nameR�R	RR4RR5RRRt	TYPE_ENUMtProtoTypeToCppProtoTypeR�t
TYPE_GROUPRFR~RtLABEL_REPEATEDR�R�R�R�tTYPE_DOUBLEt
TYPE_FLOATtfloattTYPE_STRINGt	TYPE_BOOLtlowertvalues_by_nameRCt
TYPE_BYTESRt	CUnescapetintRh(R*R�R�RlRdR:((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR� s^								cCs4tjd|jd|d|jdt|�dd�S(s�Creates a enum value descriptor object from a enum value proto.

    Args:
      value_proto: The proto describing the enum value.
      index: The index of the enum value.

    Returns:
      An initialized EnumValueDescriptor object.
    RR�RCRRN(RtEnumValueDescriptorRRCRR	(R*tvalue_protoR�((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR�fs			c
Cs�|r!dj||jf�}n	|j}gt|j�D]'\}}|j|||||�^q:}	tjd|jd|d|d|	dt|�d|�}
|
|j|<|
S(s�Make a protobuf ServiceDescriptor given a ServiceDescriptorProto.

    Args:
      service_proto: The descriptor_pb2.ServiceDescriptorProto protobuf message.
      service_index: The index of the service in the File.
      scope: Dict mapping short and full symbols to message and enum types.
      package: Optional package name for the new message EnumDescriptor.
      file_desc: The file containing the service descriptor.

    Returns:
      The added descriptor.
    RRR7R�tmethodsRR9(	R�RR�tmethodt_MakeMethodDescriptorRR?RR"(R*R�t
service_indexRdRlRJtservice_nameR�tmethod_protoR�R:((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR�xs	:	
c	Cs�dj||jf�}|j||j|�}|j||j|�}tjd|jd|d|dd	d|d|dt|��S(
s�Creates a method descriptor from a MethodDescriptorProto.

    Args:
      method_proto: The proto describing the method.
      service_name: The name of the containing service.
      package: Optional package name to look up for types.
      scope: Scope containing available types.
      index: Index of the method in the service.

    Returns:
      An initialized MethodDescriptor object.
    RRR7R�tcontaining_servicet
input_typetoutput_typeRN(	R�RR�R�R�RtMethodDescriptorR	R(	R*R�R�RlRdR�R7R�R�((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR��sccssxl|D]d}t|j�|fVx|j|j�D]}|Vq4Wx%|jD]}t|j�|fVqMWqWdS(s�Pulls out all the symbols from descriptor protos.

    Args:
      descriptors: The messages to extract descriptors from.
    Yields:
      A two element tuple of the type name and descriptor object.
    N(RqR7RzR�R�(R*tdescriptorsR:RVRs((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRz�s	
	ccsBx;|D]3}|j|�}|Vx|jD]}|Vq+WqWdS(s�Recursively finds dependencies for file protos.

    Args:
      dependencies: The names of the files being depended on.

    Yields:
      Each direct and indirect dependency.
    N(RMRo(R*RoRvtdep_desct
parent_dep((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRu�s


cCsr||krjt|�jd�}xF|rfdj||g�}||krV|}Pq$|jd�q$Wn||S(s?Finds a given type name in the current scope.

    Args:
      package: The package the proto should be located in.
      type_name: The name of the type to be found in the scope.
      scope: Dict mapping short and full symbols to message and enum types.

    Returns:
      The descriptor for the requested type.
    Ri����(RqtsplitR�tpop(R*RlR�Rdt
componentstpossible_match((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR��s	N('t__name__t
__module__t__doc__t_USE_C_DESCRIPTORSR	RR+R,R3R;R>RARIRKR8RMR[RTR\R`RcReRfRiRjRRRNR}RR�R�R�R�R�R�R�RzRuR�(((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyResJ							*				0										UP&+	 	F		 			cCs|jd�r|Sd|S(NRs.%s(t
startswith(R((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRq�scCstS(N(t_DEFAULT(((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytDefault�s(R�t
__author__R%R/RRRR�RRRtobjectRRqRtdefault_poolR�R�(((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt<module>8s$				����		PK�\�Ha�F�F�protobuf/descriptor_pb2.pycnu�[����
���hc?@s QddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zej�Z
ejd
ddd
ddded��Zejd
ddddddedejd
ddddddddd�ejd
ddddddddd�ejd
d dddddddd�ejd
d!dddd"dddd�ejd
d#dd"dd$dddd�ejd
d%dd$dd&dddd�ejd
d'dd&dd(dddd�ejd
d)dd(dd*dddd�ejd
d+dd*dd,dddd�ejd
d-dd,dd.dddd�ejd
d/dd.dd0dddd�ejd
d1dd0dd2dddd�ejd
d3dd2dd4dddd�ejd
d5dd4dd6dddd�ejd
d7dd6dd8dddd�ejd
d9dd8dd:dddd�ejd
d;dd:dd<dddd�ejd
d=dd<dd>dddd�gd?dddd@dAdBdC�	Ze
je�ejd
dDddEdddedejd
dFdddddddd�ejd
dGdddddddd�ejd
dHdddddddd�gd?dddd@dIdBdJ�	Ze
je�ejd
dKddLdddedejd
dMdddddddd�ejd
dNdddddddd�ejd
dOdddddddd�gd?dddd@dPdBdQ�	Ze
je�ejd
dRddSdddedejd
dTdddddddd�ejd
dUdddddddd�ejd
dVdddddddd�gd?dddd@dWdBdX�	Ze
je�ejd
dYddZdddedejd
d[dddddddd�ejd
d\dddddddd�ejd
d]dddddddd�gd?dddd@d^dBd_�	Ze
je�ejd
d`ddadddedejd
dbdddddddd�ejd
dcdddddddd�ejd
dddddddddd�gd?dddd@dedBdf�	Ze
je�ejd
dgddhddded?ddiejd
dddjdddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@dydBdz�Zejd
d{dd|ddded?ddiejd
d
dd}dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd,dkd,dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddd.dd$dkddlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd"dd0dd$dkddlddmedngdoddpdd?ddqedrdddde�ejd
dodd�dd$dd"dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
dpdd�dd&dd$dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd(dd&dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd*dd(dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
ddd�dd,dd*dd0dkd.dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd.dd,dd0dkd.dlddmednddoddpdd?ddqedrdddde�ejd
ddd�dd0dd2dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Zejd
d�dd�ddded?ddiejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
ddd�dddddd0dkd.dlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z ejd
d�dd�ddded?ddiejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z!ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddd&dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
dpdd�dd"dd"dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd$dd$dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd&dd*dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
ddd�dd(dd(dd0dkd.dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd*dd,dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd,dd.dd,dkd,dlddmedngdoddpdd?ddqedrdddde�g
dsgdte e!gdugdddvedddwgdxgd@d�dBd��Z"ejd
d�dd�ddded?ddiejd
d�dd�dddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@d�dBd��Z$ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
dldd�dddd"dd6dkd*dlddmednddoddpdd?ddqedrdddde�ejd
ddd�dddd$dd6dkd*dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd"dd&dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dd$dddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
dndd�dd&dd(dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dd(dd,dd$dkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd*dd.dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dd,dd*dd0dkd.dlddmednddoddpdd?ddqedrdddde�g
dsgdtgdueegdddvedddwgdxgd@d�dBdJ�Z%ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddddd0dkd.dlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z&ejd
d�dd�ddded?ddiejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z'ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
ddd�dddddd0dkd.dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddd"dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd"dd$dd,dkd,dlddmedngdoddpdd?ddqedrdddde�gdsgdte'gdugdddvedddwgdxgd@d�dBd��Z(ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
ddd�dddddd0dkd.dlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z)ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
ddd�dddddd0dkd.dlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z*ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddd"dd0dkd.dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd"dd$dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d�dd�dd$dd&dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd�Z+ejd
dddddded?ddiejd
ddddddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddddddd*dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddddddd.dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d	dd
dddddd*dkd(dlddmednedoddpdd?ddqedrdddde�ejd
ddd
dd"dddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddddd$dd,dd6dkd*dlddme#dnddoddpdd?ddqedrdddde�ejd
ddddd&dd0dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddddd(dd:dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddddd*dd<dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddddd,dd>dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddddd.dddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddddd0dddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddd dd2dd!dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d"dd#dd4dd$dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d%dd&dd6dd'dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d(dd)dd8dd*dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d+dd,dd:dd-dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d.dd/dd<dd0dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd1dd>dd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgduegdddve#dddwd�gdxgd@d2dBd3�Z,ejd
d4dd5ddded?ddiejd
d6dd7dddddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d8dd9dddddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddd:dddddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d;dd<dddd(dd*dkd(dlddmednedoddpdd?ddqedrdddde�ejd
d�dd=dd"dd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@d>dBd?�Z-ejd
d@ddAddded?ddiejd
dBddCdddddd6dkd*dlddme#dnddoddpdd?ddqedrdddde�ejd
dDddEdddddd*dkd(dlddmednedoddpdd?ddqedrdddde�ejd
dFddGdddd&dd6dkd*dlddme#dnddoddpdd?ddqedrdddde�ejd
dHddIdddd$dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
dddJdd"dddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
dKddLdd$dd.dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d�ddMdd&dd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdueegdddve#dddwd�gdxgd@dNdBdO�Z.ejd
dPddQddded?ddiejd
d�ddRdddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@dSdBdT�Z/ejd
dUddVddded?ddiejd
dWddXdddddd*dkd(dlddmednedoddpdd?ddqedrdddde�ejd
dddYdddddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d�ddZdddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@d[dBd\�Z0ejd
d]dd^ddded?ddiejd
ddd_dddddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d�dd`dddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@dadBdb�Z1ejd
dcdddddded?ddiejd
dddeddddfdd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d�ddgdddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@dhdBdi�Z2ejd
djddkddded?ddiejd
dddlddddfdd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
dmddnddddodd6dkd*dlddme#dnddoddpdd?ddqedrdddde�ejd
d�ddpdddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgduegdddve#dddwd�gdxgd@dqdBdr�Z3ejd
dsddtddded?ddiejd
duddvdddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
dqddwdddddd*dkd(dlddmednedoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@dxdBdy�Z4ejd
dzdd{ddded?ddiejd
d
dd|dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d}dd~dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddd"dd"dkd"dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddd$dddkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd"dd&dddkd$dlddmedne5d�doddpdd?ddqedrdddde�ejd
d�dd�dd$dd(dd2dkd,dlddmedned~�doddpdd?ddqedrdddde�ejd
d�dd�dd&dd*dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�gdsgdte4gdugdddvedddwgdxgd@d�dBdy�Z6ejd
d�dd�ddded?ddiejd
d�dd�dddddd$dkddlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddddd$dkddlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddd"dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dd"dd&dd,dkd,dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z7ejd
d�dd�ddded?ddiejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdte7gdugdddvedddwgdxgd@d�dBd��Z8ejd
d�dd�ddded?ddiejd
d�dd�dddddd$dkddlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddd"dd$dkddlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z9ejd
d�dd�ddded?ddiejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdte9gdugdddvedddwgdxgd@d�dBd��Z:eej;d_<e"ej;do_<e(ej;dp_<e*ej;d�_<e%ej;d�_<e,ej;d_<e8ej;d�_<e$e j;d_<e"e _=e"e!_=e%e"j;d�_<e%e"j;d�_<e"e"j;d�_<e(e"j;dp_<e e"j;d�_<e&e"j;d�_<e-e"j;d_<e!e"j;d�_<e6e$j;d�_<ee%j;dl_>ee%j;d_>e.e%j;d_<e%e_=e%e_=e/e&j;d_<e(e'_=e)e(j;d�_<e0e(j;d_<e'e(j;d�_<e1e)j;d_<e+e*j;d�_<e2e*j;d_<e3e+j;d_<ee,j;d_>e6e,j;d�_<e,e_=e6e-j;d�_<ee.j;dB_>ee.j;dF_>e6e.j;d�_<e.e_=e.e_=e6e/j;d�_<e6e0j;d�_<e6e1j;d�_<e6e2j;d�_<ee3j;dm_>e6e3j;d�_<e3e_=e6e4_=e4e6j;d
_<e8e7_=e7e8j;d�_<e:e9_=e9e:j;d�_<eej?dg<eej?d{<e"ej?d�<e$ej?d�<e%ej?d�<e&ej?d�<e(ej?d�<e)ej?d�<e*ej?d�<e+ej?d�<e,ej?d<e-ej?d4<e.ej?d@<e/ej?dP<e0ej?dU<e1ej?d]<e2ej?dc<e3ej?dj<e6ej?dz<e8ej?d�<e:ej?d�<e
j@e�e	jAdgejBfeCd�ed�d���ZDe
jEeD�e	jAd{ejBfeCd�ed�d���ZFe
jEeF�e	jAd�ejBfeCd�e	jAd�ejBfeCd�e d�d���d�e	jAd�ejBfeCd�e!d�d���d�e"d�d���ZGe
jEeG�e
jEeGjH�e
jEeGjI�e	jAd�ejBfeCd�e$d�d���ZJe
jEeJ�e	jAd�ejBfeCd�e%d�d���ZKe
jEeK�e	jAd�ejBfeCd�e&d�d���ZLe
jEeL�e	jAd�ejBfeCd�e	jAd�ejBfeCd�e'd�d���d�e(d�d���ZMe
jEeM�e
jEeMjN�e	jAd�ejBfeCd�e)d�d���ZOe
jEeO�e	jAd�ejBfeCd�e*d�d���ZPe
jEeP�e	jAd�ejBfeCd�e+d�d���ZQe
jEeQ�e	jAdejBfeCd�e,d�d���ZRe
jEeR�e	jAd4ejBfeCd�e-d�d���ZSe
jEeS�e	jAd@ejBfeCd�e.d�d���ZTe
jEeT�e	jAdPejBfeCd�e/d�d���ZUe
jEeU�e	jAdUejBfeCd�e0d�d���ZVe
jEeV�e	jAd]ejBfeCd�e1d�d���ZWe
jEeW�e	jAdcejBfeCd�e2d�d���ZXe
jEeX�e	jAdjejBfeCd�e3d�d���ZYe
jEeY�e	jAdzejBfeCdse	jAdsejBfeCd�e4d�d���d�e6d�d���ZZe
jEeZ�e
jEeZj[�e	jAd�ejBfeCd�e	jAd�ejBfeCd�e7d�d���d�e8d�d���Z\e
jEe\�e
jEe\j]�e	jAd�ejBfeCd�e	jAd�ejBfeCd�e9d�d���d�e:d�d���Z^e
jEe^�e
jEe^j_�dS(�i����NiicCs|S(N((tx((sB/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sB/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_databasetnames google/protobuf/descriptor.prototpackagesgoogle.protobuftsyntaxtproto2t
serialized_pbsP
 google/protobuf/descriptor.protogoogle.protobuf"G
FileDescriptorSet2
file (2$.google.protobuf.FileDescriptorProto"�
FileDescriptorProto
name (	
package (	

dependency (	
public_dependency
 (
weak_dependency (6
message_type (2 .google.protobuf.DescriptorProto7
	enum_type (2$.google.protobuf.EnumDescriptorProto8
service (2'.google.protobuf.ServiceDescriptorProto8
	extension (2%.google.protobuf.FieldDescriptorProto-
options (2.google.protobuf.FileOptions9
source_code_info	 (2.google.protobuf.SourceCodeInfo
syntax (	"�
DescriptorProto
name (	4
field (2%.google.protobuf.FieldDescriptorProto8
	extension (2%.google.protobuf.FieldDescriptorProto5
nested_type (2 .google.protobuf.DescriptorProto7
	enum_type (2$.google.protobuf.EnumDescriptorProtoH
extension_range (2/.google.protobuf.DescriptorProto.ExtensionRange9

oneof_decl (2%.google.protobuf.OneofDescriptorProto0
options (2.google.protobuf.MessageOptionsF
reserved_range	 (2..google.protobuf.DescriptorProto.ReservedRange

reserved_name
 (	e
ExtensionRange
start (
end (7
options (2&.google.protobuf.ExtensionRangeOptions+

ReservedRange
start (
end ("g
ExtensionRangeOptionsC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"�
FieldDescriptorProto
name (	
number (:
label (2+.google.protobuf.FieldDescriptorProto.Label8
type (2*.google.protobuf.FieldDescriptorProto.Type
	type_name (	
extendee (	

default_value (	
oneof_index	 (
	json_name
 (	.
options (2.google.protobuf.FieldOptions"�
Type
TYPE_DOUBLE

TYPE_FLOAT

TYPE_INT64
TYPE_UINT64

TYPE_INT32
TYPE_FIXED64
TYPE_FIXED32
	TYPE_BOOL
TYPE_STRING	

TYPE_GROUP

TYPE_MESSAGE

TYPE_BYTES
TYPE_UINT32

	TYPE_ENUM

TYPE_SFIXED32

TYPE_SFIXED64
TYPE_SINT32
TYPE_SINT64"C
Label
LABEL_OPTIONAL
LABEL_REQUIRED
LABEL_REPEATED"T
OneofDescriptorProto
name (	.
options (2.google.protobuf.OneofOptions"�
EnumDescriptorProto
name (	8
value (2).google.protobuf.EnumValueDescriptorProto-
options (2.google.protobuf.EnumOptionsN
reserved_range (26.google.protobuf.EnumDescriptorProto.EnumReservedRange

reserved_name (	/
EnumReservedRange
start (
end ("l
EnumValueDescriptorProto
name (	
number (2
options (2!.google.protobuf.EnumValueOptions"�
ServiceDescriptorProto
name (	6
method (2&.google.protobuf.MethodDescriptorProto0
options (2.google.protobuf.ServiceOptions"�
MethodDescriptorProto
name (	

input_type (	
output_type (	/
options (2.google.protobuf.MethodOptions
client_streaming (:false
server_streaming (:false"�
FileOptions
java_package (	
java_outer_classname (	"
java_multiple_files
 (:false)
java_generate_equals_and_hash (B%
java_string_check_utf8 (:falseF
optimize_for	 (2).google.protobuf.FileOptions.OptimizeMode:SPEED

go_package (	"
cc_generic_services (:false$
java_generic_services (:false"
py_generic_services (:false#
php_generic_services* (:false

deprecated (:false
cc_enable_arenas (:false
objc_class_prefix$ (	
csharp_namespace% (	
swift_prefix' (	
php_class_prefix( (	

php_namespace) (	C
uninterpreted_option� (2$.google.protobuf.UninterpretedOption":
OptimizeMode	
SPEED
	CODE_SIZE
LITE_RUNTIME*	�����J&'"�
MessageOptions&
message_set_wire_format (:false.
no_standard_descriptor_accessor (:false

deprecated (:false
	map_entry (C
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����J	J	
"�
FieldOptions:
ctype (2#.google.protobuf.FieldOptions.CType:STRING
packed (?
jstype (2$.google.protobuf.FieldOptions.JSType:	JS_NORMAL
lazy (:false

deprecated (:false
weak
 (:falseC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption"/
CType

STRING
CORD
STRING_PIECE"5
JSType
	JS_NORMAL
	JS_STRING
	JS_NUMBER*	�����J"^
OneofOptionsC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"�
EnumOptions
allow_alias (

deprecated (:falseC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����J"}
EnumValueOptions

deprecated (:falseC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"{
ServiceOptions

deprecated! (:falseC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"�

MethodOptions

deprecated! (:false_
idempotency_level" (2/.google.protobuf.MethodOptions.IdempotencyLevel:IDEMPOTENCY_UNKNOWNC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption"P
IdempotencyLevel
IDEMPOTENCY_UNKNOWN
NO_SIDE_EFFECTS

IDEMPOTENT*	�����"�
UninterpretedOption;
name (2-.google.protobuf.UninterpretedOption.NamePart
identifier_value (	
positive_int_value (
negative_int_value (
double_value (
string_value (
aggregate_value (	3
NamePart
	name_part (	
is_extension ("�
SourceCodeInfo:
location (2(.google.protobuf.SourceCodeInfo.Location�
Location
path (B
span (B
leading_comments (	
trailing_comments (	!
leading_detached_comments (	"�
GeneratedCodeInfoA

annotation (2-.google.protobuf.GeneratedCodeInfo.AnnotationO

Annotation
path (B
source_file (	
begin (
end (B�
com.google.protobufBDescriptorProtosHZ>github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor��GPB�Google.Protobuf.ReflectiontTypet	full_names)google.protobuf.FieldDescriptorProto.TypetfilenametfiletvaluestTYPE_DOUBLEtindextnumberitoptionsttypet
TYPE_FLOATit
TYPE_INT64tTYPE_UINT64it
TYPE_INT32itTYPE_FIXED64itTYPE_FIXED32it	TYPE_BOOLitTYPE_STRINGi	t
TYPE_GROUPi
tTYPE_MESSAGEit
TYPE_BYTESitTYPE_UINT32i
t	TYPE_ENUMit
TYPE_SFIXED32it
TYPE_SFIXED64itTYPE_SINT32itTYPE_SINT64itcontaining_typetserialized_starti�tserialized_endi�tLabels*google.protobuf.FieldDescriptorProto.LabeltLABEL_OPTIONALtLABEL_REQUIREDtLABEL_REPEATEDi�i.tOptimizeModes(google.protobuf.FileOptions.OptimizeModetSPEEDt	CODE_SIZEtLITE_RUNTIMEiiRtCTypes"google.protobuf.FieldOptions.CTypetSTRINGtCORDtSTRING_PIECEi�i�tJSTypes#google.protobuf.FieldOptions.JSTypet	JS_NORMALt	JS_STRINGt	JS_NUMBERi�i�tIdempotencyLevels.google.protobuf.MethodOptions.IdempotencyLeveltIDEMPOTENCY_UNKNOWNtNO_SIDE_EFFECTSt
IDEMPOTENTi�itFileDescriptorSets!google.protobuf.FileDescriptorSettfieldss&google.protobuf.FileDescriptorSet.filetcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi5i|tFileDescriptorProtos#google.protobuf.FileDescriptorProtos(google.protobuf.FileDescriptorProto.nameRsutf-8s+google.protobuf.FileDescriptorProto.packaget
dependencys.google.protobuf.FileDescriptorProto.dependencytpublic_dependencys5google.protobuf.FileDescriptorProto.public_dependencytweak_dependencys3google.protobuf.FileDescriptorProto.weak_dependencys0google.protobuf.FileDescriptorProto.message_types-google.protobuf.FileDescriptorProto.enum_typetservices+google.protobuf.FileDescriptorProto.servicet	extensions-google.protobuf.FileDescriptorProto.extensions+google.protobuf.FileDescriptorProto.optionstsource_code_infos4google.protobuf.FileDescriptorProto.source_code_infos*google.protobuf.FileDescriptorProto.syntaxiiZtExtensionRanges.google.protobuf.DescriptorProto.ExtensionRangetstarts4google.protobuf.DescriptorProto.ExtensionRange.starttends2google.protobuf.DescriptorProto.ExtensionRange.ends6google.protobuf.DescriptorProto.ExtensionRange.optionsiti�t
ReservedRanges-google.protobuf.DescriptorProto.ReservedRanges3google.protobuf.DescriptorProto.ReservedRange.starts1google.protobuf.DescriptorProto.ReservedRange.endi�itDescriptorProtosgoogle.protobuf.DescriptorProtos$google.protobuf.DescriptorProto.nametfields%google.protobuf.DescriptorProto.fields)google.protobuf.DescriptorProto.extensiontnested_types+google.protobuf.DescriptorProto.nested_types)google.protobuf.DescriptorProto.enum_typetextension_ranges/google.protobuf.DescriptorProto.extension_ranget
oneof_decls*google.protobuf.DescriptorProto.oneof_decls'google.protobuf.DescriptorProto.optionstreserved_ranges.google.protobuf.DescriptorProto.reserved_ranget
reserved_names-google.protobuf.DescriptorProto.reserved_namei]tExtensionRangeOptionss%google.protobuf.ExtensionRangeOptionstuninterpreted_options:google.protobuf.ExtensionRangeOptions.uninterpreted_optioni�i�i iiotFieldDescriptorProtos$google.protobuf.FieldDescriptorProtos)google.protobuf.FieldDescriptorProto.names+google.protobuf.FieldDescriptorProto.numbers*google.protobuf.FieldDescriptorProto.labels)google.protobuf.FieldDescriptorProto.typet	type_names.google.protobuf.FieldDescriptorProto.type_nametextendees-google.protobuf.FieldDescriptorProto.extendees2google.protobuf.FieldDescriptorProto.default_valuetoneof_indexs0google.protobuf.FieldDescriptorProto.oneof_indext	json_names.google.protobuf.FieldDescriptorProto.json_names,google.protobuf.FieldDescriptorProto.optionsirtOneofDescriptorProtos$google.protobuf.OneofDescriptorProtos)google.protobuf.OneofDescriptorProto.names,google.protobuf.OneofDescriptorProto.optionsi0i�tEnumReservedRanges5google.protobuf.EnumDescriptorProto.EnumReservedRanges;google.protobuf.EnumDescriptorProto.EnumReservedRange.starts9google.protobuf.EnumDescriptorProto.EnumReservedRange.endi|	i�	tEnumDescriptorProtos#google.protobuf.EnumDescriptorProtos(google.protobuf.EnumDescriptorProto.nametvalues)google.protobuf.EnumDescriptorProto.values+google.protobuf.EnumDescriptorProto.optionss2google.protobuf.EnumDescriptorProto.reserved_ranges1google.protobuf.EnumDescriptorProto.reserved_namei�tEnumValueDescriptorProtos(google.protobuf.EnumValueDescriptorProtos-google.protobuf.EnumValueDescriptorProto.names/google.protobuf.EnumValueDescriptorProto.numbers0google.protobuf.EnumValueDescriptorProto.optionsi�	i
tServiceDescriptorProtos&google.protobuf.ServiceDescriptorProtos+google.protobuf.ServiceDescriptorProto.nametmethods-google.protobuf.ServiceDescriptorProto.methods.google.protobuf.ServiceDescriptorProto.optionsi
i�
tMethodDescriptorProtos%google.protobuf.MethodDescriptorProtos*google.protobuf.MethodDescriptorProto.namet
input_types0google.protobuf.MethodDescriptorProto.input_typetoutput_types1google.protobuf.MethodDescriptorProto.output_types-google.protobuf.MethodDescriptorProto.optionstclient_streamings6google.protobuf.MethodDescriptorProto.client_streamingtserver_streamings6google.protobuf.MethodDescriptorProto.server_streamingi�
iptFileOptionssgoogle.protobuf.FileOptionstjava_packages(google.protobuf.FileOptions.java_packagetjava_outer_classnames0google.protobuf.FileOptions.java_outer_classnametjava_multiple_filess/google.protobuf.FileOptions.java_multiple_filestjava_generate_equals_and_hashs9google.protobuf.FileOptions.java_generate_equals_and_hashitjava_string_check_utf8s2google.protobuf.FileOptions.java_string_check_utf8itoptimize_fors(google.protobuf.FileOptions.optimize_fort
go_packages&google.protobuf.FileOptions.go_packagetcc_generic_servicess/google.protobuf.FileOptions.cc_generic_servicestjava_generic_servicess1google.protobuf.FileOptions.java_generic_servicestpy_generic_servicess/google.protobuf.FileOptions.py_generic_servicestphp_generic_servicess0google.protobuf.FileOptions.php_generic_servicesi*t
deprecateds&google.protobuf.FileOptions.deprecateditcc_enable_arenass,google.protobuf.FileOptions.cc_enable_arenasitobjc_class_prefixs-google.protobuf.FileOptions.objc_class_prefixi$tcsharp_namespaces,google.protobuf.FileOptions.csharp_namespacei%tswift_prefixs(google.protobuf.FileOptions.swift_prefixi'tphp_class_prefixs,google.protobuf.FileOptions.php_class_prefixi(t
php_namespaces)google.protobuf.FileOptions.php_namespacei)s0google.protobuf.FileOptions.uninterpreted_optionisictMessageOptionssgoogle.protobuf.MessageOptionstmessage_set_wire_formats6google.protobuf.MessageOptions.message_set_wire_formattno_standard_descriptor_accessors>google.protobuf.MessageOptions.no_standard_descriptor_accessors)google.protobuf.MessageOptions.deprecatedt	map_entrys(google.protobuf.MessageOptions.map_entrys3google.protobuf.MessageOptions.uninterpreted_optionifiXtFieldOptionssgoogle.protobuf.FieldOptionstctypes"google.protobuf.FieldOptions.ctypetpackeds#google.protobuf.FieldOptions.packedtjstypes#google.protobuf.FieldOptions.jstypetlazys!google.protobuf.FieldOptions.lazys'google.protobuf.FieldOptions.deprecatedtweaks!google.protobuf.FieldOptions.weaks1google.protobuf.FieldOptions.uninterpreted_optioni[i�tOneofOptionssgoogle.protobuf.OneofOptionss1google.protobuf.OneofOptions.uninterpreted_optioni�iYtEnumOptionssgoogle.protobuf.EnumOptionstallow_aliass'google.protobuf.EnumOptions.allow_aliass&google.protobuf.EnumOptions.deprecateds0google.protobuf.EnumOptions.uninterpreted_optioni\i�tEnumValueOptionss google.protobuf.EnumValueOptionss+google.protobuf.EnumValueOptions.deprecateds5google.protobuf.EnumValueOptions.uninterpreted_optioni�intServiceOptionssgoogle.protobuf.ServiceOptionss)google.protobuf.ServiceOptions.deprecatedi!s3google.protobuf.ServiceOptions.uninterpreted_optionipi�t
MethodOptionssgoogle.protobuf.MethodOptionss(google.protobuf.MethodOptions.deprecatedtidempotency_levels/google.protobuf.MethodOptions.idempotency_leveli"s2google.protobuf.MethodOptions.uninterpreted_optioni�itNameParts,google.protobuf.UninterpretedOption.NamePartt	name_parts6google.protobuf.UninterpretedOption.NamePart.name_parts9google.protobuf.UninterpretedOption.NamePart.is_extensioni	i<tUninterpretedOptions#google.protobuf.UninterpretedOptions(google.protobuf.UninterpretedOption.nametidentifier_values4google.protobuf.UninterpretedOption.identifier_valuetpositive_int_values6google.protobuf.UninterpretedOption.positive_int_valuetnegative_int_values6google.protobuf.UninterpretedOption.negative_int_valuetdouble_values0google.protobuf.UninterpretedOption.double_valuetstring_values0google.protobuf.UninterpretedOption.string_valuetaggregate_values3google.protobuf.UninterpretedOption.aggregate_valueitLocations'google.protobuf.SourceCodeInfo.Locationtpaths,google.protobuf.SourceCodeInfo.Location.pathtspans,google.protobuf.SourceCodeInfo.Location.spantleading_commentss8google.protobuf.SourceCodeInfo.Location.leading_commentsttrailing_commentss9google.protobuf.SourceCodeInfo.Location.trailing_commentstleading_detached_commentssAgoogle.protobuf.SourceCodeInfo.Location.leading_detached_commentsi�itSourceCodeInfosgoogle.protobuf.SourceCodeInfotlocations'google.protobuf.SourceCodeInfo.locationi?t
Annotations,google.protobuf.GeneratedCodeInfo.Annotations1google.protobuf.GeneratedCodeInfo.Annotation.pathtsource_files8google.protobuf.GeneratedCodeInfo.Annotation.source_filetbegins2google.protobuf.GeneratedCodeInfo.Annotation.begins0google.protobuf.GeneratedCodeInfo.Annotation.endioi�tGeneratedCodeInfos!google.protobuf.GeneratedCodeInfot
annotations,google.protobuf.GeneratedCodeInfo.annotationit
DESCRIPTORt
__module__sgoogle.protobuf.descriptor_pb2(i�i (i�i (i�i (i�i (i�i (i�i (i�i (i�i (i�i (`tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databasetDefaultt_sym_dbtFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_FIELDDESCRIPTORPROTO_TYPEtRegisterEnumDescriptort_FIELDDESCRIPTORPROTO_LABELt_FILEOPTIONS_OPTIMIZEMODEt_FIELDOPTIONS_CTYPEt_FIELDOPTIONS_JSTYPEt_METHODOPTIONS_IDEMPOTENCYLEVELt
DescriptortFieldDescriptortFalset_FILEDESCRIPTORSETtdecodet_FILEDESCRIPTORPROTOt_DESCRIPTORPROTO_EXTENSIONRANGEt_DESCRIPTORPROTO_RESERVEDRANGEt_DESCRIPTORPROTOtTruet_EXTENSIONRANGEOPTIONSt_FIELDDESCRIPTORPROTOt_ONEOFDESCRIPTORPROTOt&_ENUMDESCRIPTORPROTO_ENUMRESERVEDRANGEt_ENUMDESCRIPTORPROTOt_ENUMVALUEDESCRIPTORPROTOt_SERVICEDESCRIPTORPROTOt_METHODDESCRIPTORPROTOt_FILEOPTIONSt_MESSAGEOPTIONSt
_FIELDOPTIONSt
_ONEOFOPTIONSt_ENUMOPTIONSt_ENUMVALUEOPTIONSt_SERVICEOPTIONSt_METHODOPTIONSt_UNINTERPRETEDOPTION_NAMEPARTtfloatt_UNINTERPRETEDOPTIONt_SOURCECODEINFO_LOCATIONt_SOURCECODEINFOt_GENERATEDCODEINFO_ANNOTATIONt_GENERATEDCODEINFOtfields_by_nameRFR)RGtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR@tRegisterMessageRPR[RWRZRbRdRiRkRjRmRnRpRuR�R�R�R�R�R�R�R�R�R�R�R�R�(((sB/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pb2.pyt<module>s
%																					
					
					
					
					
					
																																																																																																																																																																																																													










































PK�\�Ha�F�F�protobuf/descriptor_pb2.pyonu�[����
���hc?@s QddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zej�Z
ejd
ddd
ddded��Zejd
ddddddedejd
ddddddddd�ejd
ddddddddd�ejd
d dddddddd�ejd
d!dddd"dddd�ejd
d#dd"dd$dddd�ejd
d%dd$dd&dddd�ejd
d'dd&dd(dddd�ejd
d)dd(dd*dddd�ejd
d+dd*dd,dddd�ejd
d-dd,dd.dddd�ejd
d/dd.dd0dddd�ejd
d1dd0dd2dddd�ejd
d3dd2dd4dddd�ejd
d5dd4dd6dddd�ejd
d7dd6dd8dddd�ejd
d9dd8dd:dddd�ejd
d;dd:dd<dddd�ejd
d=dd<dd>dddd�gd?dddd@dAdBdC�	Ze
je�ejd
dDddEdddedejd
dFdddddddd�ejd
dGdddddddd�ejd
dHdddddddd�gd?dddd@dIdBdJ�	Ze
je�ejd
dKddLdddedejd
dMdddddddd�ejd
dNdddddddd�ejd
dOdddddddd�gd?dddd@dPdBdQ�	Ze
je�ejd
dRddSdddedejd
dTdddddddd�ejd
dUdddddddd�ejd
dVdddddddd�gd?dddd@dWdBdX�	Ze
je�ejd
dYddZdddedejd
d[dddddddd�ejd
d\dddddddd�ejd
d]dddddddd�gd?dddd@d^dBd_�	Ze
je�ejd
d`ddadddedejd
dbdddddddd�ejd
dcdddddddd�ejd
dddddddddd�gd?dddd@dedBdf�	Ze
je�ejd
dgddhddded?ddiejd
dddjdddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@dydBdz�Zejd
d{dd|ddded?ddiejd
d
dd}dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd,dkd,dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddd.dd$dkddlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd"dd0dd$dkddlddmedngdoddpdd?ddqedrdddde�ejd
dodd�dd$dd"dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
dpdd�dd&dd$dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd(dd&dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd*dd(dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
ddd�dd,dd*dd0dkd.dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd.dd,dd0dkd.dlddmednddoddpdd?ddqedrdddde�ejd
ddd�dd0dd2dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Zejd
d�dd�ddded?ddiejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
ddd�dddddd0dkd.dlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z ejd
d�dd�ddded?ddiejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z!ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddd&dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
dpdd�dd"dd"dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd$dd$dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd&dd*dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
ddd�dd(dd(dd0dkd.dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd*dd,dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd,dd.dd,dkd,dlddmedngdoddpdd?ddqedrdddde�g
dsgdte e!gdugdddvedddwgdxgd@d�dBd��Z"ejd
d�dd�ddded?ddiejd
d�dd�dddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@d�dBd��Z$ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
dldd�dddd"dd6dkd*dlddmednddoddpdd?ddqedrdddde�ejd
ddd�dddd$dd6dkd*dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd"dd&dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dd$dddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
dndd�dd&dd(dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dd(dd,dd$dkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd*dd.dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dd,dd*dd0dkd.dlddmednddoddpdd?ddqedrdddde�g
dsgdtgdueegdddvedddwgdxgd@d�dBdJ�Z%ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddddd0dkd.dlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z&ejd
d�dd�ddded?ddiejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z'ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
ddd�dddddd0dkd.dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddd"dd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dd"dd$dd,dkd,dlddmedngdoddpdd?ddqedrdddde�gdsgdte'gdugdddvedddwgdxgd@d�dBd��Z(ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
ddd�dddddd0dkd.dlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z)ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
ddd�dddddd0dkd.dlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z*ejd
d�dd�ddded?ddiejd
d
dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddd"dd0dkd.dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd"dd$dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d�dd�dd$dd&dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd�Z+ejd
dddddded?ddiejd
ddddddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddddddd*dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddddddd.dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d	dd
dddddd*dkd(dlddmednedoddpdd?ddqedrdddde�ejd
ddd
dd"dddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddddd$dd,dd6dkd*dlddme#dnddoddpdd?ddqedrdddde�ejd
ddddd&dd0dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddddd(dd:dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddddd*dd<dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddddd,dd>dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddddd.dddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddddd0dddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddd dd2dd!dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d"dd#dd4dd$dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d%dd&dd6dd'dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d(dd)dd8dd*dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d+dd,dd:dd-dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d.dd/dd<dd0dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd1dd>dd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgduegdddve#dddwd�gdxgd@d2dBd3�Z,ejd
d4dd5ddded?ddiejd
d6dd7dddddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d8dd9dddddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
ddd:dddddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d;dd<dddd(dd*dkd(dlddmednedoddpdd?ddqedrdddde�ejd
d�dd=dd"dd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@d>dBd?�Z-ejd
d@ddAddded?ddiejd
dBddCdddddd6dkd*dlddme#dnddoddpdd?ddqedrdddde�ejd
dDddEdddddd*dkd(dlddmednedoddpdd?ddqedrdddde�ejd
dFddGdddd&dd6dkd*dlddme#dnddoddpdd?ddqedrdddde�ejd
dHddIdddd$dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
dddJdd"dddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
dKddLdd$dd.dd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d�ddMdd&dd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdueegdddve#dddwd�gdxgd@dNdBdO�Z.ejd
dPddQddded?ddiejd
d�ddRdddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@dSdBdT�Z/ejd
dUddVddded?ddiejd
dWddXdddddd*dkd(dlddmednedoddpdd?ddqedrdddde�ejd
dddYdddddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d�ddZdddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@d[dBd\�Z0ejd
d]dd^ddded?ddiejd
ddd_dddddd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d�dd`dddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@dadBdb�Z1ejd
dcdddddded?ddiejd
dddeddddfdd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
d�ddgdddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddve#dddwd�gdxgd@dhdBdi�Z2ejd
djddkddded?ddiejd
dddlddddfdd*dkd(dlddme#dnedoddpdd?ddqedrdddde�ejd
dmddnddddodd6dkd*dlddme#dnddoddpdd?ddqedrdddde�ejd
d�ddpdddd�dd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdtgduegdddve#dddwd�gdxgd@dqdBdr�Z3ejd
dsddtddded?ddiejd
duddvdddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
dqddwdddddd*dkd(dlddmednedoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@dxdBdy�Z4ejd
dzdd{ddded?ddiejd
d
dd|dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�ejd
d}dd~dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
ddd�dddd"dd"dkd"dlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddd$dddkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dd"dd&dddkd$dlddmedne5d�doddpdd?ddqedrdddde�ejd
d�dd�dd$dd(dd2dkd,dlddmedned~�doddpdd?ddqedrdddde�ejd
d�dd�dd&dd*dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�gdsgdte4gdugdddvedddwgdxgd@d�dBdy�Z6ejd
d�dd�ddded?ddiejd
d�dd�dddddd$dkddlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddddd$dkddlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddd"dd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dd"dd&dd,dkd,dlddmedngdoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z7ejd
d�dd�ddded?ddiejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdte7gdugdddvedddwgdxgd@d�dBd��Z8ejd
d�dd�ddded?ddiejd
d�dd�dddddd$dkddlddmedngdoddpdd?ddqedrdddde�ejd
d�dd�dddddd,dkd,dlddmedned~�jd�doddpdd?ddqedrdddde�ejd
d�dd�dddddd$dkddlddmednddoddpdd?ddqedrdddde�ejd
d�dd�dddd"dd$dkddlddmednddoddpdd?ddqedrdddde�gdsgdtgdugdddvedddwgdxgd@d�dBd��Z9ejd
d�dd�ddded?ddiejd
d�dd�dddddd0dkd.dlddmedngdoddpdd?ddqedrdddde�gdsgdte9gdugdddvedddwgdxgd@d�dBd��Z:eej;d_<e"ej;do_<e(ej;dp_<e*ej;d�_<e%ej;d�_<e,ej;d_<e8ej;d�_<e$e j;d_<e"e _=e"e!_=e%e"j;d�_<e%e"j;d�_<e"e"j;d�_<e(e"j;dp_<e e"j;d�_<e&e"j;d�_<e-e"j;d_<e!e"j;d�_<e6e$j;d�_<ee%j;dl_>ee%j;d_>e.e%j;d_<e%e_=e%e_=e/e&j;d_<e(e'_=e)e(j;d�_<e0e(j;d_<e'e(j;d�_<e1e)j;d_<e+e*j;d�_<e2e*j;d_<e3e+j;d_<ee,j;d_>e6e,j;d�_<e,e_=e6e-j;d�_<ee.j;dB_>ee.j;dF_>e6e.j;d�_<e.e_=e.e_=e6e/j;d�_<e6e0j;d�_<e6e1j;d�_<e6e2j;d�_<ee3j;dm_>e6e3j;d�_<e3e_=e6e4_=e4e6j;d
_<e8e7_=e7e8j;d�_<e:e9_=e9e:j;d�_<eej?dg<eej?d{<e"ej?d�<e$ej?d�<e%ej?d�<e&ej?d�<e(ej?d�<e)ej?d�<e*ej?d�<e+ej?d�<e,ej?d<e-ej?d4<e.ej?d@<e/ej?dP<e0ej?dU<e1ej?d]<e2ej?dc<e3ej?dj<e6ej?dz<e8ej?d�<e:ej?d�<e
j@e�e	jAdgejBfeCd�ed�d���ZDe
jEeD�e	jAd{ejBfeCd�ed�d���ZFe
jEeF�e	jAd�ejBfeCd�e	jAd�ejBfeCd�e d�d���d�e	jAd�ejBfeCd�e!d�d���d�e"d�d���ZGe
jEeG�e
jEeGjH�e
jEeGjI�e	jAd�ejBfeCd�e$d�d���ZJe
jEeJ�e	jAd�ejBfeCd�e%d�d���ZKe
jEeK�e	jAd�ejBfeCd�e&d�d���ZLe
jEeL�e	jAd�ejBfeCd�e	jAd�ejBfeCd�e'd�d���d�e(d�d���ZMe
jEeM�e
jEeMjN�e	jAd�ejBfeCd�e)d�d���ZOe
jEeO�e	jAd�ejBfeCd�e*d�d���ZPe
jEeP�e	jAd�ejBfeCd�e+d�d���ZQe
jEeQ�e	jAdejBfeCd�e,d�d���ZRe
jEeR�e	jAd4ejBfeCd�e-d�d���ZSe
jEeS�e	jAd@ejBfeCd�e.d�d���ZTe
jEeT�e	jAdPejBfeCd�e/d�d���ZUe
jEeU�e	jAdUejBfeCd�e0d�d���ZVe
jEeV�e	jAd]ejBfeCd�e1d�d���ZWe
jEeW�e	jAdcejBfeCd�e2d�d���ZXe
jEeX�e	jAdjejBfeCd�e3d�d���ZYe
jEeY�e	jAdzejBfeCdse	jAdsejBfeCd�e4d�d���d�e6d�d���ZZe
jEeZ�e
jEeZj[�e	jAd�ejBfeCd�e	jAd�ejBfeCd�e7d�d���d�e8d�d���Z\e
jEe\�e
jEe\j]�e	jAd�ejBfeCd�e	jAd�ejBfeCd�e9d�d���d�e:d�d���Z^e
jEe^�e
jEe^j_�dS(�i����NiicCs|S(N((tx((sB/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sB/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_databasetnames google/protobuf/descriptor.prototpackagesgoogle.protobuftsyntaxtproto2t
serialized_pbsP
 google/protobuf/descriptor.protogoogle.protobuf"G
FileDescriptorSet2
file (2$.google.protobuf.FileDescriptorProto"�
FileDescriptorProto
name (	
package (	

dependency (	
public_dependency
 (
weak_dependency (6
message_type (2 .google.protobuf.DescriptorProto7
	enum_type (2$.google.protobuf.EnumDescriptorProto8
service (2'.google.protobuf.ServiceDescriptorProto8
	extension (2%.google.protobuf.FieldDescriptorProto-
options (2.google.protobuf.FileOptions9
source_code_info	 (2.google.protobuf.SourceCodeInfo
syntax (	"�
DescriptorProto
name (	4
field (2%.google.protobuf.FieldDescriptorProto8
	extension (2%.google.protobuf.FieldDescriptorProto5
nested_type (2 .google.protobuf.DescriptorProto7
	enum_type (2$.google.protobuf.EnumDescriptorProtoH
extension_range (2/.google.protobuf.DescriptorProto.ExtensionRange9

oneof_decl (2%.google.protobuf.OneofDescriptorProto0
options (2.google.protobuf.MessageOptionsF
reserved_range	 (2..google.protobuf.DescriptorProto.ReservedRange

reserved_name
 (	e
ExtensionRange
start (
end (7
options (2&.google.protobuf.ExtensionRangeOptions+

ReservedRange
start (
end ("g
ExtensionRangeOptionsC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"�
FieldDescriptorProto
name (	
number (:
label (2+.google.protobuf.FieldDescriptorProto.Label8
type (2*.google.protobuf.FieldDescriptorProto.Type
	type_name (	
extendee (	

default_value (	
oneof_index	 (
	json_name
 (	.
options (2.google.protobuf.FieldOptions"�
Type
TYPE_DOUBLE

TYPE_FLOAT

TYPE_INT64
TYPE_UINT64

TYPE_INT32
TYPE_FIXED64
TYPE_FIXED32
	TYPE_BOOL
TYPE_STRING	

TYPE_GROUP

TYPE_MESSAGE

TYPE_BYTES
TYPE_UINT32

	TYPE_ENUM

TYPE_SFIXED32

TYPE_SFIXED64
TYPE_SINT32
TYPE_SINT64"C
Label
LABEL_OPTIONAL
LABEL_REQUIRED
LABEL_REPEATED"T
OneofDescriptorProto
name (	.
options (2.google.protobuf.OneofOptions"�
EnumDescriptorProto
name (	8
value (2).google.protobuf.EnumValueDescriptorProto-
options (2.google.protobuf.EnumOptionsN
reserved_range (26.google.protobuf.EnumDescriptorProto.EnumReservedRange

reserved_name (	/
EnumReservedRange
start (
end ("l
EnumValueDescriptorProto
name (	
number (2
options (2!.google.protobuf.EnumValueOptions"�
ServiceDescriptorProto
name (	6
method (2&.google.protobuf.MethodDescriptorProto0
options (2.google.protobuf.ServiceOptions"�
MethodDescriptorProto
name (	

input_type (	
output_type (	/
options (2.google.protobuf.MethodOptions
client_streaming (:false
server_streaming (:false"�
FileOptions
java_package (	
java_outer_classname (	"
java_multiple_files
 (:false)
java_generate_equals_and_hash (B%
java_string_check_utf8 (:falseF
optimize_for	 (2).google.protobuf.FileOptions.OptimizeMode:SPEED

go_package (	"
cc_generic_services (:false$
java_generic_services (:false"
py_generic_services (:false#
php_generic_services* (:false

deprecated (:false
cc_enable_arenas (:false
objc_class_prefix$ (	
csharp_namespace% (	
swift_prefix' (	
php_class_prefix( (	

php_namespace) (	C
uninterpreted_option� (2$.google.protobuf.UninterpretedOption":
OptimizeMode	
SPEED
	CODE_SIZE
LITE_RUNTIME*	�����J&'"�
MessageOptions&
message_set_wire_format (:false.
no_standard_descriptor_accessor (:false

deprecated (:false
	map_entry (C
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����J	J	
"�
FieldOptions:
ctype (2#.google.protobuf.FieldOptions.CType:STRING
packed (?
jstype (2$.google.protobuf.FieldOptions.JSType:	JS_NORMAL
lazy (:false

deprecated (:false
weak
 (:falseC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption"/
CType

STRING
CORD
STRING_PIECE"5
JSType
	JS_NORMAL
	JS_STRING
	JS_NUMBER*	�����J"^
OneofOptionsC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"�
EnumOptions
allow_alias (

deprecated (:falseC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����J"}
EnumValueOptions

deprecated (:falseC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"{
ServiceOptions

deprecated! (:falseC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"�

MethodOptions

deprecated! (:false_
idempotency_level" (2/.google.protobuf.MethodOptions.IdempotencyLevel:IDEMPOTENCY_UNKNOWNC
uninterpreted_option� (2$.google.protobuf.UninterpretedOption"P
IdempotencyLevel
IDEMPOTENCY_UNKNOWN
NO_SIDE_EFFECTS

IDEMPOTENT*	�����"�
UninterpretedOption;
name (2-.google.protobuf.UninterpretedOption.NamePart
identifier_value (	
positive_int_value (
negative_int_value (
double_value (
string_value (
aggregate_value (	3
NamePart
	name_part (	
is_extension ("�
SourceCodeInfo:
location (2(.google.protobuf.SourceCodeInfo.Location�
Location
path (B
span (B
leading_comments (	
trailing_comments (	!
leading_detached_comments (	"�
GeneratedCodeInfoA

annotation (2-.google.protobuf.GeneratedCodeInfo.AnnotationO

Annotation
path (B
source_file (	
begin (
end (B�
com.google.protobufBDescriptorProtosHZ>github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor��GPB�Google.Protobuf.ReflectiontTypet	full_names)google.protobuf.FieldDescriptorProto.TypetfilenametfiletvaluestTYPE_DOUBLEtindextnumberitoptionsttypet
TYPE_FLOATit
TYPE_INT64tTYPE_UINT64it
TYPE_INT32itTYPE_FIXED64itTYPE_FIXED32it	TYPE_BOOLitTYPE_STRINGi	t
TYPE_GROUPi
tTYPE_MESSAGEit
TYPE_BYTESitTYPE_UINT32i
t	TYPE_ENUMit
TYPE_SFIXED32it
TYPE_SFIXED64itTYPE_SINT32itTYPE_SINT64itcontaining_typetserialized_starti�tserialized_endi�tLabels*google.protobuf.FieldDescriptorProto.LabeltLABEL_OPTIONALtLABEL_REQUIREDtLABEL_REPEATEDi�i.tOptimizeModes(google.protobuf.FileOptions.OptimizeModetSPEEDt	CODE_SIZEtLITE_RUNTIMEiiRtCTypes"google.protobuf.FieldOptions.CTypetSTRINGtCORDtSTRING_PIECEi�i�tJSTypes#google.protobuf.FieldOptions.JSTypet	JS_NORMALt	JS_STRINGt	JS_NUMBERi�i�tIdempotencyLevels.google.protobuf.MethodOptions.IdempotencyLeveltIDEMPOTENCY_UNKNOWNtNO_SIDE_EFFECTSt
IDEMPOTENTi�itFileDescriptorSets!google.protobuf.FileDescriptorSettfieldss&google.protobuf.FileDescriptorSet.filetcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi5i|tFileDescriptorProtos#google.protobuf.FileDescriptorProtos(google.protobuf.FileDescriptorProto.nameRsutf-8s+google.protobuf.FileDescriptorProto.packaget
dependencys.google.protobuf.FileDescriptorProto.dependencytpublic_dependencys5google.protobuf.FileDescriptorProto.public_dependencytweak_dependencys3google.protobuf.FileDescriptorProto.weak_dependencys0google.protobuf.FileDescriptorProto.message_types-google.protobuf.FileDescriptorProto.enum_typetservices+google.protobuf.FileDescriptorProto.servicet	extensions-google.protobuf.FileDescriptorProto.extensions+google.protobuf.FileDescriptorProto.optionstsource_code_infos4google.protobuf.FileDescriptorProto.source_code_infos*google.protobuf.FileDescriptorProto.syntaxiiZtExtensionRanges.google.protobuf.DescriptorProto.ExtensionRangetstarts4google.protobuf.DescriptorProto.ExtensionRange.starttends2google.protobuf.DescriptorProto.ExtensionRange.ends6google.protobuf.DescriptorProto.ExtensionRange.optionsiti�t
ReservedRanges-google.protobuf.DescriptorProto.ReservedRanges3google.protobuf.DescriptorProto.ReservedRange.starts1google.protobuf.DescriptorProto.ReservedRange.endi�itDescriptorProtosgoogle.protobuf.DescriptorProtos$google.protobuf.DescriptorProto.nametfields%google.protobuf.DescriptorProto.fields)google.protobuf.DescriptorProto.extensiontnested_types+google.protobuf.DescriptorProto.nested_types)google.protobuf.DescriptorProto.enum_typetextension_ranges/google.protobuf.DescriptorProto.extension_ranget
oneof_decls*google.protobuf.DescriptorProto.oneof_decls'google.protobuf.DescriptorProto.optionstreserved_ranges.google.protobuf.DescriptorProto.reserved_ranget
reserved_names-google.protobuf.DescriptorProto.reserved_namei]tExtensionRangeOptionss%google.protobuf.ExtensionRangeOptionstuninterpreted_options:google.protobuf.ExtensionRangeOptions.uninterpreted_optioni�i�i iiotFieldDescriptorProtos$google.protobuf.FieldDescriptorProtos)google.protobuf.FieldDescriptorProto.names+google.protobuf.FieldDescriptorProto.numbers*google.protobuf.FieldDescriptorProto.labels)google.protobuf.FieldDescriptorProto.typet	type_names.google.protobuf.FieldDescriptorProto.type_nametextendees-google.protobuf.FieldDescriptorProto.extendees2google.protobuf.FieldDescriptorProto.default_valuetoneof_indexs0google.protobuf.FieldDescriptorProto.oneof_indext	json_names.google.protobuf.FieldDescriptorProto.json_names,google.protobuf.FieldDescriptorProto.optionsirtOneofDescriptorProtos$google.protobuf.OneofDescriptorProtos)google.protobuf.OneofDescriptorProto.names,google.protobuf.OneofDescriptorProto.optionsi0i�tEnumReservedRanges5google.protobuf.EnumDescriptorProto.EnumReservedRanges;google.protobuf.EnumDescriptorProto.EnumReservedRange.starts9google.protobuf.EnumDescriptorProto.EnumReservedRange.endi|	i�	tEnumDescriptorProtos#google.protobuf.EnumDescriptorProtos(google.protobuf.EnumDescriptorProto.nametvalues)google.protobuf.EnumDescriptorProto.values+google.protobuf.EnumDescriptorProto.optionss2google.protobuf.EnumDescriptorProto.reserved_ranges1google.protobuf.EnumDescriptorProto.reserved_namei�tEnumValueDescriptorProtos(google.protobuf.EnumValueDescriptorProtos-google.protobuf.EnumValueDescriptorProto.names/google.protobuf.EnumValueDescriptorProto.numbers0google.protobuf.EnumValueDescriptorProto.optionsi�	i
tServiceDescriptorProtos&google.protobuf.ServiceDescriptorProtos+google.protobuf.ServiceDescriptorProto.nametmethods-google.protobuf.ServiceDescriptorProto.methods.google.protobuf.ServiceDescriptorProto.optionsi
i�
tMethodDescriptorProtos%google.protobuf.MethodDescriptorProtos*google.protobuf.MethodDescriptorProto.namet
input_types0google.protobuf.MethodDescriptorProto.input_typetoutput_types1google.protobuf.MethodDescriptorProto.output_types-google.protobuf.MethodDescriptorProto.optionstclient_streamings6google.protobuf.MethodDescriptorProto.client_streamingtserver_streamings6google.protobuf.MethodDescriptorProto.server_streamingi�
iptFileOptionssgoogle.protobuf.FileOptionstjava_packages(google.protobuf.FileOptions.java_packagetjava_outer_classnames0google.protobuf.FileOptions.java_outer_classnametjava_multiple_filess/google.protobuf.FileOptions.java_multiple_filestjava_generate_equals_and_hashs9google.protobuf.FileOptions.java_generate_equals_and_hashitjava_string_check_utf8s2google.protobuf.FileOptions.java_string_check_utf8itoptimize_fors(google.protobuf.FileOptions.optimize_fort
go_packages&google.protobuf.FileOptions.go_packagetcc_generic_servicess/google.protobuf.FileOptions.cc_generic_servicestjava_generic_servicess1google.protobuf.FileOptions.java_generic_servicestpy_generic_servicess/google.protobuf.FileOptions.py_generic_servicestphp_generic_servicess0google.protobuf.FileOptions.php_generic_servicesi*t
deprecateds&google.protobuf.FileOptions.deprecateditcc_enable_arenass,google.protobuf.FileOptions.cc_enable_arenasitobjc_class_prefixs-google.protobuf.FileOptions.objc_class_prefixi$tcsharp_namespaces,google.protobuf.FileOptions.csharp_namespacei%tswift_prefixs(google.protobuf.FileOptions.swift_prefixi'tphp_class_prefixs,google.protobuf.FileOptions.php_class_prefixi(t
php_namespaces)google.protobuf.FileOptions.php_namespacei)s0google.protobuf.FileOptions.uninterpreted_optionisictMessageOptionssgoogle.protobuf.MessageOptionstmessage_set_wire_formats6google.protobuf.MessageOptions.message_set_wire_formattno_standard_descriptor_accessors>google.protobuf.MessageOptions.no_standard_descriptor_accessors)google.protobuf.MessageOptions.deprecatedt	map_entrys(google.protobuf.MessageOptions.map_entrys3google.protobuf.MessageOptions.uninterpreted_optionifiXtFieldOptionssgoogle.protobuf.FieldOptionstctypes"google.protobuf.FieldOptions.ctypetpackeds#google.protobuf.FieldOptions.packedtjstypes#google.protobuf.FieldOptions.jstypetlazys!google.protobuf.FieldOptions.lazys'google.protobuf.FieldOptions.deprecatedtweaks!google.protobuf.FieldOptions.weaks1google.protobuf.FieldOptions.uninterpreted_optioni[i�tOneofOptionssgoogle.protobuf.OneofOptionss1google.protobuf.OneofOptions.uninterpreted_optioni�iYtEnumOptionssgoogle.protobuf.EnumOptionstallow_aliass'google.protobuf.EnumOptions.allow_aliass&google.protobuf.EnumOptions.deprecateds0google.protobuf.EnumOptions.uninterpreted_optioni\i�tEnumValueOptionss google.protobuf.EnumValueOptionss+google.protobuf.EnumValueOptions.deprecateds5google.protobuf.EnumValueOptions.uninterpreted_optioni�intServiceOptionssgoogle.protobuf.ServiceOptionss)google.protobuf.ServiceOptions.deprecatedi!s3google.protobuf.ServiceOptions.uninterpreted_optionipi�t
MethodOptionssgoogle.protobuf.MethodOptionss(google.protobuf.MethodOptions.deprecatedtidempotency_levels/google.protobuf.MethodOptions.idempotency_leveli"s2google.protobuf.MethodOptions.uninterpreted_optioni�itNameParts,google.protobuf.UninterpretedOption.NamePartt	name_parts6google.protobuf.UninterpretedOption.NamePart.name_parts9google.protobuf.UninterpretedOption.NamePart.is_extensioni	i<tUninterpretedOptions#google.protobuf.UninterpretedOptions(google.protobuf.UninterpretedOption.nametidentifier_values4google.protobuf.UninterpretedOption.identifier_valuetpositive_int_values6google.protobuf.UninterpretedOption.positive_int_valuetnegative_int_values6google.protobuf.UninterpretedOption.negative_int_valuetdouble_values0google.protobuf.UninterpretedOption.double_valuetstring_values0google.protobuf.UninterpretedOption.string_valuetaggregate_values3google.protobuf.UninterpretedOption.aggregate_valueitLocations'google.protobuf.SourceCodeInfo.Locationtpaths,google.protobuf.SourceCodeInfo.Location.pathtspans,google.protobuf.SourceCodeInfo.Location.spantleading_commentss8google.protobuf.SourceCodeInfo.Location.leading_commentsttrailing_commentss9google.protobuf.SourceCodeInfo.Location.trailing_commentstleading_detached_commentssAgoogle.protobuf.SourceCodeInfo.Location.leading_detached_commentsi�itSourceCodeInfosgoogle.protobuf.SourceCodeInfotlocations'google.protobuf.SourceCodeInfo.locationi?t
Annotations,google.protobuf.GeneratedCodeInfo.Annotations1google.protobuf.GeneratedCodeInfo.Annotation.pathtsource_files8google.protobuf.GeneratedCodeInfo.Annotation.source_filetbegins2google.protobuf.GeneratedCodeInfo.Annotation.begins0google.protobuf.GeneratedCodeInfo.Annotation.endioi�tGeneratedCodeInfos!google.protobuf.GeneratedCodeInfot
annotations,google.protobuf.GeneratedCodeInfo.annotationit
DESCRIPTORt
__module__sgoogle.protobuf.descriptor_pb2(i�i (i�i (i�i (i�i (i�i (i�i (i�i (i�i (i�i (`tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databasetDefaultt_sym_dbtFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_FIELDDESCRIPTORPROTO_TYPEtRegisterEnumDescriptort_FIELDDESCRIPTORPROTO_LABELt_FILEOPTIONS_OPTIMIZEMODEt_FIELDOPTIONS_CTYPEt_FIELDOPTIONS_JSTYPEt_METHODOPTIONS_IDEMPOTENCYLEVELt
DescriptortFieldDescriptortFalset_FILEDESCRIPTORSETtdecodet_FILEDESCRIPTORPROTOt_DESCRIPTORPROTO_EXTENSIONRANGEt_DESCRIPTORPROTO_RESERVEDRANGEt_DESCRIPTORPROTOtTruet_EXTENSIONRANGEOPTIONSt_FIELDDESCRIPTORPROTOt_ONEOFDESCRIPTORPROTOt&_ENUMDESCRIPTORPROTO_ENUMRESERVEDRANGEt_ENUMDESCRIPTORPROTOt_ENUMVALUEDESCRIPTORPROTOt_SERVICEDESCRIPTORPROTOt_METHODDESCRIPTORPROTOt_FILEOPTIONSt_MESSAGEOPTIONSt
_FIELDOPTIONSt
_ONEOFOPTIONSt_ENUMOPTIONSt_ENUMVALUEOPTIONSt_SERVICEOPTIONSt_METHODOPTIONSt_UNINTERPRETEDOPTION_NAMEPARTtfloatt_UNINTERPRETEDOPTIONt_SOURCECODEINFO_LOCATIONt_SOURCECODEINFOt_GENERATEDCODEINFO_ANNOTATIONt_GENERATEDCODEINFOtfields_by_nameRFR)RGtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR@tRegisterMessageRPR[RWRZRbRdRiRkRjRmRnRpRuR�R�R�R�R�R�R�R�R�R�R�R�R�(((sB/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pb2.pyt<module>s
%																					
					
					
					
					
					
																																																																																																																																																																																																													










































PK�\Os++����protobuf/map_unittest_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/map_unittest.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import unittest_pb2 as google_dot_protobuf_dot_unittest__pb2
from google.protobuf import unittest_no_arena_pb2 as google_dot_protobuf_dot_unittest__no__arena__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/map_unittest.proto',
  package='protobuf_unittest',
  syntax='proto3',
  serialized_pb=_b('\n\"google/protobuf/map_unittest.proto\x12\x11protobuf_unittest\x1a\x1egoogle/protobuf/unittest.proto\x1a\'google/protobuf/unittest_no_arena.proto\"\xff\x14\n\x07TestMap\x12\x46\n\x0fmap_int32_int32\x18\x01 \x03(\x0b\x32-.protobuf_unittest.TestMap.MapInt32Int32Entry\x12\x46\n\x0fmap_int64_int64\x18\x02 \x03(\x0b\x32-.protobuf_unittest.TestMap.MapInt64Int64Entry\x12J\n\x11map_uint32_uint32\x18\x03 \x03(\x0b\x32/.protobuf_unittest.TestMap.MapUint32Uint32Entry\x12J\n\x11map_uint64_uint64\x18\x04 \x03(\x0b\x32/.protobuf_unittest.TestMap.MapUint64Uint64Entry\x12J\n\x11map_sint32_sint32\x18\x05 \x03(\x0b\x32/.protobuf_unittest.TestMap.MapSint32Sint32Entry\x12J\n\x11map_sint64_sint64\x18\x06 \x03(\x0b\x32/.protobuf_unittest.TestMap.MapSint64Sint64Entry\x12N\n\x13map_fixed32_fixed32\x18\x07 \x03(\x0b\x32\x31.protobuf_unittest.TestMap.MapFixed32Fixed32Entry\x12N\n\x13map_fixed64_fixed64\x18\x08 \x03(\x0b\x32\x31.protobuf_unittest.TestMap.MapFixed64Fixed64Entry\x12R\n\x15map_sfixed32_sfixed32\x18\t \x03(\x0b\x32\x33.protobuf_unittest.TestMap.MapSfixed32Sfixed32Entry\x12R\n\x15map_sfixed64_sfixed64\x18\n \x03(\x0b\x32\x33.protobuf_unittest.TestMap.MapSfixed64Sfixed64Entry\x12\x46\n\x0fmap_int32_float\x18\x0b \x03(\x0b\x32-.protobuf_unittest.TestMap.MapInt32FloatEntry\x12H\n\x10map_int32_double\x18\x0c \x03(\x0b\x32..protobuf_unittest.TestMap.MapInt32DoubleEntry\x12\x42\n\rmap_bool_bool\x18\r \x03(\x0b\x32+.protobuf_unittest.TestMap.MapBoolBoolEntry\x12J\n\x11map_string_string\x18\x0e \x03(\x0b\x32/.protobuf_unittest.TestMap.MapStringStringEntry\x12\x46\n\x0fmap_int32_bytes\x18\x0f \x03(\x0b\x32-.protobuf_unittest.TestMap.MapInt32BytesEntry\x12\x44\n\x0emap_int32_enum\x18\x10 \x03(\x0b\x32,.protobuf_unittest.TestMap.MapInt32EnumEntry\x12Y\n\x19map_int32_foreign_message\x18\x11 \x03(\x0b\x32\x36.protobuf_unittest.TestMap.MapInt32ForeignMessageEntry\x12[\n\x1amap_string_foreign_message\x18\x12 \x03(\x0b\x32\x37.protobuf_unittest.TestMap.MapStringForeignMessageEntry\x12M\n\x13map_int32_all_types\x18\x13 \x03(\x0b\x32\x30.protobuf_unittest.TestMap.MapInt32AllTypesEntry\x1a\x34\n\x12MapInt32Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12MapInt64Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapUint32Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapUint64Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x36\n\x14MapSint32Sint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x11\x12\r\n\x05value\x18\x02 \x01(\x11:\x02\x38\x01\x1a\x36\n\x14MapSint64Sint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x12\x12\r\n\x05value\x18\x02 \x01(\x12:\x02\x38\x01\x1a\x38\n\x16MapFixed32Fixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x07\x12\r\n\x05value\x18\x02 \x01(\x07:\x02\x38\x01\x1a\x38\n\x16MapFixed64Fixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x06\x12\r\n\x05value\x18\x02 \x01(\x06:\x02\x38\x01\x1a:\n\x18MapSfixed32Sfixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x0f\x12\r\n\x05value\x18\x02 \x01(\x0f:\x02\x38\x01\x1a:\n\x18MapSfixed64Sfixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x10\x12\r\n\x05value\x18\x02 \x01(\x10:\x02\x38\x01\x1a\x34\n\x12MapInt32FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x35\n\x13MapInt32DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1a\x32\n\x10MapBoolBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapStringStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x34\n\x12MapInt32BytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1aO\n\x11MapInt32EnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.protobuf_unittest.MapEnum:\x02\x38\x01\x1a`\n\x1bMapInt32ForeignMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage:\x02\x38\x01\x1a\x61\n\x1cMapStringForeignMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage:\x02\x38\x01\x1aX\n\x15MapInt32AllTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes:\x02\x38\x01\"A\n\x11TestMapSubmessage\x12,\n\x08test_map\x18\x01 \x01(\x0b\x32\x1a.protobuf_unittest.TestMap\"\xbc\x01\n\x0eTestMessageMap\x12Q\n\x11map_int32_message\x18\x01 \x03(\x0b\x32\x36.protobuf_unittest.TestMessageMap.MapInt32MessageEntry\x1aW\n\x14MapInt32MessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes:\x02\x38\x01\"\xe3\x01\n\x0fTestSameTypeMap\x12:\n\x04map1\x18\x01 \x03(\x0b\x32,.protobuf_unittest.TestSameTypeMap.Map1Entry\x12:\n\x04map2\x18\x02 \x03(\x0b\x32,.protobuf_unittest.TestSameTypeMap.Map2Entry\x1a+\n\tMap1Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a+\n\tMap2Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"\xb6\x01\n\x16TestRequiredMessageMap\x12J\n\tmap_field\x18\x01 \x03(\x0b\x32\x37.protobuf_unittest.TestRequiredMessageMap.MapFieldEntry\x1aP\n\rMapFieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x1f.protobuf_unittest.TestRequired:\x02\x38\x01\"\xd2\x14\n\x0cTestArenaMap\x12K\n\x0fmap_int32_int32\x18\x01 \x03(\x0b\x32\x32.protobuf_unittest.TestArenaMap.MapInt32Int32Entry\x12K\n\x0fmap_int64_int64\x18\x02 \x03(\x0b\x32\x32.protobuf_unittest.TestArenaMap.MapInt64Int64Entry\x12O\n\x11map_uint32_uint32\x18\x03 \x03(\x0b\x32\x34.protobuf_unittest.TestArenaMap.MapUint32Uint32Entry\x12O\n\x11map_uint64_uint64\x18\x04 \x03(\x0b\x32\x34.protobuf_unittest.TestArenaMap.MapUint64Uint64Entry\x12O\n\x11map_sint32_sint32\x18\x05 \x03(\x0b\x32\x34.protobuf_unittest.TestArenaMap.MapSint32Sint32Entry\x12O\n\x11map_sint64_sint64\x18\x06 \x03(\x0b\x32\x34.protobuf_unittest.TestArenaMap.MapSint64Sint64Entry\x12S\n\x13map_fixed32_fixed32\x18\x07 \x03(\x0b\x32\x36.protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entry\x12S\n\x13map_fixed64_fixed64\x18\x08 \x03(\x0b\x32\x36.protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entry\x12W\n\x15map_sfixed32_sfixed32\x18\t \x03(\x0b\x32\x38.protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entry\x12W\n\x15map_sfixed64_sfixed64\x18\n \x03(\x0b\x32\x38.protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entry\x12K\n\x0fmap_int32_float\x18\x0b \x03(\x0b\x32\x32.protobuf_unittest.TestArenaMap.MapInt32FloatEntry\x12M\n\x10map_int32_double\x18\x0c \x03(\x0b\x32\x33.protobuf_unittest.TestArenaMap.MapInt32DoubleEntry\x12G\n\rmap_bool_bool\x18\r \x03(\x0b\x32\x30.protobuf_unittest.TestArenaMap.MapBoolBoolEntry\x12O\n\x11map_string_string\x18\x0e \x03(\x0b\x32\x34.protobuf_unittest.TestArenaMap.MapStringStringEntry\x12K\n\x0fmap_int32_bytes\x18\x0f \x03(\x0b\x32\x32.protobuf_unittest.TestArenaMap.MapInt32BytesEntry\x12I\n\x0emap_int32_enum\x18\x10 \x03(\x0b\x32\x31.protobuf_unittest.TestArenaMap.MapInt32EnumEntry\x12^\n\x19map_int32_foreign_message\x18\x11 \x03(\x0b\x32;.protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntry\x12n\n\"map_int32_foreign_message_no_arena\x18\x12 \x03(\x0b\x32\x42.protobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry\x1a\x34\n\x12MapInt32Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12MapInt64Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapUint32Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapUint64Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x36\n\x14MapSint32Sint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x11\x12\r\n\x05value\x18\x02 \x01(\x11:\x02\x38\x01\x1a\x36\n\x14MapSint64Sint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x12\x12\r\n\x05value\x18\x02 \x01(\x12:\x02\x38\x01\x1a\x38\n\x16MapFixed32Fixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x07\x12\r\n\x05value\x18\x02 \x01(\x07:\x02\x38\x01\x1a\x38\n\x16MapFixed64Fixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x06\x12\r\n\x05value\x18\x02 \x01(\x06:\x02\x38\x01\x1a:\n\x18MapSfixed32Sfixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x0f\x12\r\n\x05value\x18\x02 \x01(\x0f:\x02\x38\x01\x1a:\n\x18MapSfixed64Sfixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x10\x12\r\n\x05value\x18\x02 \x01(\x10:\x02\x38\x01\x1a\x34\n\x12MapInt32FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x35\n\x13MapInt32DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1a\x32\n\x10MapBoolBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapStringStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x34\n\x12MapInt32BytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1aO\n\x11MapInt32EnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x1a.protobuf_unittest.MapEnum:\x02\x38\x01\x1a`\n\x1bMapInt32ForeignMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage:\x02\x38\x01\x1ap\n\"MapInt32ForeignMessageNoArenaEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.protobuf_unittest_no_arena.ForeignMessage:\x02\x38\x01\"\xe4\x01\n\x1fMessageContainingEnumCalledType\x12J\n\x04type\x18\x01 \x03(\x0b\x32<.protobuf_unittest.MessageContainingEnumCalledType.TypeEntry\x1a_\n\tTypeEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32\x32.protobuf_unittest.MessageContainingEnumCalledType:\x02\x38\x01\"\x14\n\x04Type\x12\x0c\n\x08TYPE_FOO\x10\x00\"\x9d\x01\n\x1fMessageContainingMapCalledEntry\x12L\n\x05\x65ntry\x18\x01 \x03(\x0b\x32=.protobuf_unittest.MessageContainingMapCalledEntry.EntryEntry\x1a,\n\nEntryEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"\xad\x01\n\x17TestRecursiveMapMessage\x12<\n\x01\x61\x18\x01 \x03(\x0b\x32\x31.protobuf_unittest.TestRecursiveMapMessage.AEntry\x1aT\n\x06\x41\x45ntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x39\n\x05value\x18\x02 \x01(\x0b\x32*.protobuf_unittest.TestRecursiveMapMessage:\x02\x38\x01*?\n\x07MapEnum\x12\x10\n\x0cMAP_ENUM_FOO\x10\x00\x12\x10\n\x0cMAP_ENUM_BAR\x10\x01\x12\x10\n\x0cMAP_ENUM_BAZ\x10\x02\x42\x03\xf8\x01\x01\x62\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_unittest__pb2.DESCRIPTOR,google_dot_protobuf_dot_unittest__no__arena__pb2.DESCRIPTOR,])

_MAPENUM = _descriptor.EnumDescriptor(
  name='MapEnum',
  full_name='protobuf_unittest.MapEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='MAP_ENUM_FOO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MAP_ENUM_BAR', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MAP_ENUM_BAZ', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=6705,
  serialized_end=6768,
)
_sym_db.RegisterEnumDescriptor(_MAPENUM)

MapEnum = enum_type_wrapper.EnumTypeWrapper(_MAPENUM)
MAP_ENUM_FOO = 0
MAP_ENUM_BAR = 1
MAP_ENUM_BAZ = 2


_MESSAGECONTAININGENUMCALLEDTYPE_TYPE = _descriptor.EnumDescriptor(
  name='Type',
  full_name='protobuf_unittest.MessageContainingEnumCalledType.Type',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='TYPE_FOO', index=0, number=0,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=6347,
  serialized_end=6367,
)
_sym_db.RegisterEnumDescriptor(_MESSAGECONTAININGENUMCALLEDTYPE_TYPE)


_TESTMAP_MAPINT32INT32ENTRY = _descriptor.Descriptor(
  name='MapInt32Int32Entry',
  full_name='protobuf_unittest.TestMap.MapInt32Int32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapInt32Int32Entry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapInt32Int32Entry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1613,
  serialized_end=1665,
)

_TESTMAP_MAPINT64INT64ENTRY = _descriptor.Descriptor(
  name='MapInt64Int64Entry',
  full_name='protobuf_unittest.TestMap.MapInt64Int64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapInt64Int64Entry.key', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapInt64Int64Entry.value', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1667,
  serialized_end=1719,
)

_TESTMAP_MAPUINT32UINT32ENTRY = _descriptor.Descriptor(
  name='MapUint32Uint32Entry',
  full_name='protobuf_unittest.TestMap.MapUint32Uint32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapUint32Uint32Entry.key', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapUint32Uint32Entry.value', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1721,
  serialized_end=1775,
)

_TESTMAP_MAPUINT64UINT64ENTRY = _descriptor.Descriptor(
  name='MapUint64Uint64Entry',
  full_name='protobuf_unittest.TestMap.MapUint64Uint64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapUint64Uint64Entry.key', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapUint64Uint64Entry.value', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1777,
  serialized_end=1831,
)

_TESTMAP_MAPSINT32SINT32ENTRY = _descriptor.Descriptor(
  name='MapSint32Sint32Entry',
  full_name='protobuf_unittest.TestMap.MapSint32Sint32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapSint32Sint32Entry.key', index=0,
      number=1, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapSint32Sint32Entry.value', index=1,
      number=2, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1833,
  serialized_end=1887,
)

_TESTMAP_MAPSINT64SINT64ENTRY = _descriptor.Descriptor(
  name='MapSint64Sint64Entry',
  full_name='protobuf_unittest.TestMap.MapSint64Sint64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapSint64Sint64Entry.key', index=0,
      number=1, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapSint64Sint64Entry.value', index=1,
      number=2, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1889,
  serialized_end=1943,
)

_TESTMAP_MAPFIXED32FIXED32ENTRY = _descriptor.Descriptor(
  name='MapFixed32Fixed32Entry',
  full_name='protobuf_unittest.TestMap.MapFixed32Fixed32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapFixed32Fixed32Entry.key', index=0,
      number=1, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapFixed32Fixed32Entry.value', index=1,
      number=2, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1945,
  serialized_end=2001,
)

_TESTMAP_MAPFIXED64FIXED64ENTRY = _descriptor.Descriptor(
  name='MapFixed64Fixed64Entry',
  full_name='protobuf_unittest.TestMap.MapFixed64Fixed64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapFixed64Fixed64Entry.key', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapFixed64Fixed64Entry.value', index=1,
      number=2, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2003,
  serialized_end=2059,
)

_TESTMAP_MAPSFIXED32SFIXED32ENTRY = _descriptor.Descriptor(
  name='MapSfixed32Sfixed32Entry',
  full_name='protobuf_unittest.TestMap.MapSfixed32Sfixed32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapSfixed32Sfixed32Entry.key', index=0,
      number=1, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapSfixed32Sfixed32Entry.value', index=1,
      number=2, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2061,
  serialized_end=2119,
)

_TESTMAP_MAPSFIXED64SFIXED64ENTRY = _descriptor.Descriptor(
  name='MapSfixed64Sfixed64Entry',
  full_name='protobuf_unittest.TestMap.MapSfixed64Sfixed64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapSfixed64Sfixed64Entry.key', index=0,
      number=1, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapSfixed64Sfixed64Entry.value', index=1,
      number=2, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2121,
  serialized_end=2179,
)

_TESTMAP_MAPINT32FLOATENTRY = _descriptor.Descriptor(
  name='MapInt32FloatEntry',
  full_name='protobuf_unittest.TestMap.MapInt32FloatEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapInt32FloatEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapInt32FloatEntry.value', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2181,
  serialized_end=2233,
)

_TESTMAP_MAPINT32DOUBLEENTRY = _descriptor.Descriptor(
  name='MapInt32DoubleEntry',
  full_name='protobuf_unittest.TestMap.MapInt32DoubleEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapInt32DoubleEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapInt32DoubleEntry.value', index=1,
      number=2, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2235,
  serialized_end=2288,
)

_TESTMAP_MAPBOOLBOOLENTRY = _descriptor.Descriptor(
  name='MapBoolBoolEntry',
  full_name='protobuf_unittest.TestMap.MapBoolBoolEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapBoolBoolEntry.key', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapBoolBoolEntry.value', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2290,
  serialized_end=2340,
)

_TESTMAP_MAPSTRINGSTRINGENTRY = _descriptor.Descriptor(
  name='MapStringStringEntry',
  full_name='protobuf_unittest.TestMap.MapStringStringEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapStringStringEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapStringStringEntry.value', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2342,
  serialized_end=2396,
)

_TESTMAP_MAPINT32BYTESENTRY = _descriptor.Descriptor(
  name='MapInt32BytesEntry',
  full_name='protobuf_unittest.TestMap.MapInt32BytesEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapInt32BytesEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapInt32BytesEntry.value', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2398,
  serialized_end=2450,
)

_TESTMAP_MAPINT32ENUMENTRY = _descriptor.Descriptor(
  name='MapInt32EnumEntry',
  full_name='protobuf_unittest.TestMap.MapInt32EnumEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapInt32EnumEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapInt32EnumEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2452,
  serialized_end=2531,
)

_TESTMAP_MAPINT32FOREIGNMESSAGEENTRY = _descriptor.Descriptor(
  name='MapInt32ForeignMessageEntry',
  full_name='protobuf_unittest.TestMap.MapInt32ForeignMessageEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapInt32ForeignMessageEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapInt32ForeignMessageEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2533,
  serialized_end=2629,
)

_TESTMAP_MAPSTRINGFOREIGNMESSAGEENTRY = _descriptor.Descriptor(
  name='MapStringForeignMessageEntry',
  full_name='protobuf_unittest.TestMap.MapStringForeignMessageEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapStringForeignMessageEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapStringForeignMessageEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2631,
  serialized_end=2728,
)

_TESTMAP_MAPINT32ALLTYPESENTRY = _descriptor.Descriptor(
  name='MapInt32AllTypesEntry',
  full_name='protobuf_unittest.TestMap.MapInt32AllTypesEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMap.MapInt32AllTypesEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMap.MapInt32AllTypesEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2730,
  serialized_end=2818,
)

_TESTMAP = _descriptor.Descriptor(
  name='TestMap',
  full_name='protobuf_unittest.TestMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='map_int32_int32', full_name='protobuf_unittest.TestMap.map_int32_int32', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int64_int64', full_name='protobuf_unittest.TestMap.map_int64_int64', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_uint32_uint32', full_name='protobuf_unittest.TestMap.map_uint32_uint32', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_uint64_uint64', full_name='protobuf_unittest.TestMap.map_uint64_uint64', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sint32_sint32', full_name='protobuf_unittest.TestMap.map_sint32_sint32', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sint64_sint64', full_name='protobuf_unittest.TestMap.map_sint64_sint64', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_fixed32_fixed32', full_name='protobuf_unittest.TestMap.map_fixed32_fixed32', index=6,
      number=7, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_fixed64_fixed64', full_name='protobuf_unittest.TestMap.map_fixed64_fixed64', index=7,
      number=8, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sfixed32_sfixed32', full_name='protobuf_unittest.TestMap.map_sfixed32_sfixed32', index=8,
      number=9, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sfixed64_sfixed64', full_name='protobuf_unittest.TestMap.map_sfixed64_sfixed64', index=9,
      number=10, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_float', full_name='protobuf_unittest.TestMap.map_int32_float', index=10,
      number=11, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_double', full_name='protobuf_unittest.TestMap.map_int32_double', index=11,
      number=12, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_bool_bool', full_name='protobuf_unittest.TestMap.map_bool_bool', index=12,
      number=13, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_string', full_name='protobuf_unittest.TestMap.map_string_string', index=13,
      number=14, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_bytes', full_name='protobuf_unittest.TestMap.map_int32_bytes', index=14,
      number=15, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_enum', full_name='protobuf_unittest.TestMap.map_int32_enum', index=15,
      number=16, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_foreign_message', full_name='protobuf_unittest.TestMap.map_int32_foreign_message', index=16,
      number=17, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_foreign_message', full_name='protobuf_unittest.TestMap.map_string_foreign_message', index=17,
      number=18, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_all_types', full_name='protobuf_unittest.TestMap.map_int32_all_types', index=18,
      number=19, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTMAP_MAPINT32INT32ENTRY, _TESTMAP_MAPINT64INT64ENTRY, _TESTMAP_MAPUINT32UINT32ENTRY, _TESTMAP_MAPUINT64UINT64ENTRY, _TESTMAP_MAPSINT32SINT32ENTRY, _TESTMAP_MAPSINT64SINT64ENTRY, _TESTMAP_MAPFIXED32FIXED32ENTRY, _TESTMAP_MAPFIXED64FIXED64ENTRY, _TESTMAP_MAPSFIXED32SFIXED32ENTRY, _TESTMAP_MAPSFIXED64SFIXED64ENTRY, _TESTMAP_MAPINT32FLOATENTRY, _TESTMAP_MAPINT32DOUBLEENTRY, _TESTMAP_MAPBOOLBOOLENTRY, _TESTMAP_MAPSTRINGSTRINGENTRY, _TESTMAP_MAPINT32BYTESENTRY, _TESTMAP_MAPINT32ENUMENTRY, _TESTMAP_MAPINT32FOREIGNMESSAGEENTRY, _TESTMAP_MAPSTRINGFOREIGNMESSAGEENTRY, _TESTMAP_MAPINT32ALLTYPESENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=131,
  serialized_end=2818,
)


_TESTMAPSUBMESSAGE = _descriptor.Descriptor(
  name='TestMapSubmessage',
  full_name='protobuf_unittest.TestMapSubmessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='test_map', full_name='protobuf_unittest.TestMapSubmessage.test_map', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2820,
  serialized_end=2885,
)


_TESTMESSAGEMAP_MAPINT32MESSAGEENTRY = _descriptor.Descriptor(
  name='MapInt32MessageEntry',
  full_name='protobuf_unittest.TestMessageMap.MapInt32MessageEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMessageMap.MapInt32MessageEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMessageMap.MapInt32MessageEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2989,
  serialized_end=3076,
)

_TESTMESSAGEMAP = _descriptor.Descriptor(
  name='TestMessageMap',
  full_name='protobuf_unittest.TestMessageMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='map_int32_message', full_name='protobuf_unittest.TestMessageMap.map_int32_message', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTMESSAGEMAP_MAPINT32MESSAGEENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2888,
  serialized_end=3076,
)


_TESTSAMETYPEMAP_MAP1ENTRY = _descriptor.Descriptor(
  name='Map1Entry',
  full_name='protobuf_unittest.TestSameTypeMap.Map1Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestSameTypeMap.Map1Entry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestSameTypeMap.Map1Entry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3218,
  serialized_end=3261,
)

_TESTSAMETYPEMAP_MAP2ENTRY = _descriptor.Descriptor(
  name='Map2Entry',
  full_name='protobuf_unittest.TestSameTypeMap.Map2Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestSameTypeMap.Map2Entry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestSameTypeMap.Map2Entry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3263,
  serialized_end=3306,
)

_TESTSAMETYPEMAP = _descriptor.Descriptor(
  name='TestSameTypeMap',
  full_name='protobuf_unittest.TestSameTypeMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='map1', full_name='protobuf_unittest.TestSameTypeMap.map1', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map2', full_name='protobuf_unittest.TestSameTypeMap.map2', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTSAMETYPEMAP_MAP1ENTRY, _TESTSAMETYPEMAP_MAP2ENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3079,
  serialized_end=3306,
)


_TESTREQUIREDMESSAGEMAP_MAPFIELDENTRY = _descriptor.Descriptor(
  name='MapFieldEntry',
  full_name='protobuf_unittest.TestRequiredMessageMap.MapFieldEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestRequiredMessageMap.MapFieldEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestRequiredMessageMap.MapFieldEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3411,
  serialized_end=3491,
)

_TESTREQUIREDMESSAGEMAP = _descriptor.Descriptor(
  name='TestRequiredMessageMap',
  full_name='protobuf_unittest.TestRequiredMessageMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='map_field', full_name='protobuf_unittest.TestRequiredMessageMap.map_field', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTREQUIREDMESSAGEMAP_MAPFIELDENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3309,
  serialized_end=3491,
)


_TESTARENAMAP_MAPINT32INT32ENTRY = _descriptor.Descriptor(
  name='MapInt32Int32Entry',
  full_name='protobuf_unittest.TestArenaMap.MapInt32Int32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapInt32Int32Entry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapInt32Int32Entry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1613,
  serialized_end=1665,
)

_TESTARENAMAP_MAPINT64INT64ENTRY = _descriptor.Descriptor(
  name='MapInt64Int64Entry',
  full_name='protobuf_unittest.TestArenaMap.MapInt64Int64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapInt64Int64Entry.key', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapInt64Int64Entry.value', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1667,
  serialized_end=1719,
)

_TESTARENAMAP_MAPUINT32UINT32ENTRY = _descriptor.Descriptor(
  name='MapUint32Uint32Entry',
  full_name='protobuf_unittest.TestArenaMap.MapUint32Uint32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapUint32Uint32Entry.key', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapUint32Uint32Entry.value', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1721,
  serialized_end=1775,
)

_TESTARENAMAP_MAPUINT64UINT64ENTRY = _descriptor.Descriptor(
  name='MapUint64Uint64Entry',
  full_name='protobuf_unittest.TestArenaMap.MapUint64Uint64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapUint64Uint64Entry.key', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapUint64Uint64Entry.value', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1777,
  serialized_end=1831,
)

_TESTARENAMAP_MAPSINT32SINT32ENTRY = _descriptor.Descriptor(
  name='MapSint32Sint32Entry',
  full_name='protobuf_unittest.TestArenaMap.MapSint32Sint32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapSint32Sint32Entry.key', index=0,
      number=1, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapSint32Sint32Entry.value', index=1,
      number=2, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1833,
  serialized_end=1887,
)

_TESTARENAMAP_MAPSINT64SINT64ENTRY = _descriptor.Descriptor(
  name='MapSint64Sint64Entry',
  full_name='protobuf_unittest.TestArenaMap.MapSint64Sint64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapSint64Sint64Entry.key', index=0,
      number=1, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapSint64Sint64Entry.value', index=1,
      number=2, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1889,
  serialized_end=1943,
)

_TESTARENAMAP_MAPFIXED32FIXED32ENTRY = _descriptor.Descriptor(
  name='MapFixed32Fixed32Entry',
  full_name='protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entry.key', index=0,
      number=1, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entry.value', index=1,
      number=2, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1945,
  serialized_end=2001,
)

_TESTARENAMAP_MAPFIXED64FIXED64ENTRY = _descriptor.Descriptor(
  name='MapFixed64Fixed64Entry',
  full_name='protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entry.key', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entry.value', index=1,
      number=2, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2003,
  serialized_end=2059,
)

_TESTARENAMAP_MAPSFIXED32SFIXED32ENTRY = _descriptor.Descriptor(
  name='MapSfixed32Sfixed32Entry',
  full_name='protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entry.key', index=0,
      number=1, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entry.value', index=1,
      number=2, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2061,
  serialized_end=2119,
)

_TESTARENAMAP_MAPSFIXED64SFIXED64ENTRY = _descriptor.Descriptor(
  name='MapSfixed64Sfixed64Entry',
  full_name='protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entry.key', index=0,
      number=1, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entry.value', index=1,
      number=2, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2121,
  serialized_end=2179,
)

_TESTARENAMAP_MAPINT32FLOATENTRY = _descriptor.Descriptor(
  name='MapInt32FloatEntry',
  full_name='protobuf_unittest.TestArenaMap.MapInt32FloatEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapInt32FloatEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapInt32FloatEntry.value', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2181,
  serialized_end=2233,
)

_TESTARENAMAP_MAPINT32DOUBLEENTRY = _descriptor.Descriptor(
  name='MapInt32DoubleEntry',
  full_name='protobuf_unittest.TestArenaMap.MapInt32DoubleEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapInt32DoubleEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapInt32DoubleEntry.value', index=1,
      number=2, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2235,
  serialized_end=2288,
)

_TESTARENAMAP_MAPBOOLBOOLENTRY = _descriptor.Descriptor(
  name='MapBoolBoolEntry',
  full_name='protobuf_unittest.TestArenaMap.MapBoolBoolEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapBoolBoolEntry.key', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapBoolBoolEntry.value', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2290,
  serialized_end=2340,
)

_TESTARENAMAP_MAPSTRINGSTRINGENTRY = _descriptor.Descriptor(
  name='MapStringStringEntry',
  full_name='protobuf_unittest.TestArenaMap.MapStringStringEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapStringStringEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapStringStringEntry.value', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2342,
  serialized_end=2396,
)

_TESTARENAMAP_MAPINT32BYTESENTRY = _descriptor.Descriptor(
  name='MapInt32BytesEntry',
  full_name='protobuf_unittest.TestArenaMap.MapInt32BytesEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapInt32BytesEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapInt32BytesEntry.value', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2398,
  serialized_end=2450,
)

_TESTARENAMAP_MAPINT32ENUMENTRY = _descriptor.Descriptor(
  name='MapInt32EnumEntry',
  full_name='protobuf_unittest.TestArenaMap.MapInt32EnumEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapInt32EnumEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapInt32EnumEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2452,
  serialized_end=2531,
)

_TESTARENAMAP_MAPINT32FOREIGNMESSAGEENTRY = _descriptor.Descriptor(
  name='MapInt32ForeignMessageEntry',
  full_name='protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2533,
  serialized_end=2629,
)

_TESTARENAMAP_MAPINT32FOREIGNMESSAGENOARENAENTRY = _descriptor.Descriptor(
  name='MapInt32ForeignMessageNoArenaEntry',
  full_name='protobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6024,
  serialized_end=6136,
)

_TESTARENAMAP = _descriptor.Descriptor(
  name='TestArenaMap',
  full_name='protobuf_unittest.TestArenaMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='map_int32_int32', full_name='protobuf_unittest.TestArenaMap.map_int32_int32', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int64_int64', full_name='protobuf_unittest.TestArenaMap.map_int64_int64', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_uint32_uint32', full_name='protobuf_unittest.TestArenaMap.map_uint32_uint32', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_uint64_uint64', full_name='protobuf_unittest.TestArenaMap.map_uint64_uint64', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sint32_sint32', full_name='protobuf_unittest.TestArenaMap.map_sint32_sint32', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sint64_sint64', full_name='protobuf_unittest.TestArenaMap.map_sint64_sint64', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_fixed32_fixed32', full_name='protobuf_unittest.TestArenaMap.map_fixed32_fixed32', index=6,
      number=7, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_fixed64_fixed64', full_name='protobuf_unittest.TestArenaMap.map_fixed64_fixed64', index=7,
      number=8, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sfixed32_sfixed32', full_name='protobuf_unittest.TestArenaMap.map_sfixed32_sfixed32', index=8,
      number=9, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sfixed64_sfixed64', full_name='protobuf_unittest.TestArenaMap.map_sfixed64_sfixed64', index=9,
      number=10, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_float', full_name='protobuf_unittest.TestArenaMap.map_int32_float', index=10,
      number=11, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_double', full_name='protobuf_unittest.TestArenaMap.map_int32_double', index=11,
      number=12, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_bool_bool', full_name='protobuf_unittest.TestArenaMap.map_bool_bool', index=12,
      number=13, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_string', full_name='protobuf_unittest.TestArenaMap.map_string_string', index=13,
      number=14, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_bytes', full_name='protobuf_unittest.TestArenaMap.map_int32_bytes', index=14,
      number=15, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_enum', full_name='protobuf_unittest.TestArenaMap.map_int32_enum', index=15,
      number=16, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_foreign_message', full_name='protobuf_unittest.TestArenaMap.map_int32_foreign_message', index=16,
      number=17, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_foreign_message_no_arena', full_name='protobuf_unittest.TestArenaMap.map_int32_foreign_message_no_arena', index=17,
      number=18, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTARENAMAP_MAPINT32INT32ENTRY, _TESTARENAMAP_MAPINT64INT64ENTRY, _TESTARENAMAP_MAPUINT32UINT32ENTRY, _TESTARENAMAP_MAPUINT64UINT64ENTRY, _TESTARENAMAP_MAPSINT32SINT32ENTRY, _TESTARENAMAP_MAPSINT64SINT64ENTRY, _TESTARENAMAP_MAPFIXED32FIXED32ENTRY, _TESTARENAMAP_MAPFIXED64FIXED64ENTRY, _TESTARENAMAP_MAPSFIXED32SFIXED32ENTRY, _TESTARENAMAP_MAPSFIXED64SFIXED64ENTRY, _TESTARENAMAP_MAPINT32FLOATENTRY, _TESTARENAMAP_MAPINT32DOUBLEENTRY, _TESTARENAMAP_MAPBOOLBOOLENTRY, _TESTARENAMAP_MAPSTRINGSTRINGENTRY, _TESTARENAMAP_MAPINT32BYTESENTRY, _TESTARENAMAP_MAPINT32ENUMENTRY, _TESTARENAMAP_MAPINT32FOREIGNMESSAGEENTRY, _TESTARENAMAP_MAPINT32FOREIGNMESSAGENOARENAENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3494,
  serialized_end=6136,
)


_MESSAGECONTAININGENUMCALLEDTYPE_TYPEENTRY = _descriptor.Descriptor(
  name='TypeEntry',
  full_name='protobuf_unittest.MessageContainingEnumCalledType.TypeEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.MessageContainingEnumCalledType.TypeEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.MessageContainingEnumCalledType.TypeEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6250,
  serialized_end=6345,
)

_MESSAGECONTAININGENUMCALLEDTYPE = _descriptor.Descriptor(
  name='MessageContainingEnumCalledType',
  full_name='protobuf_unittest.MessageContainingEnumCalledType',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='protobuf_unittest.MessageContainingEnumCalledType.type', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_MESSAGECONTAININGENUMCALLEDTYPE_TYPEENTRY, ],
  enum_types=[
    _MESSAGECONTAININGENUMCALLEDTYPE_TYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6139,
  serialized_end=6367,
)


_MESSAGECONTAININGMAPCALLEDENTRY_ENTRYENTRY = _descriptor.Descriptor(
  name='EntryEntry',
  full_name='protobuf_unittest.MessageContainingMapCalledEntry.EntryEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.MessageContainingMapCalledEntry.EntryEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.MessageContainingMapCalledEntry.EntryEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6483,
  serialized_end=6527,
)

_MESSAGECONTAININGMAPCALLEDENTRY = _descriptor.Descriptor(
  name='MessageContainingMapCalledEntry',
  full_name='protobuf_unittest.MessageContainingMapCalledEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='entry', full_name='protobuf_unittest.MessageContainingMapCalledEntry.entry', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_MESSAGECONTAININGMAPCALLEDENTRY_ENTRYENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6370,
  serialized_end=6527,
)


_TESTRECURSIVEMAPMESSAGE_AENTRY = _descriptor.Descriptor(
  name='AEntry',
  full_name='protobuf_unittest.TestRecursiveMapMessage.AEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestRecursiveMapMessage.AEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestRecursiveMapMessage.AEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6619,
  serialized_end=6703,
)

_TESTRECURSIVEMAPMESSAGE = _descriptor.Descriptor(
  name='TestRecursiveMapMessage',
  full_name='protobuf_unittest.TestRecursiveMapMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestRecursiveMapMessage.a', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTRECURSIVEMAPMESSAGE_AENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6530,
  serialized_end=6703,
)

_TESTMAP_MAPINT32INT32ENTRY.containing_type = _TESTMAP
_TESTMAP_MAPINT64INT64ENTRY.containing_type = _TESTMAP
_TESTMAP_MAPUINT32UINT32ENTRY.containing_type = _TESTMAP
_TESTMAP_MAPUINT64UINT64ENTRY.containing_type = _TESTMAP
_TESTMAP_MAPSINT32SINT32ENTRY.containing_type = _TESTMAP
_TESTMAP_MAPSINT64SINT64ENTRY.containing_type = _TESTMAP
_TESTMAP_MAPFIXED32FIXED32ENTRY.containing_type = _TESTMAP
_TESTMAP_MAPFIXED64FIXED64ENTRY.containing_type = _TESTMAP
_TESTMAP_MAPSFIXED32SFIXED32ENTRY.containing_type = _TESTMAP
_TESTMAP_MAPSFIXED64SFIXED64ENTRY.containing_type = _TESTMAP
_TESTMAP_MAPINT32FLOATENTRY.containing_type = _TESTMAP
_TESTMAP_MAPINT32DOUBLEENTRY.containing_type = _TESTMAP
_TESTMAP_MAPBOOLBOOLENTRY.containing_type = _TESTMAP
_TESTMAP_MAPSTRINGSTRINGENTRY.containing_type = _TESTMAP
_TESTMAP_MAPINT32BYTESENTRY.containing_type = _TESTMAP
_TESTMAP_MAPINT32ENUMENTRY.fields_by_name['value'].enum_type = _MAPENUM
_TESTMAP_MAPINT32ENUMENTRY.containing_type = _TESTMAP
_TESTMAP_MAPINT32FOREIGNMESSAGEENTRY.fields_by_name['value'].message_type = google_dot_protobuf_dot_unittest__pb2._FOREIGNMESSAGE
_TESTMAP_MAPINT32FOREIGNMESSAGEENTRY.containing_type = _TESTMAP
_TESTMAP_MAPSTRINGFOREIGNMESSAGEENTRY.fields_by_name['value'].message_type = google_dot_protobuf_dot_unittest__pb2._FOREIGNMESSAGE
_TESTMAP_MAPSTRINGFOREIGNMESSAGEENTRY.containing_type = _TESTMAP
_TESTMAP_MAPINT32ALLTYPESENTRY.fields_by_name['value'].message_type = google_dot_protobuf_dot_unittest__pb2._TESTALLTYPES
_TESTMAP_MAPINT32ALLTYPESENTRY.containing_type = _TESTMAP
_TESTMAP.fields_by_name['map_int32_int32'].message_type = _TESTMAP_MAPINT32INT32ENTRY
_TESTMAP.fields_by_name['map_int64_int64'].message_type = _TESTMAP_MAPINT64INT64ENTRY
_TESTMAP.fields_by_name['map_uint32_uint32'].message_type = _TESTMAP_MAPUINT32UINT32ENTRY
_TESTMAP.fields_by_name['map_uint64_uint64'].message_type = _TESTMAP_MAPUINT64UINT64ENTRY
_TESTMAP.fields_by_name['map_sint32_sint32'].message_type = _TESTMAP_MAPSINT32SINT32ENTRY
_TESTMAP.fields_by_name['map_sint64_sint64'].message_type = _TESTMAP_MAPSINT64SINT64ENTRY
_TESTMAP.fields_by_name['map_fixed32_fixed32'].message_type = _TESTMAP_MAPFIXED32FIXED32ENTRY
_TESTMAP.fields_by_name['map_fixed64_fixed64'].message_type = _TESTMAP_MAPFIXED64FIXED64ENTRY
_TESTMAP.fields_by_name['map_sfixed32_sfixed32'].message_type = _TESTMAP_MAPSFIXED32SFIXED32ENTRY
_TESTMAP.fields_by_name['map_sfixed64_sfixed64'].message_type = _TESTMAP_MAPSFIXED64SFIXED64ENTRY
_TESTMAP.fields_by_name['map_int32_float'].message_type = _TESTMAP_MAPINT32FLOATENTRY
_TESTMAP.fields_by_name['map_int32_double'].message_type = _TESTMAP_MAPINT32DOUBLEENTRY
_TESTMAP.fields_by_name['map_bool_bool'].message_type = _TESTMAP_MAPBOOLBOOLENTRY
_TESTMAP.fields_by_name['map_string_string'].message_type = _TESTMAP_MAPSTRINGSTRINGENTRY
_TESTMAP.fields_by_name['map_int32_bytes'].message_type = _TESTMAP_MAPINT32BYTESENTRY
_TESTMAP.fields_by_name['map_int32_enum'].message_type = _TESTMAP_MAPINT32ENUMENTRY
_TESTMAP.fields_by_name['map_int32_foreign_message'].message_type = _TESTMAP_MAPINT32FOREIGNMESSAGEENTRY
_TESTMAP.fields_by_name['map_string_foreign_message'].message_type = _TESTMAP_MAPSTRINGFOREIGNMESSAGEENTRY
_TESTMAP.fields_by_name['map_int32_all_types'].message_type = _TESTMAP_MAPINT32ALLTYPESENTRY
_TESTMAPSUBMESSAGE.fields_by_name['test_map'].message_type = _TESTMAP
_TESTMESSAGEMAP_MAPINT32MESSAGEENTRY.fields_by_name['value'].message_type = google_dot_protobuf_dot_unittest__pb2._TESTALLTYPES
_TESTMESSAGEMAP_MAPINT32MESSAGEENTRY.containing_type = _TESTMESSAGEMAP
_TESTMESSAGEMAP.fields_by_name['map_int32_message'].message_type = _TESTMESSAGEMAP_MAPINT32MESSAGEENTRY
_TESTSAMETYPEMAP_MAP1ENTRY.containing_type = _TESTSAMETYPEMAP
_TESTSAMETYPEMAP_MAP2ENTRY.containing_type = _TESTSAMETYPEMAP
_TESTSAMETYPEMAP.fields_by_name['map1'].message_type = _TESTSAMETYPEMAP_MAP1ENTRY
_TESTSAMETYPEMAP.fields_by_name['map2'].message_type = _TESTSAMETYPEMAP_MAP2ENTRY
_TESTREQUIREDMESSAGEMAP_MAPFIELDENTRY.fields_by_name['value'].message_type = google_dot_protobuf_dot_unittest__pb2._TESTREQUIRED
_TESTREQUIREDMESSAGEMAP_MAPFIELDENTRY.containing_type = _TESTREQUIREDMESSAGEMAP
_TESTREQUIREDMESSAGEMAP.fields_by_name['map_field'].message_type = _TESTREQUIREDMESSAGEMAP_MAPFIELDENTRY
_TESTARENAMAP_MAPINT32INT32ENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPINT64INT64ENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPUINT32UINT32ENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPUINT64UINT64ENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPSINT32SINT32ENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPSINT64SINT64ENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPFIXED32FIXED32ENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPFIXED64FIXED64ENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPSFIXED32SFIXED32ENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPSFIXED64SFIXED64ENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPINT32FLOATENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPINT32DOUBLEENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPBOOLBOOLENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPSTRINGSTRINGENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPINT32BYTESENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPINT32ENUMENTRY.fields_by_name['value'].enum_type = _MAPENUM
_TESTARENAMAP_MAPINT32ENUMENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPINT32FOREIGNMESSAGEENTRY.fields_by_name['value'].message_type = google_dot_protobuf_dot_unittest__pb2._FOREIGNMESSAGE
_TESTARENAMAP_MAPINT32FOREIGNMESSAGEENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP_MAPINT32FOREIGNMESSAGENOARENAENTRY.fields_by_name['value'].message_type = google_dot_protobuf_dot_unittest__no__arena__pb2._FOREIGNMESSAGE
_TESTARENAMAP_MAPINT32FOREIGNMESSAGENOARENAENTRY.containing_type = _TESTARENAMAP
_TESTARENAMAP.fields_by_name['map_int32_int32'].message_type = _TESTARENAMAP_MAPINT32INT32ENTRY
_TESTARENAMAP.fields_by_name['map_int64_int64'].message_type = _TESTARENAMAP_MAPINT64INT64ENTRY
_TESTARENAMAP.fields_by_name['map_uint32_uint32'].message_type = _TESTARENAMAP_MAPUINT32UINT32ENTRY
_TESTARENAMAP.fields_by_name['map_uint64_uint64'].message_type = _TESTARENAMAP_MAPUINT64UINT64ENTRY
_TESTARENAMAP.fields_by_name['map_sint32_sint32'].message_type = _TESTARENAMAP_MAPSINT32SINT32ENTRY
_TESTARENAMAP.fields_by_name['map_sint64_sint64'].message_type = _TESTARENAMAP_MAPSINT64SINT64ENTRY
_TESTARENAMAP.fields_by_name['map_fixed32_fixed32'].message_type = _TESTARENAMAP_MAPFIXED32FIXED32ENTRY
_TESTARENAMAP.fields_by_name['map_fixed64_fixed64'].message_type = _TESTARENAMAP_MAPFIXED64FIXED64ENTRY
_TESTARENAMAP.fields_by_name['map_sfixed32_sfixed32'].message_type = _TESTARENAMAP_MAPSFIXED32SFIXED32ENTRY
_TESTARENAMAP.fields_by_name['map_sfixed64_sfixed64'].message_type = _TESTARENAMAP_MAPSFIXED64SFIXED64ENTRY
_TESTARENAMAP.fields_by_name['map_int32_float'].message_type = _TESTARENAMAP_MAPINT32FLOATENTRY
_TESTARENAMAP.fields_by_name['map_int32_double'].message_type = _TESTARENAMAP_MAPINT32DOUBLEENTRY
_TESTARENAMAP.fields_by_name['map_bool_bool'].message_type = _TESTARENAMAP_MAPBOOLBOOLENTRY
_TESTARENAMAP.fields_by_name['map_string_string'].message_type = _TESTARENAMAP_MAPSTRINGSTRINGENTRY
_TESTARENAMAP.fields_by_name['map_int32_bytes'].message_type = _TESTARENAMAP_MAPINT32BYTESENTRY
_TESTARENAMAP.fields_by_name['map_int32_enum'].message_type = _TESTARENAMAP_MAPINT32ENUMENTRY
_TESTARENAMAP.fields_by_name['map_int32_foreign_message'].message_type = _TESTARENAMAP_MAPINT32FOREIGNMESSAGEENTRY
_TESTARENAMAP.fields_by_name['map_int32_foreign_message_no_arena'].message_type = _TESTARENAMAP_MAPINT32FOREIGNMESSAGENOARENAENTRY
_MESSAGECONTAININGENUMCALLEDTYPE_TYPEENTRY.fields_by_name['value'].message_type = _MESSAGECONTAININGENUMCALLEDTYPE
_MESSAGECONTAININGENUMCALLEDTYPE_TYPEENTRY.containing_type = _MESSAGECONTAININGENUMCALLEDTYPE
_MESSAGECONTAININGENUMCALLEDTYPE.fields_by_name['type'].message_type = _MESSAGECONTAININGENUMCALLEDTYPE_TYPEENTRY
_MESSAGECONTAININGENUMCALLEDTYPE_TYPE.containing_type = _MESSAGECONTAININGENUMCALLEDTYPE
_MESSAGECONTAININGMAPCALLEDENTRY_ENTRYENTRY.containing_type = _MESSAGECONTAININGMAPCALLEDENTRY
_MESSAGECONTAININGMAPCALLEDENTRY.fields_by_name['entry'].message_type = _MESSAGECONTAININGMAPCALLEDENTRY_ENTRYENTRY
_TESTRECURSIVEMAPMESSAGE_AENTRY.fields_by_name['value'].message_type = _TESTRECURSIVEMAPMESSAGE
_TESTRECURSIVEMAPMESSAGE_AENTRY.containing_type = _TESTRECURSIVEMAPMESSAGE
_TESTRECURSIVEMAPMESSAGE.fields_by_name['a'].message_type = _TESTRECURSIVEMAPMESSAGE_AENTRY
DESCRIPTOR.message_types_by_name['TestMap'] = _TESTMAP
DESCRIPTOR.message_types_by_name['TestMapSubmessage'] = _TESTMAPSUBMESSAGE
DESCRIPTOR.message_types_by_name['TestMessageMap'] = _TESTMESSAGEMAP
DESCRIPTOR.message_types_by_name['TestSameTypeMap'] = _TESTSAMETYPEMAP
DESCRIPTOR.message_types_by_name['TestRequiredMessageMap'] = _TESTREQUIREDMESSAGEMAP
DESCRIPTOR.message_types_by_name['TestArenaMap'] = _TESTARENAMAP
DESCRIPTOR.message_types_by_name['MessageContainingEnumCalledType'] = _MESSAGECONTAININGENUMCALLEDTYPE
DESCRIPTOR.message_types_by_name['MessageContainingMapCalledEntry'] = _MESSAGECONTAININGMAPCALLEDENTRY
DESCRIPTOR.message_types_by_name['TestRecursiveMapMessage'] = _TESTRECURSIVEMAPMESSAGE
DESCRIPTOR.enum_types_by_name['MapEnum'] = _MAPENUM
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestMap = _reflection.GeneratedProtocolMessageType('TestMap', (_message.Message,), dict(

  MapInt32Int32Entry = _reflection.GeneratedProtocolMessageType('MapInt32Int32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPINT32INT32ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapInt32Int32Entry)
    ))
  ,

  MapInt64Int64Entry = _reflection.GeneratedProtocolMessageType('MapInt64Int64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPINT64INT64ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapInt64Int64Entry)
    ))
  ,

  MapUint32Uint32Entry = _reflection.GeneratedProtocolMessageType('MapUint32Uint32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPUINT32UINT32ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapUint32Uint32Entry)
    ))
  ,

  MapUint64Uint64Entry = _reflection.GeneratedProtocolMessageType('MapUint64Uint64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPUINT64UINT64ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapUint64Uint64Entry)
    ))
  ,

  MapSint32Sint32Entry = _reflection.GeneratedProtocolMessageType('MapSint32Sint32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPSINT32SINT32ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapSint32Sint32Entry)
    ))
  ,

  MapSint64Sint64Entry = _reflection.GeneratedProtocolMessageType('MapSint64Sint64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPSINT64SINT64ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapSint64Sint64Entry)
    ))
  ,

  MapFixed32Fixed32Entry = _reflection.GeneratedProtocolMessageType('MapFixed32Fixed32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPFIXED32FIXED32ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapFixed32Fixed32Entry)
    ))
  ,

  MapFixed64Fixed64Entry = _reflection.GeneratedProtocolMessageType('MapFixed64Fixed64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPFIXED64FIXED64ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapFixed64Fixed64Entry)
    ))
  ,

  MapSfixed32Sfixed32Entry = _reflection.GeneratedProtocolMessageType('MapSfixed32Sfixed32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPSFIXED32SFIXED32ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapSfixed32Sfixed32Entry)
    ))
  ,

  MapSfixed64Sfixed64Entry = _reflection.GeneratedProtocolMessageType('MapSfixed64Sfixed64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPSFIXED64SFIXED64ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapSfixed64Sfixed64Entry)
    ))
  ,

  MapInt32FloatEntry = _reflection.GeneratedProtocolMessageType('MapInt32FloatEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPINT32FLOATENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapInt32FloatEntry)
    ))
  ,

  MapInt32DoubleEntry = _reflection.GeneratedProtocolMessageType('MapInt32DoubleEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPINT32DOUBLEENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapInt32DoubleEntry)
    ))
  ,

  MapBoolBoolEntry = _reflection.GeneratedProtocolMessageType('MapBoolBoolEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPBOOLBOOLENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapBoolBoolEntry)
    ))
  ,

  MapStringStringEntry = _reflection.GeneratedProtocolMessageType('MapStringStringEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPSTRINGSTRINGENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapStringStringEntry)
    ))
  ,

  MapInt32BytesEntry = _reflection.GeneratedProtocolMessageType('MapInt32BytesEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPINT32BYTESENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapInt32BytesEntry)
    ))
  ,

  MapInt32EnumEntry = _reflection.GeneratedProtocolMessageType('MapInt32EnumEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPINT32ENUMENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapInt32EnumEntry)
    ))
  ,

  MapInt32ForeignMessageEntry = _reflection.GeneratedProtocolMessageType('MapInt32ForeignMessageEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPINT32FOREIGNMESSAGEENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapInt32ForeignMessageEntry)
    ))
  ,

  MapStringForeignMessageEntry = _reflection.GeneratedProtocolMessageType('MapStringForeignMessageEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPSTRINGFOREIGNMESSAGEENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapStringForeignMessageEntry)
    ))
  ,

  MapInt32AllTypesEntry = _reflection.GeneratedProtocolMessageType('MapInt32AllTypesEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAP_MAPINT32ALLTYPESENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap.MapInt32AllTypesEntry)
    ))
  ,
  DESCRIPTOR = _TESTMAP,
  __module__ = 'google.protobuf.map_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMap)
  ))
_sym_db.RegisterMessage(TestMap)
_sym_db.RegisterMessage(TestMap.MapInt32Int32Entry)
_sym_db.RegisterMessage(TestMap.MapInt64Int64Entry)
_sym_db.RegisterMessage(TestMap.MapUint32Uint32Entry)
_sym_db.RegisterMessage(TestMap.MapUint64Uint64Entry)
_sym_db.RegisterMessage(TestMap.MapSint32Sint32Entry)
_sym_db.RegisterMessage(TestMap.MapSint64Sint64Entry)
_sym_db.RegisterMessage(TestMap.MapFixed32Fixed32Entry)
_sym_db.RegisterMessage(TestMap.MapFixed64Fixed64Entry)
_sym_db.RegisterMessage(TestMap.MapSfixed32Sfixed32Entry)
_sym_db.RegisterMessage(TestMap.MapSfixed64Sfixed64Entry)
_sym_db.RegisterMessage(TestMap.MapInt32FloatEntry)
_sym_db.RegisterMessage(TestMap.MapInt32DoubleEntry)
_sym_db.RegisterMessage(TestMap.MapBoolBoolEntry)
_sym_db.RegisterMessage(TestMap.MapStringStringEntry)
_sym_db.RegisterMessage(TestMap.MapInt32BytesEntry)
_sym_db.RegisterMessage(TestMap.MapInt32EnumEntry)
_sym_db.RegisterMessage(TestMap.MapInt32ForeignMessageEntry)
_sym_db.RegisterMessage(TestMap.MapStringForeignMessageEntry)
_sym_db.RegisterMessage(TestMap.MapInt32AllTypesEntry)

TestMapSubmessage = _reflection.GeneratedProtocolMessageType('TestMapSubmessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTMAPSUBMESSAGE,
  __module__ = 'google.protobuf.map_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMapSubmessage)
  ))
_sym_db.RegisterMessage(TestMapSubmessage)

TestMessageMap = _reflection.GeneratedProtocolMessageType('TestMessageMap', (_message.Message,), dict(

  MapInt32MessageEntry = _reflection.GeneratedProtocolMessageType('MapInt32MessageEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMESSAGEMAP_MAPINT32MESSAGEENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMessageMap.MapInt32MessageEntry)
    ))
  ,
  DESCRIPTOR = _TESTMESSAGEMAP,
  __module__ = 'google.protobuf.map_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMessageMap)
  ))
_sym_db.RegisterMessage(TestMessageMap)
_sym_db.RegisterMessage(TestMessageMap.MapInt32MessageEntry)

TestSameTypeMap = _reflection.GeneratedProtocolMessageType('TestSameTypeMap', (_message.Message,), dict(

  Map1Entry = _reflection.GeneratedProtocolMessageType('Map1Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTSAMETYPEMAP_MAP1ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestSameTypeMap.Map1Entry)
    ))
  ,

  Map2Entry = _reflection.GeneratedProtocolMessageType('Map2Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTSAMETYPEMAP_MAP2ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestSameTypeMap.Map2Entry)
    ))
  ,
  DESCRIPTOR = _TESTSAMETYPEMAP,
  __module__ = 'google.protobuf.map_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestSameTypeMap)
  ))
_sym_db.RegisterMessage(TestSameTypeMap)
_sym_db.RegisterMessage(TestSameTypeMap.Map1Entry)
_sym_db.RegisterMessage(TestSameTypeMap.Map2Entry)

TestRequiredMessageMap = _reflection.GeneratedProtocolMessageType('TestRequiredMessageMap', (_message.Message,), dict(

  MapFieldEntry = _reflection.GeneratedProtocolMessageType('MapFieldEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTREQUIREDMESSAGEMAP_MAPFIELDENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequiredMessageMap.MapFieldEntry)
    ))
  ,
  DESCRIPTOR = _TESTREQUIREDMESSAGEMAP,
  __module__ = 'google.protobuf.map_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequiredMessageMap)
  ))
_sym_db.RegisterMessage(TestRequiredMessageMap)
_sym_db.RegisterMessage(TestRequiredMessageMap.MapFieldEntry)

TestArenaMap = _reflection.GeneratedProtocolMessageType('TestArenaMap', (_message.Message,), dict(

  MapInt32Int32Entry = _reflection.GeneratedProtocolMessageType('MapInt32Int32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPINT32INT32ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapInt32Int32Entry)
    ))
  ,

  MapInt64Int64Entry = _reflection.GeneratedProtocolMessageType('MapInt64Int64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPINT64INT64ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapInt64Int64Entry)
    ))
  ,

  MapUint32Uint32Entry = _reflection.GeneratedProtocolMessageType('MapUint32Uint32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPUINT32UINT32ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapUint32Uint32Entry)
    ))
  ,

  MapUint64Uint64Entry = _reflection.GeneratedProtocolMessageType('MapUint64Uint64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPUINT64UINT64ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapUint64Uint64Entry)
    ))
  ,

  MapSint32Sint32Entry = _reflection.GeneratedProtocolMessageType('MapSint32Sint32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPSINT32SINT32ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapSint32Sint32Entry)
    ))
  ,

  MapSint64Sint64Entry = _reflection.GeneratedProtocolMessageType('MapSint64Sint64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPSINT64SINT64ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapSint64Sint64Entry)
    ))
  ,

  MapFixed32Fixed32Entry = _reflection.GeneratedProtocolMessageType('MapFixed32Fixed32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPFIXED32FIXED32ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapFixed32Fixed32Entry)
    ))
  ,

  MapFixed64Fixed64Entry = _reflection.GeneratedProtocolMessageType('MapFixed64Fixed64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPFIXED64FIXED64ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapFixed64Fixed64Entry)
    ))
  ,

  MapSfixed32Sfixed32Entry = _reflection.GeneratedProtocolMessageType('MapSfixed32Sfixed32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPSFIXED32SFIXED32ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapSfixed32Sfixed32Entry)
    ))
  ,

  MapSfixed64Sfixed64Entry = _reflection.GeneratedProtocolMessageType('MapSfixed64Sfixed64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPSFIXED64SFIXED64ENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapSfixed64Sfixed64Entry)
    ))
  ,

  MapInt32FloatEntry = _reflection.GeneratedProtocolMessageType('MapInt32FloatEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPINT32FLOATENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapInt32FloatEntry)
    ))
  ,

  MapInt32DoubleEntry = _reflection.GeneratedProtocolMessageType('MapInt32DoubleEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPINT32DOUBLEENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapInt32DoubleEntry)
    ))
  ,

  MapBoolBoolEntry = _reflection.GeneratedProtocolMessageType('MapBoolBoolEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPBOOLBOOLENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapBoolBoolEntry)
    ))
  ,

  MapStringStringEntry = _reflection.GeneratedProtocolMessageType('MapStringStringEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPSTRINGSTRINGENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapStringStringEntry)
    ))
  ,

  MapInt32BytesEntry = _reflection.GeneratedProtocolMessageType('MapInt32BytesEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPINT32BYTESENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapInt32BytesEntry)
    ))
  ,

  MapInt32EnumEntry = _reflection.GeneratedProtocolMessageType('MapInt32EnumEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPINT32ENUMENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapInt32EnumEntry)
    ))
  ,

  MapInt32ForeignMessageEntry = _reflection.GeneratedProtocolMessageType('MapInt32ForeignMessageEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPINT32FOREIGNMESSAGEENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapInt32ForeignMessageEntry)
    ))
  ,

  MapInt32ForeignMessageNoArenaEntry = _reflection.GeneratedProtocolMessageType('MapInt32ForeignMessageNoArenaEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTARENAMAP_MAPINT32FOREIGNMESSAGENOARENAENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap.MapInt32ForeignMessageNoArenaEntry)
    ))
  ,
  DESCRIPTOR = _TESTARENAMAP,
  __module__ = 'google.protobuf.map_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestArenaMap)
  ))
_sym_db.RegisterMessage(TestArenaMap)
_sym_db.RegisterMessage(TestArenaMap.MapInt32Int32Entry)
_sym_db.RegisterMessage(TestArenaMap.MapInt64Int64Entry)
_sym_db.RegisterMessage(TestArenaMap.MapUint32Uint32Entry)
_sym_db.RegisterMessage(TestArenaMap.MapUint64Uint64Entry)
_sym_db.RegisterMessage(TestArenaMap.MapSint32Sint32Entry)
_sym_db.RegisterMessage(TestArenaMap.MapSint64Sint64Entry)
_sym_db.RegisterMessage(TestArenaMap.MapFixed32Fixed32Entry)
_sym_db.RegisterMessage(TestArenaMap.MapFixed64Fixed64Entry)
_sym_db.RegisterMessage(TestArenaMap.MapSfixed32Sfixed32Entry)
_sym_db.RegisterMessage(TestArenaMap.MapSfixed64Sfixed64Entry)
_sym_db.RegisterMessage(TestArenaMap.MapInt32FloatEntry)
_sym_db.RegisterMessage(TestArenaMap.MapInt32DoubleEntry)
_sym_db.RegisterMessage(TestArenaMap.MapBoolBoolEntry)
_sym_db.RegisterMessage(TestArenaMap.MapStringStringEntry)
_sym_db.RegisterMessage(TestArenaMap.MapInt32BytesEntry)
_sym_db.RegisterMessage(TestArenaMap.MapInt32EnumEntry)
_sym_db.RegisterMessage(TestArenaMap.MapInt32ForeignMessageEntry)
_sym_db.RegisterMessage(TestArenaMap.MapInt32ForeignMessageNoArenaEntry)

MessageContainingEnumCalledType = _reflection.GeneratedProtocolMessageType('MessageContainingEnumCalledType', (_message.Message,), dict(

  TypeEntry = _reflection.GeneratedProtocolMessageType('TypeEntry', (_message.Message,), dict(
    DESCRIPTOR = _MESSAGECONTAININGENUMCALLEDTYPE_TYPEENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.MessageContainingEnumCalledType.TypeEntry)
    ))
  ,
  DESCRIPTOR = _MESSAGECONTAININGENUMCALLEDTYPE,
  __module__ = 'google.protobuf.map_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.MessageContainingEnumCalledType)
  ))
_sym_db.RegisterMessage(MessageContainingEnumCalledType)
_sym_db.RegisterMessage(MessageContainingEnumCalledType.TypeEntry)

MessageContainingMapCalledEntry = _reflection.GeneratedProtocolMessageType('MessageContainingMapCalledEntry', (_message.Message,), dict(

  EntryEntry = _reflection.GeneratedProtocolMessageType('EntryEntry', (_message.Message,), dict(
    DESCRIPTOR = _MESSAGECONTAININGMAPCALLEDENTRY_ENTRYENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.MessageContainingMapCalledEntry.EntryEntry)
    ))
  ,
  DESCRIPTOR = _MESSAGECONTAININGMAPCALLEDENTRY,
  __module__ = 'google.protobuf.map_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.MessageContainingMapCalledEntry)
  ))
_sym_db.RegisterMessage(MessageContainingMapCalledEntry)
_sym_db.RegisterMessage(MessageContainingMapCalledEntry.EntryEntry)

TestRecursiveMapMessage = _reflection.GeneratedProtocolMessageType('TestRecursiveMapMessage', (_message.Message,), dict(

  AEntry = _reflection.GeneratedProtocolMessageType('AEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTRECURSIVEMAPMESSAGE_AENTRY,
    __module__ = 'google.protobuf.map_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRecursiveMapMessage.AEntry)
    ))
  ,
  DESCRIPTOR = _TESTRECURSIVEMAPMESSAGE,
  __module__ = 'google.protobuf.map_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRecursiveMapMessage)
  ))
_sym_db.RegisterMessage(TestRecursiveMapMessage)
_sym_db.RegisterMessage(TestRecursiveMapMessage.AEntry)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\370\001\001'))
_TESTMAP_MAPINT32INT32ENTRY.has_options = True
_TESTMAP_MAPINT32INT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPINT64INT64ENTRY.has_options = True
_TESTMAP_MAPINT64INT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPUINT32UINT32ENTRY.has_options = True
_TESTMAP_MAPUINT32UINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPUINT64UINT64ENTRY.has_options = True
_TESTMAP_MAPUINT64UINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPSINT32SINT32ENTRY.has_options = True
_TESTMAP_MAPSINT32SINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPSINT64SINT64ENTRY.has_options = True
_TESTMAP_MAPSINT64SINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPFIXED32FIXED32ENTRY.has_options = True
_TESTMAP_MAPFIXED32FIXED32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPFIXED64FIXED64ENTRY.has_options = True
_TESTMAP_MAPFIXED64FIXED64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPSFIXED32SFIXED32ENTRY.has_options = True
_TESTMAP_MAPSFIXED32SFIXED32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPSFIXED64SFIXED64ENTRY.has_options = True
_TESTMAP_MAPSFIXED64SFIXED64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPINT32FLOATENTRY.has_options = True
_TESTMAP_MAPINT32FLOATENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPINT32DOUBLEENTRY.has_options = True
_TESTMAP_MAPINT32DOUBLEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPBOOLBOOLENTRY.has_options = True
_TESTMAP_MAPBOOLBOOLENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPSTRINGSTRINGENTRY.has_options = True
_TESTMAP_MAPSTRINGSTRINGENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPINT32BYTESENTRY.has_options = True
_TESTMAP_MAPINT32BYTESENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPINT32ENUMENTRY.has_options = True
_TESTMAP_MAPINT32ENUMENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPINT32FOREIGNMESSAGEENTRY.has_options = True
_TESTMAP_MAPINT32FOREIGNMESSAGEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPSTRINGFOREIGNMESSAGEENTRY.has_options = True
_TESTMAP_MAPSTRINGFOREIGNMESSAGEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAP_MAPINT32ALLTYPESENTRY.has_options = True
_TESTMAP_MAPINT32ALLTYPESENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMESSAGEMAP_MAPINT32MESSAGEENTRY.has_options = True
_TESTMESSAGEMAP_MAPINT32MESSAGEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTSAMETYPEMAP_MAP1ENTRY.has_options = True
_TESTSAMETYPEMAP_MAP1ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTSAMETYPEMAP_MAP2ENTRY.has_options = True
_TESTSAMETYPEMAP_MAP2ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTREQUIREDMESSAGEMAP_MAPFIELDENTRY.has_options = True
_TESTREQUIREDMESSAGEMAP_MAPFIELDENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPINT32INT32ENTRY.has_options = True
_TESTARENAMAP_MAPINT32INT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPINT64INT64ENTRY.has_options = True
_TESTARENAMAP_MAPINT64INT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPUINT32UINT32ENTRY.has_options = True
_TESTARENAMAP_MAPUINT32UINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPUINT64UINT64ENTRY.has_options = True
_TESTARENAMAP_MAPUINT64UINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPSINT32SINT32ENTRY.has_options = True
_TESTARENAMAP_MAPSINT32SINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPSINT64SINT64ENTRY.has_options = True
_TESTARENAMAP_MAPSINT64SINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPFIXED32FIXED32ENTRY.has_options = True
_TESTARENAMAP_MAPFIXED32FIXED32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPFIXED64FIXED64ENTRY.has_options = True
_TESTARENAMAP_MAPFIXED64FIXED64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPSFIXED32SFIXED32ENTRY.has_options = True
_TESTARENAMAP_MAPSFIXED32SFIXED32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPSFIXED64SFIXED64ENTRY.has_options = True
_TESTARENAMAP_MAPSFIXED64SFIXED64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPINT32FLOATENTRY.has_options = True
_TESTARENAMAP_MAPINT32FLOATENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPINT32DOUBLEENTRY.has_options = True
_TESTARENAMAP_MAPINT32DOUBLEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPBOOLBOOLENTRY.has_options = True
_TESTARENAMAP_MAPBOOLBOOLENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPSTRINGSTRINGENTRY.has_options = True
_TESTARENAMAP_MAPSTRINGSTRINGENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPINT32BYTESENTRY.has_options = True
_TESTARENAMAP_MAPINT32BYTESENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPINT32ENUMENTRY.has_options = True
_TESTARENAMAP_MAPINT32ENUMENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPINT32FOREIGNMESSAGEENTRY.has_options = True
_TESTARENAMAP_MAPINT32FOREIGNMESSAGEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTARENAMAP_MAPINT32FOREIGNMESSAGENOARENAENTRY.has_options = True
_TESTARENAMAP_MAPINT32FOREIGNMESSAGENOARENAENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_MESSAGECONTAININGENUMCALLEDTYPE_TYPEENTRY.has_options = True
_MESSAGECONTAININGENUMCALLEDTYPE_TYPEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_MESSAGECONTAININGMAPCALLEDENTRY_ENTRYENTRY.has_options = True
_MESSAGECONTAININGMAPCALLEDENTRY_ENTRYENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTRECURSIVEMAPMESSAGE_AENTRY.has_options = True
_TESTRECURSIVEMAPMESSAGE_AENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
# @@protoc_insertion_point(module_scope)
PK�\ٽ�%B
B
'protobuf/unittest_import_public_pb2.pycnu�[����
���hc-@sddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d1d2d3�Zeejd<eje�e	jdejfed4ed5d6��Zeje�ee_ejej �ed7��e_!dS(8i����NiicCs|S(N((tx((sN/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_public_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sN/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_public_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames,google/protobuf/unittest_import_public.prototpackagetprotobuf_unittest_importtsyntaxtproto2t
serialized_pbs�
,google/protobuf/unittest_import_public.protoprotobuf_unittest_import" 
PublicImportMessage	
e (B
com.google.protobuf.testtPublicImportMessaget	full_names,protobuf_unittest_import.PublicImportMessagetfilenametfiletcontaining_typetfieldstes.protobuf_unittest_import.PublicImportMessage.etindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiJtserialized_endijt
DESCRIPTORt
__module__s*google.protobuf.unittest_import_public_pb2s
com.google.protobuf.test("tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR+t
DescriptortNonetFieldDescriptortFalset_PUBLICIMPORTMESSAGEtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((sN/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_public_pb2.pyt<module>sV%				


	PK�\@���\�\protobuf/descriptor_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/descriptor.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/descriptor.proto',
  package='google.protobuf',
  syntax='proto2',
  serialized_pb=_b('\n google/protobuf/descriptor.proto\x12\x0fgoogle.protobuf\"G\n\x11\x46ileDescriptorSet\x12\x32\n\x04\x66ile\x18\x01 \x03(\x0b\x32$.google.protobuf.FileDescriptorProto\"\xdb\x03\n\x13\x46ileDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07package\x18\x02 \x01(\t\x12\x12\n\ndependency\x18\x03 \x03(\t\x12\x19\n\x11public_dependency\x18\n \x03(\x05\x12\x17\n\x0fweak_dependency\x18\x0b \x03(\x05\x12\x36\n\x0cmessage_type\x18\x04 \x03(\x0b\x32 .google.protobuf.DescriptorProto\x12\x37\n\tenum_type\x18\x05 \x03(\x0b\x32$.google.protobuf.EnumDescriptorProto\x12\x38\n\x07service\x18\x06 \x03(\x0b\x32\'.google.protobuf.ServiceDescriptorProto\x12\x38\n\textension\x18\x07 \x03(\x0b\x32%.google.protobuf.FieldDescriptorProto\x12-\n\x07options\x18\x08 \x01(\x0b\x32\x1c.google.protobuf.FileOptions\x12\x39\n\x10source_code_info\x18\t \x01(\x0b\x32\x1f.google.protobuf.SourceCodeInfo\x12\x0e\n\x06syntax\x18\x0c \x01(\t\"\xa9\x05\n\x0f\x44\x65scriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x34\n\x05\x66ield\x18\x02 \x03(\x0b\x32%.google.protobuf.FieldDescriptorProto\x12\x38\n\textension\x18\x06 \x03(\x0b\x32%.google.protobuf.FieldDescriptorProto\x12\x35\n\x0bnested_type\x18\x03 \x03(\x0b\x32 .google.protobuf.DescriptorProto\x12\x37\n\tenum_type\x18\x04 \x03(\x0b\x32$.google.protobuf.EnumDescriptorProto\x12H\n\x0f\x65xtension_range\x18\x05 \x03(\x0b\x32/.google.protobuf.DescriptorProto.ExtensionRange\x12\x39\n\noneof_decl\x18\x08 \x03(\x0b\x32%.google.protobuf.OneofDescriptorProto\x12\x30\n\x07options\x18\x07 \x01(\x0b\x32\x1f.google.protobuf.MessageOptions\x12\x46\n\x0ereserved_range\x18\t \x03(\x0b\x32..google.protobuf.DescriptorProto.ReservedRange\x12\x15\n\rreserved_name\x18\n \x03(\t\x1a\x65\n\x0e\x45xtensionRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\x12\x37\n\x07options\x18\x03 \x01(\x0b\x32&.google.protobuf.ExtensionRangeOptions\x1a+\n\rReservedRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\"g\n\x15\x45xtensionRangeOptions\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xbc\x05\n\x14\x46ieldDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x03 \x01(\x05\x12:\n\x05label\x18\x04 \x01(\x0e\x32+.google.protobuf.FieldDescriptorProto.Label\x12\x38\n\x04type\x18\x05 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.Type\x12\x11\n\ttype_name\x18\x06 \x01(\t\x12\x10\n\x08\x65xtendee\x18\x02 \x01(\t\x12\x15\n\rdefault_value\x18\x07 \x01(\t\x12\x13\n\x0boneof_index\x18\t \x01(\x05\x12\x11\n\tjson_name\x18\n \x01(\t\x12.\n\x07options\x18\x08 \x01(\x0b\x32\x1d.google.protobuf.FieldOptions\"\xb6\x02\n\x04Type\x12\x0f\n\x0bTYPE_DOUBLE\x10\x01\x12\x0e\n\nTYPE_FLOAT\x10\x02\x12\x0e\n\nTYPE_INT64\x10\x03\x12\x0f\n\x0bTYPE_UINT64\x10\x04\x12\x0e\n\nTYPE_INT32\x10\x05\x12\x10\n\x0cTYPE_FIXED64\x10\x06\x12\x10\n\x0cTYPE_FIXED32\x10\x07\x12\r\n\tTYPE_BOOL\x10\x08\x12\x0f\n\x0bTYPE_STRING\x10\t\x12\x0e\n\nTYPE_GROUP\x10\n\x12\x10\n\x0cTYPE_MESSAGE\x10\x0b\x12\x0e\n\nTYPE_BYTES\x10\x0c\x12\x0f\n\x0bTYPE_UINT32\x10\r\x12\r\n\tTYPE_ENUM\x10\x0e\x12\x11\n\rTYPE_SFIXED32\x10\x0f\x12\x11\n\rTYPE_SFIXED64\x10\x10\x12\x0f\n\x0bTYPE_SINT32\x10\x11\x12\x0f\n\x0bTYPE_SINT64\x10\x12\"C\n\x05Label\x12\x12\n\x0eLABEL_OPTIONAL\x10\x01\x12\x12\n\x0eLABEL_REQUIRED\x10\x02\x12\x12\n\x0eLABEL_REPEATED\x10\x03\"T\n\x14OneofDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12.\n\x07options\x18\x02 \x01(\x0b\x32\x1d.google.protobuf.OneofOptions\"\xa4\x02\n\x13\x45numDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x03(\x0b\x32).google.protobuf.EnumValueDescriptorProto\x12-\n\x07options\x18\x03 \x01(\x0b\x32\x1c.google.protobuf.EnumOptions\x12N\n\x0ereserved_range\x18\x04 \x03(\x0b\x32\x36.google.protobuf.EnumDescriptorProto.EnumReservedRange\x12\x15\n\rreserved_name\x18\x05 \x03(\t\x1a/\n\x11\x45numReservedRange\x12\r\n\x05start\x18\x01 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x02 \x01(\x05\"l\n\x18\x45numValueDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06number\x18\x02 \x01(\x05\x12\x32\n\x07options\x18\x03 \x01(\x0b\x32!.google.protobuf.EnumValueOptions\"\x90\x01\n\x16ServiceDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x36\n\x06method\x18\x02 \x03(\x0b\x32&.google.protobuf.MethodDescriptorProto\x12\x30\n\x07options\x18\x03 \x01(\x0b\x32\x1f.google.protobuf.ServiceOptions\"\xc1\x01\n\x15MethodDescriptorProto\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\ninput_type\x18\x02 \x01(\t\x12\x13\n\x0boutput_type\x18\x03 \x01(\t\x12/\n\x07options\x18\x04 \x01(\x0b\x32\x1e.google.protobuf.MethodOptions\x12\x1f\n\x10\x63lient_streaming\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10server_streaming\x18\x06 \x01(\x08:\x05\x66\x61lse\"\xf0\x05\n\x0b\x46ileOptions\x12\x14\n\x0cjava_package\x18\x01 \x01(\t\x12\x1c\n\x14java_outer_classname\x18\x08 \x01(\t\x12\"\n\x13java_multiple_files\x18\n \x01(\x08:\x05\x66\x61lse\x12)\n\x1djava_generate_equals_and_hash\x18\x14 \x01(\x08\x42\x02\x18\x01\x12%\n\x16java_string_check_utf8\x18\x1b \x01(\x08:\x05\x66\x61lse\x12\x46\n\x0coptimize_for\x18\t \x01(\x0e\x32).google.protobuf.FileOptions.OptimizeMode:\x05SPEED\x12\x12\n\ngo_package\x18\x0b \x01(\t\x12\"\n\x13\x63\x63_generic_services\x18\x10 \x01(\x08:\x05\x66\x61lse\x12$\n\x15java_generic_services\x18\x11 \x01(\x08:\x05\x66\x61lse\x12\"\n\x13py_generic_services\x18\x12 \x01(\x08:\x05\x66\x61lse\x12#\n\x14php_generic_services\x18* \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x17 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x10\x63\x63_enable_arenas\x18\x1f \x01(\x08:\x05\x66\x61lse\x12\x19\n\x11objc_class_prefix\x18$ \x01(\t\x12\x18\n\x10\x63sharp_namespace\x18% \x01(\t\x12\x14\n\x0cswift_prefix\x18\' \x01(\t\x12\x18\n\x10php_class_prefix\x18( \x01(\t\x12\x15\n\rphp_namespace\x18) \x01(\t\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption\":\n\x0cOptimizeMode\x12\t\n\x05SPEED\x10\x01\x12\r\n\tCODE_SIZE\x10\x02\x12\x10\n\x0cLITE_RUNTIME\x10\x03*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08&\x10\'\"\xf2\x01\n\x0eMessageOptions\x12&\n\x17message_set_wire_format\x18\x01 \x01(\x08:\x05\x66\x61lse\x12.\n\x1fno_standard_descriptor_accessor\x18\x02 \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x11\n\tmap_entry\x18\x07 \x01(\x08\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x08\x10\tJ\x04\x08\t\x10\n\"\x9e\x03\n\x0c\x46ieldOptions\x12:\n\x05\x63type\x18\x01 \x01(\x0e\x32#.google.protobuf.FieldOptions.CType:\x06STRING\x12\x0e\n\x06packed\x18\x02 \x01(\x08\x12?\n\x06jstype\x18\x06 \x01(\x0e\x32$.google.protobuf.FieldOptions.JSType:\tJS_NORMAL\x12\x13\n\x04lazy\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x13\n\x04weak\x18\n \x01(\x08:\x05\x66\x61lse\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption\"/\n\x05\x43Type\x12\n\n\x06STRING\x10\x00\x12\x08\n\x04\x43ORD\x10\x01\x12\x10\n\x0cSTRING_PIECE\x10\x02\"5\n\x06JSType\x12\r\n\tJS_NORMAL\x10\x00\x12\r\n\tJS_STRING\x10\x01\x12\r\n\tJS_NUMBER\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x04\x10\x05\"^\n\x0cOneofOptions\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x93\x01\n\x0b\x45numOptions\x12\x13\n\x0b\x61llow_alias\x18\x02 \x01(\x08\x12\x19\n\ndeprecated\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02J\x04\x08\x05\x10\x06\"}\n\x10\x45numValueOptions\x12\x19\n\ndeprecated\x18\x01 \x01(\x08:\x05\x66\x61lse\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"{\n\x0eServiceOptions\x12\x19\n\ndeprecated\x18! \x01(\x08:\x05\x66\x61lse\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xad\x02\n\rMethodOptions\x12\x19\n\ndeprecated\x18! \x01(\x08:\x05\x66\x61lse\x12_\n\x11idempotency_level\x18\" \x01(\x0e\x32/.google.protobuf.MethodOptions.IdempotencyLevel:\x13IDEMPOTENCY_UNKNOWN\x12\x43\n\x14uninterpreted_option\x18\xe7\x07 \x03(\x0b\x32$.google.protobuf.UninterpretedOption\"P\n\x10IdempotencyLevel\x12\x17\n\x13IDEMPOTENCY_UNKNOWN\x10\x00\x12\x13\n\x0fNO_SIDE_EFFECTS\x10\x01\x12\x0e\n\nIDEMPOTENT\x10\x02*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x9e\x02\n\x13UninterpretedOption\x12;\n\x04name\x18\x02 \x03(\x0b\x32-.google.protobuf.UninterpretedOption.NamePart\x12\x18\n\x10identifier_value\x18\x03 \x01(\t\x12\x1a\n\x12positive_int_value\x18\x04 \x01(\x04\x12\x1a\n\x12negative_int_value\x18\x05 \x01(\x03\x12\x14\n\x0c\x64ouble_value\x18\x06 \x01(\x01\x12\x14\n\x0cstring_value\x18\x07 \x01(\x0c\x12\x17\n\x0f\x61ggregate_value\x18\x08 \x01(\t\x1a\x33\n\x08NamePart\x12\x11\n\tname_part\x18\x01 \x02(\t\x12\x14\n\x0cis_extension\x18\x02 \x02(\x08\"\xd5\x01\n\x0eSourceCodeInfo\x12:\n\x08location\x18\x01 \x03(\x0b\x32(.google.protobuf.SourceCodeInfo.Location\x1a\x86\x01\n\x08Location\x12\x10\n\x04path\x18\x01 \x03(\x05\x42\x02\x10\x01\x12\x10\n\x04span\x18\x02 \x03(\x05\x42\x02\x10\x01\x12\x18\n\x10leading_comments\x18\x03 \x01(\t\x12\x19\n\x11trailing_comments\x18\x04 \x01(\t\x12!\n\x19leading_detached_comments\x18\x06 \x03(\t\"\xa7\x01\n\x11GeneratedCodeInfo\x12\x41\n\nannotation\x18\x01 \x03(\x0b\x32-.google.protobuf.GeneratedCodeInfo.Annotation\x1aO\n\nAnnotation\x12\x10\n\x04path\x18\x01 \x03(\x05\x42\x02\x10\x01\x12\x13\n\x0bsource_file\x18\x02 \x01(\t\x12\r\n\x05\x62\x65gin\x18\x03 \x01(\x05\x12\x0b\n\x03\x65nd\x18\x04 \x01(\x05\x42\x8f\x01\n\x13\x63om.google.protobufB\x10\x44\x65scriptorProtosH\x01Z>github.com/golang/protobuf/protoc-gen-go/descriptor;descriptor\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1aGoogle.Protobuf.Reflection')
)



_FIELDDESCRIPTORPROTO_TYPE = _descriptor.EnumDescriptor(
  name='Type',
  full_name='google.protobuf.FieldDescriptorProto.Type',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='TYPE_DOUBLE', index=0, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_FLOAT', index=1, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_INT64', index=2, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_UINT64', index=3, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_INT32', index=4, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_FIXED64', index=5, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_FIXED32', index=6, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_BOOL', index=7, number=8,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_STRING', index=8, number=9,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_GROUP', index=9, number=10,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_MESSAGE', index=10, number=11,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_BYTES', index=11, number=12,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_UINT32', index=12, number=13,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_ENUM', index=13, number=14,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_SFIXED32', index=14, number=15,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_SFIXED64', index=15, number=16,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_SINT32', index=16, number=17,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TYPE_SINT64', index=17, number=18,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=1715,
  serialized_end=2025,
)
_sym_db.RegisterEnumDescriptor(_FIELDDESCRIPTORPROTO_TYPE)

_FIELDDESCRIPTORPROTO_LABEL = _descriptor.EnumDescriptor(
  name='Label',
  full_name='google.protobuf.FieldDescriptorProto.Label',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='LABEL_OPTIONAL', index=0, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LABEL_REQUIRED', index=1, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LABEL_REPEATED', index=2, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2027,
  serialized_end=2094,
)
_sym_db.RegisterEnumDescriptor(_FIELDDESCRIPTORPROTO_LABEL)

_FILEOPTIONS_OPTIMIZEMODE = _descriptor.EnumDescriptor(
  name='OptimizeMode',
  full_name='google.protobuf.FileOptions.OptimizeMode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='SPEED', index=0, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CODE_SIZE', index=1, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LITE_RUNTIME', index=2, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3608,
  serialized_end=3666,
)
_sym_db.RegisterEnumDescriptor(_FILEOPTIONS_OPTIMIZEMODE)

_FIELDOPTIONS_CTYPE = _descriptor.EnumDescriptor(
  name='CType',
  full_name='google.protobuf.FieldOptions.CType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='STRING', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CORD', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='STRING_PIECE', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4226,
  serialized_end=4273,
)
_sym_db.RegisterEnumDescriptor(_FIELDOPTIONS_CTYPE)

_FIELDOPTIONS_JSTYPE = _descriptor.EnumDescriptor(
  name='JSType',
  full_name='google.protobuf.FieldOptions.JSType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='JS_NORMAL', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='JS_STRING', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='JS_NUMBER', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4275,
  serialized_end=4328,
)
_sym_db.RegisterEnumDescriptor(_FIELDOPTIONS_JSTYPE)

_METHODOPTIONS_IDEMPOTENCYLEVEL = _descriptor.EnumDescriptor(
  name='IdempotencyLevel',
  full_name='google.protobuf.MethodOptions.IdempotencyLevel',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='IDEMPOTENCY_UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NO_SIDE_EFFECTS', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IDEMPOTENT', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=5056,
  serialized_end=5136,
)
_sym_db.RegisterEnumDescriptor(_METHODOPTIONS_IDEMPOTENCYLEVEL)


_FILEDESCRIPTORSET = _descriptor.Descriptor(
  name='FileDescriptorSet',
  full_name='google.protobuf.FileDescriptorSet',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='file', full_name='google.protobuf.FileDescriptorSet.file', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=53,
  serialized_end=124,
)


_FILEDESCRIPTORPROTO = _descriptor.Descriptor(
  name='FileDescriptorProto',
  full_name='google.protobuf.FileDescriptorProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.FileDescriptorProto.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='package', full_name='google.protobuf.FileDescriptorProto.package', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dependency', full_name='google.protobuf.FileDescriptorProto.dependency', index=2,
      number=3, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='public_dependency', full_name='google.protobuf.FileDescriptorProto.public_dependency', index=3,
      number=10, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='weak_dependency', full_name='google.protobuf.FileDescriptorProto.weak_dependency', index=4,
      number=11, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='message_type', full_name='google.protobuf.FileDescriptorProto.message_type', index=5,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='enum_type', full_name='google.protobuf.FileDescriptorProto.enum_type', index=6,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='service', full_name='google.protobuf.FileDescriptorProto.service', index=7,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='extension', full_name='google.protobuf.FileDescriptorProto.extension', index=8,
      number=7, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.FileDescriptorProto.options', index=9,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='source_code_info', full_name='google.protobuf.FileDescriptorProto.source_code_info', index=10,
      number=9, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='syntax', full_name='google.protobuf.FileDescriptorProto.syntax', index=11,
      number=12, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=127,
  serialized_end=602,
)


_DESCRIPTORPROTO_EXTENSIONRANGE = _descriptor.Descriptor(
  name='ExtensionRange',
  full_name='google.protobuf.DescriptorProto.ExtensionRange',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='start', full_name='google.protobuf.DescriptorProto.ExtensionRange.start', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='end', full_name='google.protobuf.DescriptorProto.ExtensionRange.end', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.DescriptorProto.ExtensionRange.options', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1140,
  serialized_end=1241,
)

_DESCRIPTORPROTO_RESERVEDRANGE = _descriptor.Descriptor(
  name='ReservedRange',
  full_name='google.protobuf.DescriptorProto.ReservedRange',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='start', full_name='google.protobuf.DescriptorProto.ReservedRange.start', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='end', full_name='google.protobuf.DescriptorProto.ReservedRange.end', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1243,
  serialized_end=1286,
)

_DESCRIPTORPROTO = _descriptor.Descriptor(
  name='DescriptorProto',
  full_name='google.protobuf.DescriptorProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.DescriptorProto.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field', full_name='google.protobuf.DescriptorProto.field', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='extension', full_name='google.protobuf.DescriptorProto.extension', index=2,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_type', full_name='google.protobuf.DescriptorProto.nested_type', index=3,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='enum_type', full_name='google.protobuf.DescriptorProto.enum_type', index=4,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='extension_range', full_name='google.protobuf.DescriptorProto.extension_range', index=5,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_decl', full_name='google.protobuf.DescriptorProto.oneof_decl', index=6,
      number=8, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.DescriptorProto.options', index=7,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='reserved_range', full_name='google.protobuf.DescriptorProto.reserved_range', index=8,
      number=9, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='reserved_name', full_name='google.protobuf.DescriptorProto.reserved_name', index=9,
      number=10, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_DESCRIPTORPROTO_EXTENSIONRANGE, _DESCRIPTORPROTO_RESERVEDRANGE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=605,
  serialized_end=1286,
)


_EXTENSIONRANGEOPTIONS = _descriptor.Descriptor(
  name='ExtensionRangeOptions',
  full_name='google.protobuf.ExtensionRangeOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='uninterpreted_option', full_name='google.protobuf.ExtensionRangeOptions.uninterpreted_option', index=0,
      number=999, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=1288,
  serialized_end=1391,
)


_FIELDDESCRIPTORPROTO = _descriptor.Descriptor(
  name='FieldDescriptorProto',
  full_name='google.protobuf.FieldDescriptorProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.FieldDescriptorProto.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='number', full_name='google.protobuf.FieldDescriptorProto.number', index=1,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='label', full_name='google.protobuf.FieldDescriptorProto.label', index=2,
      number=4, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type', full_name='google.protobuf.FieldDescriptorProto.type', index=3,
      number=5, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type_name', full_name='google.protobuf.FieldDescriptorProto.type_name', index=4,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='extendee', full_name='google.protobuf.FieldDescriptorProto.extendee', index=5,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_value', full_name='google.protobuf.FieldDescriptorProto.default_value', index=6,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_index', full_name='google.protobuf.FieldDescriptorProto.oneof_index', index=7,
      number=9, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='json_name', full_name='google.protobuf.FieldDescriptorProto.json_name', index=8,
      number=10, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.FieldDescriptorProto.options', index=9,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FIELDDESCRIPTORPROTO_TYPE,
    _FIELDDESCRIPTORPROTO_LABEL,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1394,
  serialized_end=2094,
)


_ONEOFDESCRIPTORPROTO = _descriptor.Descriptor(
  name='OneofDescriptorProto',
  full_name='google.protobuf.OneofDescriptorProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.OneofDescriptorProto.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.OneofDescriptorProto.options', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2096,
  serialized_end=2180,
)


_ENUMDESCRIPTORPROTO_ENUMRESERVEDRANGE = _descriptor.Descriptor(
  name='EnumReservedRange',
  full_name='google.protobuf.EnumDescriptorProto.EnumReservedRange',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='start', full_name='google.protobuf.EnumDescriptorProto.EnumReservedRange.start', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='end', full_name='google.protobuf.EnumDescriptorProto.EnumReservedRange.end', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2428,
  serialized_end=2475,
)

_ENUMDESCRIPTORPROTO = _descriptor.Descriptor(
  name='EnumDescriptorProto',
  full_name='google.protobuf.EnumDescriptorProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.EnumDescriptorProto.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.EnumDescriptorProto.value', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.EnumDescriptorProto.options', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='reserved_range', full_name='google.protobuf.EnumDescriptorProto.reserved_range', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='reserved_name', full_name='google.protobuf.EnumDescriptorProto.reserved_name', index=4,
      number=5, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_ENUMDESCRIPTORPROTO_ENUMRESERVEDRANGE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2183,
  serialized_end=2475,
)


_ENUMVALUEDESCRIPTORPROTO = _descriptor.Descriptor(
  name='EnumValueDescriptorProto',
  full_name='google.protobuf.EnumValueDescriptorProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.EnumValueDescriptorProto.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='number', full_name='google.protobuf.EnumValueDescriptorProto.number', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.EnumValueDescriptorProto.options', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2477,
  serialized_end=2585,
)


_SERVICEDESCRIPTORPROTO = _descriptor.Descriptor(
  name='ServiceDescriptorProto',
  full_name='google.protobuf.ServiceDescriptorProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.ServiceDescriptorProto.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='method', full_name='google.protobuf.ServiceDescriptorProto.method', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.ServiceDescriptorProto.options', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2588,
  serialized_end=2732,
)


_METHODDESCRIPTORPROTO = _descriptor.Descriptor(
  name='MethodDescriptorProto',
  full_name='google.protobuf.MethodDescriptorProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.MethodDescriptorProto.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='input_type', full_name='google.protobuf.MethodDescriptorProto.input_type', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='output_type', full_name='google.protobuf.MethodDescriptorProto.output_type', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.MethodDescriptorProto.options', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='client_streaming', full_name='google.protobuf.MethodDescriptorProto.client_streaming', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='server_streaming', full_name='google.protobuf.MethodDescriptorProto.server_streaming', index=5,
      number=6, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2735,
  serialized_end=2928,
)


_FILEOPTIONS = _descriptor.Descriptor(
  name='FileOptions',
  full_name='google.protobuf.FileOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='java_package', full_name='google.protobuf.FileOptions.java_package', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='java_outer_classname', full_name='google.protobuf.FileOptions.java_outer_classname', index=1,
      number=8, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='java_multiple_files', full_name='google.protobuf.FileOptions.java_multiple_files', index=2,
      number=10, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='java_generate_equals_and_hash', full_name='google.protobuf.FileOptions.java_generate_equals_and_hash', index=3,
      number=20, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='java_string_check_utf8', full_name='google.protobuf.FileOptions.java_string_check_utf8', index=4,
      number=27, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optimize_for', full_name='google.protobuf.FileOptions.optimize_for', index=5,
      number=9, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='go_package', full_name='google.protobuf.FileOptions.go_package', index=6,
      number=11, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='cc_generic_services', full_name='google.protobuf.FileOptions.cc_generic_services', index=7,
      number=16, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='java_generic_services', full_name='google.protobuf.FileOptions.java_generic_services', index=8,
      number=17, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='py_generic_services', full_name='google.protobuf.FileOptions.py_generic_services', index=9,
      number=18, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='php_generic_services', full_name='google.protobuf.FileOptions.php_generic_services', index=10,
      number=42, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='deprecated', full_name='google.protobuf.FileOptions.deprecated', index=11,
      number=23, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='cc_enable_arenas', full_name='google.protobuf.FileOptions.cc_enable_arenas', index=12,
      number=31, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='objc_class_prefix', full_name='google.protobuf.FileOptions.objc_class_prefix', index=13,
      number=36, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='csharp_namespace', full_name='google.protobuf.FileOptions.csharp_namespace', index=14,
      number=37, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='swift_prefix', full_name='google.protobuf.FileOptions.swift_prefix', index=15,
      number=39, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='php_class_prefix', full_name='google.protobuf.FileOptions.php_class_prefix', index=16,
      number=40, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='php_namespace', full_name='google.protobuf.FileOptions.php_namespace', index=17,
      number=41, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uninterpreted_option', full_name='google.protobuf.FileOptions.uninterpreted_option', index=18,
      number=999, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FILEOPTIONS_OPTIMIZEMODE,
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=2931,
  serialized_end=3683,
)


_MESSAGEOPTIONS = _descriptor.Descriptor(
  name='MessageOptions',
  full_name='google.protobuf.MessageOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='message_set_wire_format', full_name='google.protobuf.MessageOptions.message_set_wire_format', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='no_standard_descriptor_accessor', full_name='google.protobuf.MessageOptions.no_standard_descriptor_accessor', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='deprecated', full_name='google.protobuf.MessageOptions.deprecated', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_entry', full_name='google.protobuf.MessageOptions.map_entry', index=3,
      number=7, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uninterpreted_option', full_name='google.protobuf.MessageOptions.uninterpreted_option', index=4,
      number=999, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=3686,
  serialized_end=3928,
)


_FIELDOPTIONS = _descriptor.Descriptor(
  name='FieldOptions',
  full_name='google.protobuf.FieldOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='ctype', full_name='google.protobuf.FieldOptions.ctype', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed', full_name='google.protobuf.FieldOptions.packed', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='jstype', full_name='google.protobuf.FieldOptions.jstype', index=2,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='lazy', full_name='google.protobuf.FieldOptions.lazy', index=3,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='deprecated', full_name='google.protobuf.FieldOptions.deprecated', index=4,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='weak', full_name='google.protobuf.FieldOptions.weak', index=5,
      number=10, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uninterpreted_option', full_name='google.protobuf.FieldOptions.uninterpreted_option', index=6,
      number=999, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _FIELDOPTIONS_CTYPE,
    _FIELDOPTIONS_JSTYPE,
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=3931,
  serialized_end=4345,
)


_ONEOFOPTIONS = _descriptor.Descriptor(
  name='OneofOptions',
  full_name='google.protobuf.OneofOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='uninterpreted_option', full_name='google.protobuf.OneofOptions.uninterpreted_option', index=0,
      number=999, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=4347,
  serialized_end=4441,
)


_ENUMOPTIONS = _descriptor.Descriptor(
  name='EnumOptions',
  full_name='google.protobuf.EnumOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='allow_alias', full_name='google.protobuf.EnumOptions.allow_alias', index=0,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='deprecated', full_name='google.protobuf.EnumOptions.deprecated', index=1,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uninterpreted_option', full_name='google.protobuf.EnumOptions.uninterpreted_option', index=2,
      number=999, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=4444,
  serialized_end=4591,
)


_ENUMVALUEOPTIONS = _descriptor.Descriptor(
  name='EnumValueOptions',
  full_name='google.protobuf.EnumValueOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='deprecated', full_name='google.protobuf.EnumValueOptions.deprecated', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uninterpreted_option', full_name='google.protobuf.EnumValueOptions.uninterpreted_option', index=1,
      number=999, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=4593,
  serialized_end=4718,
)


_SERVICEOPTIONS = _descriptor.Descriptor(
  name='ServiceOptions',
  full_name='google.protobuf.ServiceOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='deprecated', full_name='google.protobuf.ServiceOptions.deprecated', index=0,
      number=33, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uninterpreted_option', full_name='google.protobuf.ServiceOptions.uninterpreted_option', index=1,
      number=999, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=4720,
  serialized_end=4843,
)


_METHODOPTIONS = _descriptor.Descriptor(
  name='MethodOptions',
  full_name='google.protobuf.MethodOptions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='deprecated', full_name='google.protobuf.MethodOptions.deprecated', index=0,
      number=33, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='idempotency_level', full_name='google.protobuf.MethodOptions.idempotency_level', index=1,
      number=34, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='uninterpreted_option', full_name='google.protobuf.MethodOptions.uninterpreted_option', index=2,
      number=999, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _METHODOPTIONS_IDEMPOTENCYLEVEL,
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=4846,
  serialized_end=5147,
)


_UNINTERPRETEDOPTION_NAMEPART = _descriptor.Descriptor(
  name='NamePart',
  full_name='google.protobuf.UninterpretedOption.NamePart',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name_part', full_name='google.protobuf.UninterpretedOption.NamePart.name_part', index=0,
      number=1, type=9, cpp_type=9, label=2,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='is_extension', full_name='google.protobuf.UninterpretedOption.NamePart.is_extension', index=1,
      number=2, type=8, cpp_type=7, label=2,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5385,
  serialized_end=5436,
)

_UNINTERPRETEDOPTION = _descriptor.Descriptor(
  name='UninterpretedOption',
  full_name='google.protobuf.UninterpretedOption',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.UninterpretedOption.name', index=0,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='identifier_value', full_name='google.protobuf.UninterpretedOption.identifier_value', index=1,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='positive_int_value', full_name='google.protobuf.UninterpretedOption.positive_int_value', index=2,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='negative_int_value', full_name='google.protobuf.UninterpretedOption.negative_int_value', index=3,
      number=5, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='double_value', full_name='google.protobuf.UninterpretedOption.double_value', index=4,
      number=6, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_value', full_name='google.protobuf.UninterpretedOption.string_value', index=5,
      number=7, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='aggregate_value', full_name='google.protobuf.UninterpretedOption.aggregate_value', index=6,
      number=8, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_UNINTERPRETEDOPTION_NAMEPART, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5150,
  serialized_end=5436,
)


_SOURCECODEINFO_LOCATION = _descriptor.Descriptor(
  name='Location',
  full_name='google.protobuf.SourceCodeInfo.Location',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='path', full_name='google.protobuf.SourceCodeInfo.Location.path', index=0,
      number=1, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='span', full_name='google.protobuf.SourceCodeInfo.Location.span', index=1,
      number=2, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='leading_comments', full_name='google.protobuf.SourceCodeInfo.Location.leading_comments', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='trailing_comments', full_name='google.protobuf.SourceCodeInfo.Location.trailing_comments', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='leading_detached_comments', full_name='google.protobuf.SourceCodeInfo.Location.leading_detached_comments', index=4,
      number=6, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5518,
  serialized_end=5652,
)

_SOURCECODEINFO = _descriptor.Descriptor(
  name='SourceCodeInfo',
  full_name='google.protobuf.SourceCodeInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='location', full_name='google.protobuf.SourceCodeInfo.location', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_SOURCECODEINFO_LOCATION, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5439,
  serialized_end=5652,
)


_GENERATEDCODEINFO_ANNOTATION = _descriptor.Descriptor(
  name='Annotation',
  full_name='google.protobuf.GeneratedCodeInfo.Annotation',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='path', full_name='google.protobuf.GeneratedCodeInfo.Annotation.path', index=0,
      number=1, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='source_file', full_name='google.protobuf.GeneratedCodeInfo.Annotation.source_file', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='begin', full_name='google.protobuf.GeneratedCodeInfo.Annotation.begin', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='end', full_name='google.protobuf.GeneratedCodeInfo.Annotation.end', index=3,
      number=4, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5743,
  serialized_end=5822,
)

_GENERATEDCODEINFO = _descriptor.Descriptor(
  name='GeneratedCodeInfo',
  full_name='google.protobuf.GeneratedCodeInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='annotation', full_name='google.protobuf.GeneratedCodeInfo.annotation', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_GENERATEDCODEINFO_ANNOTATION, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5655,
  serialized_end=5822,
)

_FILEDESCRIPTORSET.fields_by_name['file'].message_type = _FILEDESCRIPTORPROTO
_FILEDESCRIPTORPROTO.fields_by_name['message_type'].message_type = _DESCRIPTORPROTO
_FILEDESCRIPTORPROTO.fields_by_name['enum_type'].message_type = _ENUMDESCRIPTORPROTO
_FILEDESCRIPTORPROTO.fields_by_name['service'].message_type = _SERVICEDESCRIPTORPROTO
_FILEDESCRIPTORPROTO.fields_by_name['extension'].message_type = _FIELDDESCRIPTORPROTO
_FILEDESCRIPTORPROTO.fields_by_name['options'].message_type = _FILEOPTIONS
_FILEDESCRIPTORPROTO.fields_by_name['source_code_info'].message_type = _SOURCECODEINFO
_DESCRIPTORPROTO_EXTENSIONRANGE.fields_by_name['options'].message_type = _EXTENSIONRANGEOPTIONS
_DESCRIPTORPROTO_EXTENSIONRANGE.containing_type = _DESCRIPTORPROTO
_DESCRIPTORPROTO_RESERVEDRANGE.containing_type = _DESCRIPTORPROTO
_DESCRIPTORPROTO.fields_by_name['field'].message_type = _FIELDDESCRIPTORPROTO
_DESCRIPTORPROTO.fields_by_name['extension'].message_type = _FIELDDESCRIPTORPROTO
_DESCRIPTORPROTO.fields_by_name['nested_type'].message_type = _DESCRIPTORPROTO
_DESCRIPTORPROTO.fields_by_name['enum_type'].message_type = _ENUMDESCRIPTORPROTO
_DESCRIPTORPROTO.fields_by_name['extension_range'].message_type = _DESCRIPTORPROTO_EXTENSIONRANGE
_DESCRIPTORPROTO.fields_by_name['oneof_decl'].message_type = _ONEOFDESCRIPTORPROTO
_DESCRIPTORPROTO.fields_by_name['options'].message_type = _MESSAGEOPTIONS
_DESCRIPTORPROTO.fields_by_name['reserved_range'].message_type = _DESCRIPTORPROTO_RESERVEDRANGE
_EXTENSIONRANGEOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION
_FIELDDESCRIPTORPROTO.fields_by_name['label'].enum_type = _FIELDDESCRIPTORPROTO_LABEL
_FIELDDESCRIPTORPROTO.fields_by_name['type'].enum_type = _FIELDDESCRIPTORPROTO_TYPE
_FIELDDESCRIPTORPROTO.fields_by_name['options'].message_type = _FIELDOPTIONS
_FIELDDESCRIPTORPROTO_TYPE.containing_type = _FIELDDESCRIPTORPROTO
_FIELDDESCRIPTORPROTO_LABEL.containing_type = _FIELDDESCRIPTORPROTO
_ONEOFDESCRIPTORPROTO.fields_by_name['options'].message_type = _ONEOFOPTIONS
_ENUMDESCRIPTORPROTO_ENUMRESERVEDRANGE.containing_type = _ENUMDESCRIPTORPROTO
_ENUMDESCRIPTORPROTO.fields_by_name['value'].message_type = _ENUMVALUEDESCRIPTORPROTO
_ENUMDESCRIPTORPROTO.fields_by_name['options'].message_type = _ENUMOPTIONS
_ENUMDESCRIPTORPROTO.fields_by_name['reserved_range'].message_type = _ENUMDESCRIPTORPROTO_ENUMRESERVEDRANGE
_ENUMVALUEDESCRIPTORPROTO.fields_by_name['options'].message_type = _ENUMVALUEOPTIONS
_SERVICEDESCRIPTORPROTO.fields_by_name['method'].message_type = _METHODDESCRIPTORPROTO
_SERVICEDESCRIPTORPROTO.fields_by_name['options'].message_type = _SERVICEOPTIONS
_METHODDESCRIPTORPROTO.fields_by_name['options'].message_type = _METHODOPTIONS
_FILEOPTIONS.fields_by_name['optimize_for'].enum_type = _FILEOPTIONS_OPTIMIZEMODE
_FILEOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION
_FILEOPTIONS_OPTIMIZEMODE.containing_type = _FILEOPTIONS
_MESSAGEOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION
_FIELDOPTIONS.fields_by_name['ctype'].enum_type = _FIELDOPTIONS_CTYPE
_FIELDOPTIONS.fields_by_name['jstype'].enum_type = _FIELDOPTIONS_JSTYPE
_FIELDOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION
_FIELDOPTIONS_CTYPE.containing_type = _FIELDOPTIONS
_FIELDOPTIONS_JSTYPE.containing_type = _FIELDOPTIONS
_ONEOFOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION
_ENUMOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION
_ENUMVALUEOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION
_SERVICEOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION
_METHODOPTIONS.fields_by_name['idempotency_level'].enum_type = _METHODOPTIONS_IDEMPOTENCYLEVEL
_METHODOPTIONS.fields_by_name['uninterpreted_option'].message_type = _UNINTERPRETEDOPTION
_METHODOPTIONS_IDEMPOTENCYLEVEL.containing_type = _METHODOPTIONS
_UNINTERPRETEDOPTION_NAMEPART.containing_type = _UNINTERPRETEDOPTION
_UNINTERPRETEDOPTION.fields_by_name['name'].message_type = _UNINTERPRETEDOPTION_NAMEPART
_SOURCECODEINFO_LOCATION.containing_type = _SOURCECODEINFO
_SOURCECODEINFO.fields_by_name['location'].message_type = _SOURCECODEINFO_LOCATION
_GENERATEDCODEINFO_ANNOTATION.containing_type = _GENERATEDCODEINFO
_GENERATEDCODEINFO.fields_by_name['annotation'].message_type = _GENERATEDCODEINFO_ANNOTATION
DESCRIPTOR.message_types_by_name['FileDescriptorSet'] = _FILEDESCRIPTORSET
DESCRIPTOR.message_types_by_name['FileDescriptorProto'] = _FILEDESCRIPTORPROTO
DESCRIPTOR.message_types_by_name['DescriptorProto'] = _DESCRIPTORPROTO
DESCRIPTOR.message_types_by_name['ExtensionRangeOptions'] = _EXTENSIONRANGEOPTIONS
DESCRIPTOR.message_types_by_name['FieldDescriptorProto'] = _FIELDDESCRIPTORPROTO
DESCRIPTOR.message_types_by_name['OneofDescriptorProto'] = _ONEOFDESCRIPTORPROTO
DESCRIPTOR.message_types_by_name['EnumDescriptorProto'] = _ENUMDESCRIPTORPROTO
DESCRIPTOR.message_types_by_name['EnumValueDescriptorProto'] = _ENUMVALUEDESCRIPTORPROTO
DESCRIPTOR.message_types_by_name['ServiceDescriptorProto'] = _SERVICEDESCRIPTORPROTO
DESCRIPTOR.message_types_by_name['MethodDescriptorProto'] = _METHODDESCRIPTORPROTO
DESCRIPTOR.message_types_by_name['FileOptions'] = _FILEOPTIONS
DESCRIPTOR.message_types_by_name['MessageOptions'] = _MESSAGEOPTIONS
DESCRIPTOR.message_types_by_name['FieldOptions'] = _FIELDOPTIONS
DESCRIPTOR.message_types_by_name['OneofOptions'] = _ONEOFOPTIONS
DESCRIPTOR.message_types_by_name['EnumOptions'] = _ENUMOPTIONS
DESCRIPTOR.message_types_by_name['EnumValueOptions'] = _ENUMVALUEOPTIONS
DESCRIPTOR.message_types_by_name['ServiceOptions'] = _SERVICEOPTIONS
DESCRIPTOR.message_types_by_name['MethodOptions'] = _METHODOPTIONS
DESCRIPTOR.message_types_by_name['UninterpretedOption'] = _UNINTERPRETEDOPTION
DESCRIPTOR.message_types_by_name['SourceCodeInfo'] = _SOURCECODEINFO
DESCRIPTOR.message_types_by_name['GeneratedCodeInfo'] = _GENERATEDCODEINFO
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

FileDescriptorSet = _reflection.GeneratedProtocolMessageType('FileDescriptorSet', (_message.Message,), dict(
  DESCRIPTOR = _FILEDESCRIPTORSET,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.FileDescriptorSet)
  ))
_sym_db.RegisterMessage(FileDescriptorSet)

FileDescriptorProto = _reflection.GeneratedProtocolMessageType('FileDescriptorProto', (_message.Message,), dict(
  DESCRIPTOR = _FILEDESCRIPTORPROTO,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.FileDescriptorProto)
  ))
_sym_db.RegisterMessage(FileDescriptorProto)

DescriptorProto = _reflection.GeneratedProtocolMessageType('DescriptorProto', (_message.Message,), dict(

  ExtensionRange = _reflection.GeneratedProtocolMessageType('ExtensionRange', (_message.Message,), dict(
    DESCRIPTOR = _DESCRIPTORPROTO_EXTENSIONRANGE,
    __module__ = 'google.protobuf.descriptor_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.DescriptorProto.ExtensionRange)
    ))
  ,

  ReservedRange = _reflection.GeneratedProtocolMessageType('ReservedRange', (_message.Message,), dict(
    DESCRIPTOR = _DESCRIPTORPROTO_RESERVEDRANGE,
    __module__ = 'google.protobuf.descriptor_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.DescriptorProto.ReservedRange)
    ))
  ,
  DESCRIPTOR = _DESCRIPTORPROTO,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.DescriptorProto)
  ))
_sym_db.RegisterMessage(DescriptorProto)
_sym_db.RegisterMessage(DescriptorProto.ExtensionRange)
_sym_db.RegisterMessage(DescriptorProto.ReservedRange)

ExtensionRangeOptions = _reflection.GeneratedProtocolMessageType('ExtensionRangeOptions', (_message.Message,), dict(
  DESCRIPTOR = _EXTENSIONRANGEOPTIONS,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.ExtensionRangeOptions)
  ))
_sym_db.RegisterMessage(ExtensionRangeOptions)

FieldDescriptorProto = _reflection.GeneratedProtocolMessageType('FieldDescriptorProto', (_message.Message,), dict(
  DESCRIPTOR = _FIELDDESCRIPTORPROTO,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.FieldDescriptorProto)
  ))
_sym_db.RegisterMessage(FieldDescriptorProto)

OneofDescriptorProto = _reflection.GeneratedProtocolMessageType('OneofDescriptorProto', (_message.Message,), dict(
  DESCRIPTOR = _ONEOFDESCRIPTORPROTO,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.OneofDescriptorProto)
  ))
_sym_db.RegisterMessage(OneofDescriptorProto)

EnumDescriptorProto = _reflection.GeneratedProtocolMessageType('EnumDescriptorProto', (_message.Message,), dict(

  EnumReservedRange = _reflection.GeneratedProtocolMessageType('EnumReservedRange', (_message.Message,), dict(
    DESCRIPTOR = _ENUMDESCRIPTORPROTO_ENUMRESERVEDRANGE,
    __module__ = 'google.protobuf.descriptor_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.EnumDescriptorProto.EnumReservedRange)
    ))
  ,
  DESCRIPTOR = _ENUMDESCRIPTORPROTO,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.EnumDescriptorProto)
  ))
_sym_db.RegisterMessage(EnumDescriptorProto)
_sym_db.RegisterMessage(EnumDescriptorProto.EnumReservedRange)

EnumValueDescriptorProto = _reflection.GeneratedProtocolMessageType('EnumValueDescriptorProto', (_message.Message,), dict(
  DESCRIPTOR = _ENUMVALUEDESCRIPTORPROTO,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.EnumValueDescriptorProto)
  ))
_sym_db.RegisterMessage(EnumValueDescriptorProto)

ServiceDescriptorProto = _reflection.GeneratedProtocolMessageType('ServiceDescriptorProto', (_message.Message,), dict(
  DESCRIPTOR = _SERVICEDESCRIPTORPROTO,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.ServiceDescriptorProto)
  ))
_sym_db.RegisterMessage(ServiceDescriptorProto)

MethodDescriptorProto = _reflection.GeneratedProtocolMessageType('MethodDescriptorProto', (_message.Message,), dict(
  DESCRIPTOR = _METHODDESCRIPTORPROTO,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.MethodDescriptorProto)
  ))
_sym_db.RegisterMessage(MethodDescriptorProto)

FileOptions = _reflection.GeneratedProtocolMessageType('FileOptions', (_message.Message,), dict(
  DESCRIPTOR = _FILEOPTIONS,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.FileOptions)
  ))
_sym_db.RegisterMessage(FileOptions)

MessageOptions = _reflection.GeneratedProtocolMessageType('MessageOptions', (_message.Message,), dict(
  DESCRIPTOR = _MESSAGEOPTIONS,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.MessageOptions)
  ))
_sym_db.RegisterMessage(MessageOptions)

FieldOptions = _reflection.GeneratedProtocolMessageType('FieldOptions', (_message.Message,), dict(
  DESCRIPTOR = _FIELDOPTIONS,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.FieldOptions)
  ))
_sym_db.RegisterMessage(FieldOptions)

OneofOptions = _reflection.GeneratedProtocolMessageType('OneofOptions', (_message.Message,), dict(
  DESCRIPTOR = _ONEOFOPTIONS,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.OneofOptions)
  ))
_sym_db.RegisterMessage(OneofOptions)

EnumOptions = _reflection.GeneratedProtocolMessageType('EnumOptions', (_message.Message,), dict(
  DESCRIPTOR = _ENUMOPTIONS,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.EnumOptions)
  ))
_sym_db.RegisterMessage(EnumOptions)

EnumValueOptions = _reflection.GeneratedProtocolMessageType('EnumValueOptions', (_message.Message,), dict(
  DESCRIPTOR = _ENUMVALUEOPTIONS,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.EnumValueOptions)
  ))
_sym_db.RegisterMessage(EnumValueOptions)

ServiceOptions = _reflection.GeneratedProtocolMessageType('ServiceOptions', (_message.Message,), dict(
  DESCRIPTOR = _SERVICEOPTIONS,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.ServiceOptions)
  ))
_sym_db.RegisterMessage(ServiceOptions)

MethodOptions = _reflection.GeneratedProtocolMessageType('MethodOptions', (_message.Message,), dict(
  DESCRIPTOR = _METHODOPTIONS,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.MethodOptions)
  ))
_sym_db.RegisterMessage(MethodOptions)

UninterpretedOption = _reflection.GeneratedProtocolMessageType('UninterpretedOption', (_message.Message,), dict(

  NamePart = _reflection.GeneratedProtocolMessageType('NamePart', (_message.Message,), dict(
    DESCRIPTOR = _UNINTERPRETEDOPTION_NAMEPART,
    __module__ = 'google.protobuf.descriptor_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.UninterpretedOption.NamePart)
    ))
  ,
  DESCRIPTOR = _UNINTERPRETEDOPTION,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.UninterpretedOption)
  ))
_sym_db.RegisterMessage(UninterpretedOption)
_sym_db.RegisterMessage(UninterpretedOption.NamePart)

SourceCodeInfo = _reflection.GeneratedProtocolMessageType('SourceCodeInfo', (_message.Message,), dict(

  Location = _reflection.GeneratedProtocolMessageType('Location', (_message.Message,), dict(
    DESCRIPTOR = _SOURCECODEINFO_LOCATION,
    __module__ = 'google.protobuf.descriptor_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.SourceCodeInfo.Location)
    ))
  ,
  DESCRIPTOR = _SOURCECODEINFO,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.SourceCodeInfo)
  ))
_sym_db.RegisterMessage(SourceCodeInfo)
_sym_db.RegisterMessage(SourceCodeInfo.Location)

GeneratedCodeInfo = _reflection.GeneratedProtocolMessageType('GeneratedCodeInfo', (_message.Message,), dict(

  Annotation = _reflection.GeneratedProtocolMessageType('Annotation', (_message.Message,), dict(
    DESCRIPTOR = _GENERATEDCODEINFO_ANNOTATION,
    __module__ = 'google.protobuf.descriptor_pb2'
    # @@protoc_insertion_point(class_scope:google.protobuf.GeneratedCodeInfo.Annotation)
    ))
  ,
  DESCRIPTOR = _GENERATEDCODEINFO,
  __module__ = 'google.protobuf.descriptor_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.GeneratedCodeInfo)
  ))
_sym_db.RegisterMessage(GeneratedCodeInfo)
_sym_db.RegisterMessage(GeneratedCodeInfo.Annotation)


# @@protoc_insertion_point(module_scope)
PK�\H
S���protobuf/descriptor.pycnu�[����
���hc@s�dZdZddlZddlmZeZej�dkr}ddlZddl	Z	ddl
mZeede�Znde
fd	��YZd
efd��YZer�defd
��YZneZdeje�fd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZd efd!��YZd"�Zd#�Zd$�Zd%�Z d&e!dd'�Z#dS((s�Descriptors essentially contain exactly the information found in a .proto
file, in types that make this information accessible in Python.
s#robinson@google.com (Will Robinson)i����N(tapi_implementationtcpp(t_messaget_USE_C_DESCRIPTORStErrorcBseZdZRS(sBase error for this module.(t__name__t
__module__t__doc__(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR2stTypeTransformationErrorcBseZdZRS(sHError transforming between python proto type and corresponding C++ type.(RRR(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR6stDescriptorMetaclasscBseZd�ZRS(cCs6tt|�j|�rtSt||j�r2tStS(N(tsuperR	t__instancecheck__tTruet
isinstancet_C_DESCRIPTOR_CLASStFalse(tclstobj((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR@s
(RRR(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR	?stDescriptorBasecBs8eZdZerdZnd�Zd�Zd�ZRS(s�Descriptors base class.

  This class is the base of all descriptor classes. It provides common options
  related functionality.

  Attributes:
    has_options:  True if the descriptor has non-default options.  Usually it
        is not necessary to read this -- just call GetOptions() which will
        happily return the default instance.  However, it's sometimes useful
        for efficiency, and also useful inside the protobuf implementation to
        avoid some bootstrapping issues.
  cCs%||_||_|dk	|_dS(s�Initialize the descriptor given its options message and the name of the
    class of the options message. The name of the class is required in case
    the options message is None and has to be created.
    N(t_optionst_options_class_nametNonethas_options(tselftoptionstoptions_class_name((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt__init___s		cCs%||_||_|dk	|_dS(s�Sets the descriptor's options

    This function is used in generated proto2 files to update descriptor
    options. It must not be used outside proto2.
    N(RRRR(RRR((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt_SetOptionsjs		cCsp|jr|jSddlm}yt||j�}Wn$tk
r\td|j��nX|�|_|jS(s�Retrieves descriptor options.

    This method returns the options set or creates the default options for the
    descriptor.
    i����(tdescriptor_pb2sUnknown options class name %s!(Rtgoogle.protobufRtgetattrRtAttributeErrortRuntimeError(RRt
options_class((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt
GetOptionsvs	
((RRRRRRRR"(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRKs
			t_NestedDescriptorBasecBs&eZdZddd�Zd�ZRS(s0Common class for descriptors that can be nested.c		CsStt|�j||�||_||_||_||_||_||_dS(sCConstructor.

    Args:
      options: Protocol message options or None
        to use default message options.
      options_class_name: (str) The class name of the above options.

      name: (str) Name of this protocol message type.
      full_name: (str) Fully-qualified name of this protocol message type,
        which will include protocol "package" name and the name of any
        enclosing types.
      file: (FileDescriptor) Reference to file info.
      containing_type: if provided, this is a nested descriptor, with this
        descriptor as parent, otherwise None.
      serialized_start: The start index (inclusive) in block in the
        file.serialized_pb that describes this descriptor.
      serialized_end: The end index (exclusive) in block in the
        file.serialized_pb that describes this descriptor.
    N(	R
R#Rtnamet	full_nametfiletcontaining_typet_serialized_startt_serialized_end(	RRRR$R%R&R'tserialized_starttserialized_end((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s
					cCs`|jdk	rP|jdk	rP|jdk	rP|j|jj|j|j!�ntd��dS(s�Copies this to the matching proto in descriptor_pb2.

    Args:
      proto: An empty proto instance from descriptor_pb2.

    Raises:
      Error: If self couldnt be serialized, due to to few constructor arguments.
    s*Descriptor does not contain serialization.N(R&RR(R)tParseFromStringt
serialized_pbR(Rtproto((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pytCopyToProto�s	N(RRRRRR/(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR#�s!t
Descriptorc	Bs�eZdZer?ejZdeddddddd�Z	ndeddddddd�Z
ed��Zd�Z
d�ZRS(si	Descriptor for a protocol message type.

  A Descriptor instance has the following attributes:

    name: (str) Name of this protocol message type.
    full_name: (str) Fully-qualified name of this protocol message type,
      which will include protocol "package" name and the name of any
      enclosing types.

    containing_type: (Descriptor) Reference to the descriptor of the
      type containing us, or None if this is top-level.

    fields: (list of FieldDescriptors) Field descriptors for all
      fields in this type.
    fields_by_number: (dict int -> FieldDescriptor) Same FieldDescriptor
      objects as in |fields|, but indexed by "number" attribute in each
      FieldDescriptor.
    fields_by_name: (dict str -> FieldDescriptor) Same FieldDescriptor
      objects as in |fields|, but indexed by "name" attribute in each
      FieldDescriptor.
    fields_by_camelcase_name: (dict str -> FieldDescriptor) Same
      FieldDescriptor objects as in |fields|, but indexed by
      "camelcase_name" attribute in each FieldDescriptor.

    nested_types: (list of Descriptors) Descriptor references
      for all protocol message types nested within this one.
    nested_types_by_name: (dict str -> Descriptor) Same Descriptor
      objects as in |nested_types|, but indexed by "name" attribute
      in each Descriptor.

    enum_types: (list of EnumDescriptors) EnumDescriptor references
      for all enums contained within this type.
    enum_types_by_name: (dict str ->EnumDescriptor) Same EnumDescriptor
      objects as in |enum_types|, but indexed by "name" attribute
      in each EnumDescriptor.
    enum_values_by_name: (dict str -> EnumValueDescriptor) Dict mapping
      from enum value name to EnumValueDescriptor for that value.

    extensions: (list of FieldDescriptor) All extensions defined directly
      within this message type (NOT within a nested type).
    extensions_by_name: (dict, string -> FieldDescriptor) Same FieldDescriptor
      objects as |extensions|, but indexed by "name" attribute of each
      FieldDescriptor.

    is_extendable:  Does this type define any extension ranges?

    oneofs: (list of OneofDescriptor) The list of descriptors for oneof fields
      in this message.
    oneofs_by_name: (dict str -> OneofDescriptor) Same objects as in |oneofs|,
      but indexed by "name" attribute.

    file: (FileDescriptor) Reference to file descriptor.
  cCstjj�tjj|�S(N(RtMessaget_CheckCalledFromGeneratedFiletdefault_pooltFindMessageTypeByName(RR$R%tfilenameR'tfieldstnested_typest
enum_typest
extensionsRt
is_extendabletextension_rangestoneofsR&R*R+tsyntax((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt__new__�s
cCs�tt|�j|	d|||
|d|d|�||_x|jD]}||_qDWtd�|D��|_td�|D��|_d|_	||_
x|D]}||_q�Wtd�|D��|_||_x|jD]}||_q�Wtd�|D��|_
td�|D��|_||_x|jD]}||_q9Wtd	�|D��|_|
|_||_|dk	r�|ng|_td
�|jD��|_x|jD]}||_q�W|p�d|_dS(
s�Arguments to __init__() are as described in the description
    of Descriptor fields above.

    Note that filename is an obsolete argument, that is not used anymore.
    Please use file.name to access this as an attribute.
    tMessageOptionsR*R+css|]}|j|fVqdS(N(tnumber(t.0tf((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>scss|]}|j|fVqdS(N(R$(RARB((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>scss|]}|j|fVqdS(N(R$(RAtt((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>%scss|]}|j|fVqdS(N(R$(RARC((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>*scss.|]$}|jD]}|j|fVqqdS(N(tvaluesR$(RARCtv((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>,scss|]}|j|fVqdS(N(R$(RARB((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>1scss|]}|j|fVqdS(N(R$(RAto((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>5stproto2N(R
R0RR6R'tdicttfields_by_numbertfields_by_nameRt_fields_by_camelcase_nameR7tnested_types_by_nameR8tenum_types_by_nametenum_values_by_nameR9textension_scopetextensions_by_nameR:R;R<toneofs_by_nameR=(RR$R%R5R'R6R7R8R9RR:R;R<R&R*R+R=tfieldtnested_typet	enum_typet	extensiontoneof((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRs>	
		

	
	
		
cCs5|jdkr.td�|jD��|_n|jS(Ncss|]}|j|fVqdS(N(tcamelcase_name(RARB((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>>s(RKRRHR6(R((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pytfields_by_camelcase_name:scCs|j|j|jS(ssReturns the string name of an enum value.

    This is just a small helper method to simplify a common operation.

    Args:
      enum: string name of the Enum.
      value: int, value of the enum.

    Returns:
      string name of the enum value.

    Raises:
      KeyError if either the Enum doesn't exist or the value is not a valid
        value for the enum.
    (RMtvalues_by_numberR$(Rtenumtvalue((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt
EnumValueNameAscCstt|�j|�dS(svCopies this to a descriptor_pb2.DescriptorProto.

    Args:
      proto: An empty descriptor_pb2.DescriptorProto.
    N(R
R0R/(RR.((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR/SsN(RRRRRR0RRRR>RtpropertyRXR\R/(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR0�s6					0	tFieldDescriptorcBs�eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd	Zd
Zd
Z iee6ee6ee6ee6ee6ee6ee6ee6ee6ee6ee6ee6ee	6ee6ee6ee
6ee
6ee6Z!dZ"dZ#dZ$dZ%dZ&dZ'dZ(e)r�e*j+Z,de.dddd�Z/nde.dddd�Z0e1d��Z2e3d��Z4RS(s	Descriptor for a single field in a .proto file.

  A FieldDescriptor instance has the following attributes:

    name: (str) Name of this field, exactly as it appears in .proto.
    full_name: (str) Name of this field, including containing scope.  This is
      particularly relevant for extensions.
    camelcase_name: (str) Camelcase name of this field.
    index: (int) Dense, 0-indexed index giving the order that this
      field textually appears within its message in the .proto file.
    number: (int) Tag number declared for this field in the .proto file.

    type: (One of the TYPE_* constants below) Declared type.
    cpp_type: (One of the CPPTYPE_* constants below) C++ type used to
      represent this field.

    label: (One of the LABEL_* constants below) Tells whether this
      field is optional, required, or repeated.
    has_default_value: (bool) True if this field has a default value defined,
      otherwise false.
    default_value: (Varies) Default value of this field.  Only
      meaningful for non-repeated scalar fields.  Repeated fields
      should always set this to [], and non-repeated composite
      fields should always set this to None.

    containing_type: (Descriptor) Descriptor of the protocol message
      type that contains this field.  Set by the Descriptor constructor
      if we're passed into one.
      Somewhat confusingly, for extension fields, this is the
      descriptor of the EXTENDED message, not the descriptor
      of the message containing this field.  (See is_extension and
      extension_scope below).
    message_type: (Descriptor) If a composite field, a descriptor
      of the message type contained in this field.  Otherwise, this is None.
    enum_type: (EnumDescriptor) If this field contains an enum, a
      descriptor of that enum.  Otherwise, this is None.

    is_extension: True iff this describes an extension field.
    extension_scope: (Descriptor) Only meaningful if is_extension is True.
      Gives the message that immediately contains this extension field.
      Will be None iff we're a top-level (file-level) extension field.

    options: (descriptor_pb2.FieldOptions) Protocol message field options or
      None to use default field options.

    containing_oneof: (OneofDescriptor) If the field is a member of a oneof
      union, contains its descriptor. Otherwise, None.

    file: (FileDescriptor) Reference to file descriptor.
  iiiiiiiii	i
iii
iiiiiii8JiNcCs7tjj�|r#tjj|�Stjj|�SdS(N(RR1R2R3tFindExtensionByNametFindFieldByName(RR$R%tindexR@ttypetcpp_typetlabelt
default_valuetmessage_typeRTR'tis_extensionRORthas_default_valuetcontaining_oneoft	json_nameR&((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>�s
cCs.tt|�j|d�||_||_||_d|_|dkr[t|�|_	n	||_	||_
||_||_||_
||_||_||_||_|	|_|
|_||_|
|_||_tj�dkr!|r	tjj|�|_q*tjj|�|_n	d|_dS(sThe arguments are as described in the description of FieldDescriptor
    attributes above.

    Note that containing_type may be None, and may be set later if necessary
    (to deal with circular references between message types, for example).
    Likewise for extension_scope.
    tFieldOptionsRN(R
R^RR$R%R&Rt_camelcase_namet_ToJsonNameRjRaR@RbRcRdRhReR'RfRTRgRORiRtTypeRR3R_t_cdescriptorR`(RR$R%RaR@RbRcRdReRfRTR'RgRORRhRiRjR&((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s4																		cCs+|jdkr$t|j�|_n|jS(N(RlRt_ToCamelCaseR$(R((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRW!scCs7ytj|SWn!tk
r2td|��nXdS(s�Converts from a Python proto type to a C++ Proto Type.

    The Python ProtocolBuffer classes specify both the 'Python' datatype and the
    'C++' datatype - and they're not the same. This helper method should
    translate from one to another.

    Args:
      proto_type: the Python proto type (descriptor.FieldDescriptor.TYPE_*)
    Returns:
      descriptor.FieldDescriptor.CPPTYPE_*, the C++ type.
    Raises:
      TypeTransformationError: when the Python proto type isn't known.
    sUnknown proto_type: %sN(R^t_PYTHON_TO_CPP_PROTO_TYPE_MAPtKeyErrorR(t
proto_type((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pytProtoTypeToCppProtoType's
i i���N(5RRRtTYPE_DOUBLEt
TYPE_FLOATt
TYPE_INT64tTYPE_UINT64t
TYPE_INT32tTYPE_FIXED64tTYPE_FIXED32t	TYPE_BOOLtTYPE_STRINGt
TYPE_GROUPtTYPE_MESSAGEt
TYPE_BYTEStTYPE_UINT32t	TYPE_ENUMt
TYPE_SFIXED32t
TYPE_SFIXED64tTYPE_SINT32tTYPE_SINT64tMAX_TYPEt
CPPTYPE_INT32t
CPPTYPE_INT64tCPPTYPE_UINT32tCPPTYPE_UINT64tCPPTYPE_DOUBLEt
CPPTYPE_FLOATtCPPTYPE_BOOLtCPPTYPE_ENUMtCPPTYPE_STRINGtCPPTYPE_MESSAGEtMAX_CPPTYPERqtLABEL_OPTIONALtLABEL_REQUIREDtLABEL_REPEATEDt	MAX_LABELtMAX_FIELD_NUMBERtFIRST_RESERVED_FIELD_NUMBERtLAST_RESERVED_FIELD_NUMBERRRR^RRRR>RR]RWtstaticmethodRt(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR^hs�3
				&tEnumDescriptorcBsYeZdZer6ejZdddddd�Zndddddd�Z	d�Z
RS(s�Descriptor for an enum defined in a .proto file.

  An EnumDescriptor instance has the following attributes:

    name: (str) Name of the enum type.
    full_name: (str) Full name of the type, including package name
      and any enclosing type(s).

    values: (list of EnumValueDescriptors) List of the values
      in this enum.
    values_by_name: (dict str -> EnumValueDescriptor) Same as |values|,
      but indexed by the "name" field of each EnumValueDescriptor.
    values_by_number: (dict int -> EnumValueDescriptor) Same as |values|,
      but indexed by the "number" field of each EnumValueDescriptor.
    containing_type: (Descriptor) Descriptor of the immediate containing
      type of this enum, or None if this is an enum defined at the
      top level in a .proto file.  Set by Descriptor's constructor
      if we're passed into one.
    file: (FileDescriptor) Reference to file descriptor.
    options: (descriptor_pb2.EnumOptions) Enum options message or
      None to use default enum options.
  c

Cstjj�tjj|�S(N(RR1R2R3tFindEnumTypeByName(
RR$R%R5RDR'RR&R*R+((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>Xs
c
Cs�tt|�j|d||||d|d|	�||_x|jD]}
||
_qDWtd�|D��|_td�|D��|_dS(s�Arguments are as described in the attribute description above.

    Note that filename is an obsolete argument, that is not used anymore.
    Please use file.name to access this as an attribute.
    tEnumOptionsR*R+css|]}|j|fVqdS(N(R$(RARE((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>nscss|]}|j|fVqdS(N(R@(RARE((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>osN(R
R�RRDRbRHtvalues_by_nameRY(RR$R%R5RDR'RR&R*R+R[((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR^s	
cCstt|�j|�dS(s~Copies this to a descriptor_pb2.EnumDescriptorProto.

    Args:
      proto: An empty descriptor_pb2.EnumDescriptorProto.
    N(R
R�R/(RR.((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR/qsN(RRRRRR�RRR>RR/(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�<s			tEnumValueDescriptorcBs>eZdZer-ejZddd�Znddd�Z	RS(s,Descriptor for a single value within an enum.

    name: (str) Name of this value.
    index: (int) Dense, 0-indexed index giving the order that this
      value appears textually within its enum in the .proto file.
    number: (int) Actual number assigned to this enum value.
    type: (EnumDescriptor) EnumDescriptor to which this value
      belongs.  Set by EnumDescriptor's constructor if we're
      passed into one.
    options: (descriptor_pb2.EnumValueOptions) Enum value options message or
      None to use default enum value options options.
  cCstjj�dS(N(RR1R2R(RR$RaR@RbR((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>�s
cCsAtt|�j|d�||_||_||_||_dS(s>Arguments are as described in the attribute description above.tEnumValueOptionsN(R
R�RR$RaR@Rb(RR$RaR@RbR((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s
			N(
RRRRRR�RRR>R(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�{s

	tOneofDescriptorcBs8eZdZer*ejZdd�Zndd�Z	RS(s	Descriptor for a oneof field.

    name: (str) Name of the oneof field.
    full_name: (str) Full name of the oneof field, including package name.
    index: (int) 0-based index giving the order of the oneof field inside
      its containing type.
    containing_type: (Descriptor) Descriptor of the protocol message
      type that contains this field.  Set by the Descriptor constructor
      if we're passed into one.
    fields: (list of FieldDescriptor) The list of field descriptors this
      oneof can contain.
  cCstjj�tjj|�S(N(RR1R2R3tFindOneofByName(RR$R%RaR'R6R((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>�s
cCsJtt|�j|d�||_||_||_||_||_dS(s>Arguments are as described in the attribute description above.tOneofOptionsN(R
R�RR$R%RaR'R6(RR$R%RaR'R6R((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s				N(
RRRRRR�RRR>R(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR��s
	tServiceDescriptorcBs\eZdZer3ejZddddd�Znddddd�Z	d�Z
d�ZRS(s�Descriptor for a service.

    name: (str) Name of the service.
    full_name: (str) Full name of the service, including package name.
    index: (int) 0-indexed index giving the order that this services
      definition appears withing the .proto file.
    methods: (list of MethodDescriptor) List of methods provided by this
      service.
    methods_by_name: (dict str -> MethodDescriptor) Same MethodDescriptor
      objects as in |methods_by_name|, but indexed by "name" attribute in each
      MethodDescriptor.
    options: (descriptor_pb2.ServiceOptions) Service options message or
      None to use default service options.
    file: (FileDescriptor) Reference to file info.
  c		Cstjj�tjj|�S(N(RR1R2R3tFindServiceByName(	RR$R%RatmethodsRR&R*R+((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>�s
c	
Cs}tt|�j|d|||dd|d|�||_||_td�|D��|_x|jD]}	||	_qfWdS(NtServiceOptionsR*R+css|]}|j|fVqdS(N(R$(RAtm((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>�s(	R
R�RRRaR�RHtmethods_by_nametcontaining_service(
RR$R%RaR�RR&R*R+tmethod((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s		cCs|jj|d�S(s>Searches for the specified method, and returns its descriptor.N(R�tgetR(RR$((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pytFindMethodByName�scCstt|�j|�dS(s�Copies this to a descriptor_pb2.ServiceDescriptorProto.

    Args:
      proto: An empty descriptor_pb2.ServiceDescriptorProto.
    N(R
R�R/(RR.((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR/�sN(RRRRRR�RRR>RR�R/(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR��s		tMethodDescriptorcBs8eZdZer*ejZdd�Zndd�Z	RS(sDescriptor for a method in a service.

  name: (str) Name of the method within the service.
  full_name: (str) Full name of method.
  index: (int) 0-indexed index of the method inside the service.
  containing_service: (ServiceDescriptor) The service that contains this
    method.
  input_type: The descriptor of the message that this method accepts.
  output_type: The descriptor of the message that this method returns.
  options: (descriptor_pb2.MethodOptions) Method options message or
    None to use default method options.
  cCstjj�tjj|�S(N(RR1R2R3R�(RR$R%RaR�t
input_typetoutput_typeR((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>s
cCsStt|�j|d�||_||_||_||_||_||_dS(s�The arguments are as described in the description of MethodDescriptor
    attributes above.

    Note that containing_service may be None, and may be set later if necessary.
    t
MethodOptionsN(	R
R�RR$R%RaR�R�R�(RR$R%RaR�R�R�R((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRs					N(
RRRRRR�RRR>R(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR��s

	tFileDescriptorcBs_eZdZer9ejZddddddd�Znddddddd�Z	d�Z
RS(s;Descriptor for a file. Mimics the descriptor_pb2.FileDescriptorProto.

  Note that enum_types_by_name, extensions_by_name, and dependencies
  fields are only set by the message_factory module, and not by the
  generated proto code.

  name: name of file, relative to root of source tree.
  package: name of the package
  syntax: string indicating syntax of the file (can be "proto2" or "proto3")
  serialized_pb: (str) Byte string of serialized
    descriptor_pb2.FileDescriptorProto.
  dependencies: List of other FileDescriptors this FileDescriptor depends on.
  public_dependencies: A list of FileDescriptors, subset of the dependencies
    above, which were declared as "public".
  message_types_by_name: Dict of message names of their descriptors.
  enum_types_by_name: Dict of enum names and their descriptors.
  extensions_by_name: Dict of extension names and their descriptors.
  services_by_name: Dict of services names and their descriptors.
  pool: the DescriptorPool this descriptor belongs to.  When not passed to the
    constructor, the global default pool is used.
  c		Cs0|rtjj|�Stt|�j|�SdS(N(RR3tAddSerializedFileR
R�R>(	RR$tpackageRR-tdependenciestpublic_dependenciesR=tpool((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>5sc	
Cs�tt|�j|d�|dkrDddlm}	|	j�}n||_i|_||_	||_
|pqd|_||_i|_
i|_i|_|p�g|_|p�g|_tj�dkr�|jdk	r�tjj|j�ndS(sConstructor.tFileOptionsi����(tdescriptor_poolRGRN(R
R�RRRR�tDefaultR�tmessage_types_by_nameR$R�R=R-RMRPtservices_by_nameR�R�RRnRR3R�(
RR$R�RR-R�R�R=R�R�((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRAs$								cCs|j|j�dS(s~Copies this to a descriptor_pb2.FileDescriptorProto.

    Args:
      proto: An empty descriptor_pb2.FileDescriptorProto.
    N(R,R-(RR.((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR/[sN(RRRRRR�RRR>RR/(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s	
cCs|j|�|S(s�Parses serialized options.

  This helper function is used to parse serialized options in generated
  proto2 files. It must not be used outside proto2.
  (R,(tmessagetstring((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt
_ParseOptionsds
cCs�t}g}xX|D]P}|dkr7|rct}qcq|rY|j|j��t}q||7}qW|r�|dj�r�|dj�|d<ndj|�S(s+Converts name to camel-case and returns it.t_it(RRtappendtuppertisuppertlowertjoin(R$tcapitalize_nexttresulttc((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRpns
	cCs|jd�r|jSdSdS(sCReturns the value of the field `options`, or None if it is not set.RN(tHasFieldRR(tdescriptor_proto((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt_OptionsOrNone�scCskt}g}xO|D]G}|dkr.t}q|rP|j|j��t}q||7}qWdj|�S(s*Converts name to Json name and returns it.R�R�(RRR�R�R�(R$R�R�R�((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRm�s
		R�cCs�tj�dkr�|r�ddlm}|j�}|jj�j|�tt	j
��}|r�tjj
|jdd�|d�|_||_n
|d|_tjj|�tjj|j�}tr�|j|jSn|jg}|r|jd|�ni}	x�|jD]u}
dj
||
jg�}t|
j|dgt|
j�D]$\}}
t|
j||
j�^qR�}||	|<qWi}x[|jD]P}dj
||jg�}t |ddj
|�d	t!d
|�}|||<q�Wg}x9|j"D].}dj
||jg�}d}d}|j#rA|j#}nd}|j$d�r�|j%}dj
|||j&d�dg�}||kr�||}q�||	kr�|	|}q�nt'|j||jd|j|j(t'j)|j(�|j*d||dt!dd
t+|�dt!d|�
}|j,|�qWdj
|�}t-|j|dd|t.|j/��t.|	j/��gd
t+|��S(sMake a protobuf Descriptor given a DescriptorProto protobuf.

  Handles nested descriptors. Note that this is limited to the scope of defining
  a message inside of another message. Composite fields can currently only be
  resolved if the message is defined in the same scope as the field.

  Args:
    desc_proto: The descriptor_pb2.DescriptorProto protobuf message.
    package: Optional package name for the new message Descriptor (string).
    build_file_if_cpp: Update the C++ descriptor pool if api matches.
                       Set to False on recursion, so no duplicates are created.
    syntax: The syntax/semantics that should be used.  Set to "proto3" to get
            proto3 field presence semantics.
  Returns:
    A Descriptor for protobuf messages.
  Ri����(Rt.t/s.protoiR�tbuild_file_if_cppR=t	type_nameiRRhRjN(0RRnRRtFileDescriptorProtoRftaddt	MergeFromtstrtuuidtuuid4tostpathR�treplaceR$R�RR3tAddtFindFileByNameRR�tinsertRTR�Rt	enumerateR[R�R@RStMakeDescriptorRRRRjR�R�trfindR^RbRtRdR�R�R0tlistRD(t
desc_protoR�R�R=Rtfile_descriptor_protot
proto_nameR�tfull_message_nameR8t
enum_protoR%tiitenum_valt	enum_descR7tnested_prototnested_descR6tfield_protoRjR�tfull_type_nameRRt	desc_name((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR��sz
:					
	$($Rt
__author__tsixtgoogle.protobuf.internalRRRRnR�R�tgoogle.protobuf.pyextRRt	ExceptionRRRbR	twith_metaclassRR#R0R^R�R�R�R�R�R�R�RpR�RmRRR�(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt<module>!s<	=8��?#!5'I	
			PK�\
��Ͼ,�,protobuf/message.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# TODO(robinson): We should just make these methods all "pure-virtual" and move
# all implementation out, into reflection.py for now.


"""Contains an abstract base class for protocol messages."""

__author__ = 'robinson@google.com (Will Robinson)'

class Error(Exception): pass
class DecodeError(Error): pass
class EncodeError(Error): pass


class Message(object):

  """Abstract base class for protocol messages.

  Protocol message classes are almost always generated by the protocol
  compiler.  These generated types subclass Message and implement the methods
  shown below.

  TODO(robinson): Link to an HTML document here.

  TODO(robinson): Document that instances of this class will also
  have an Extensions attribute with __getitem__ and __setitem__.
  Again, not sure how to best convey this.

  TODO(robinson): Document that the class must also have a static
    RegisterExtension(extension_field) method.
    Not sure how to best express at this point.
  """

  # TODO(robinson): Document these fields and methods.

  __slots__ = []

  DESCRIPTOR = None

  def __deepcopy__(self, memo=None):
    clone = type(self)()
    clone.MergeFrom(self)
    return clone

  def __eq__(self, other_msg):
    """Recursively compares two messages by value and structure."""
    raise NotImplementedError

  def __ne__(self, other_msg):
    # Can't just say self != other_msg, since that would infinitely recurse. :)
    return not self == other_msg

  def __hash__(self):
    raise TypeError('unhashable object')

  def __str__(self):
    """Outputs a human-readable representation of the message."""
    raise NotImplementedError

  def __unicode__(self):
    """Outputs a human-readable representation of the message."""
    raise NotImplementedError

  def MergeFrom(self, other_msg):
    """Merges the contents of the specified message into current message.

    This method merges the contents of the specified message into the current
    message. Singular fields that are set in the specified message overwrite
    the corresponding fields in the current message. Repeated fields are
    appended. Singular sub-messages and groups are recursively merged.

    Args:
      other_msg: Message to merge into the current message.
    """
    raise NotImplementedError

  def CopyFrom(self, other_msg):
    """Copies the content of the specified message into the current message.

    The method clears the current message and then merges the specified
    message using MergeFrom.

    Args:
      other_msg: Message to copy into the current one.
    """
    if self is other_msg:
      return
    self.Clear()
    self.MergeFrom(other_msg)

  def Clear(self):
    """Clears all data that was set in the message."""
    raise NotImplementedError

  def SetInParent(self):
    """Mark this as present in the parent.

    This normally happens automatically when you assign a field of a
    sub-message, but sometimes you want to make the sub-message
    present while keeping it empty.  If you find yourself using this,
    you may want to reconsider your design."""
    raise NotImplementedError

  def IsInitialized(self):
    """Checks if the message is initialized.

    Returns:
      The method returns True if the message is initialized (i.e. all of its
      required fields are set).
    """
    raise NotImplementedError

  # TODO(robinson): MergeFromString() should probably return None and be
  # implemented in terms of a helper that returns the # of bytes read.  Our
  # deserialization routines would use the helper when recursively
  # deserializing, but the end user would almost always just want the no-return
  # MergeFromString().

  def MergeFromString(self, serialized):
    """Merges serialized protocol buffer data into this message.

    When we find a field in |serialized| that is already present
    in this message:
      - If it's a "repeated" field, we append to the end of our list.
      - Else, if it's a scalar, we overwrite our field.
      - Else, (it's a nonrepeated composite), we recursively merge
        into the existing composite.

    TODO(robinson): Document handling of unknown fields.

    Args:
      serialized: Any object that allows us to call buffer(serialized)
        to access a string of bytes using the buffer interface.

    TODO(robinson): When we switch to a helper, this will return None.

    Returns:
      The number of bytes read from |serialized|.
      For non-group messages, this will always be len(serialized),
      but for messages which are actually groups, this will
      generally be less than len(serialized), since we must
      stop when we reach an END_GROUP tag.  Note that if
      we *do* stop because of an END_GROUP tag, the number
      of bytes returned does not include the bytes
      for the END_GROUP tag information.
    """
    raise NotImplementedError

  def ParseFromString(self, serialized):
    """Parse serialized protocol buffer data into this message.

    Like MergeFromString(), except we clear the object first and
    do not return the value that MergeFromString returns.
    """
    self.Clear()
    self.MergeFromString(serialized)

  def SerializeToString(self, **kwargs):
    """Serializes the protocol message to a binary string.

    Arguments:
      **kwargs: Keyword arguments to the serialize method, accepts
        the following keyword args:
        deterministic: If true, requests deterministic serialization of the
          protobuf, with predictable ordering of map keys.

    Returns:
      A binary string representation of the message if all of the required
      fields in the message are set (i.e. the message is initialized).

    Raises:
      message.EncodeError if the message isn't initialized.
    """
    raise NotImplementedError

  def SerializePartialToString(self, **kwargs):
    """Serializes the protocol message to a binary string.

    This method is similar to SerializeToString but doesn't check if the
    message is initialized.

    Arguments:
      **kwargs: Keyword arguments to the serialize method, accepts
        the following keyword args:
        deterministic: If true, requests deterministic serialization of the
          protobuf, with predictable ordering of map keys.

    Returns:
      A string representation of the partial message.
    """
    raise NotImplementedError

  # TODO(robinson): Decide whether we like these better
  # than auto-generated has_foo() and clear_foo() methods
  # on the instances themselves.  This way is less consistent
  # with C++, but it makes reflection-type access easier and
  # reduces the number of magically autogenerated things.
  #
  # TODO(robinson): Be sure to document (and test) exactly
  # which field names are accepted here.  Are we case-sensitive?
  # What do we do with fields that share names with Python keywords
  # like 'lambda' and 'yield'?
  #
  # nnorwitz says:
  # """
  # Typically (in python), an underscore is appended to names that are
  # keywords. So they would become lambda_ or yield_.
  # """
  def ListFields(self):
    """Returns a list of (FieldDescriptor, value) tuples for all
    fields in the message which are not empty.  A message field is
    non-empty if HasField() would return true. A singular primitive field
    is non-empty if HasField() would return true in proto2 or it is non zero
    in proto3. A repeated field is non-empty if it contains at least one
    element.  The fields are ordered by field number"""
    raise NotImplementedError

  def HasField(self, field_name):
    """Checks if a certain field is set for the message, or if any field inside
    a oneof group is set.  Note that if the field_name is not defined in the
    message descriptor, ValueError will be raised."""
    raise NotImplementedError

  def ClearField(self, field_name):
    """Clears the contents of a given field, or the field set inside a oneof
    group.  If the name neither refers to a defined field or oneof group,
    ValueError is raised."""
    raise NotImplementedError

  def WhichOneof(self, oneof_group):
    """Returns the name of the field that is set inside a oneof group, or
    None if no field is set.  If no group with the given name exists, ValueError
    will be raised."""
    raise NotImplementedError

  def HasExtension(self, extension_handle):
    raise NotImplementedError

  def ClearExtension(self, extension_handle):
    raise NotImplementedError

  def DiscardUnknownFields(self):
    raise NotImplementedError

  def ByteSize(self):
    """Returns the serialized size of this message.
    Recursively calls ByteSize() on all contained messages.
    """
    raise NotImplementedError

  def _SetListener(self, message_listener):
    """Internal method used by the protocol message implementation.
    Clients should not call this directly.

    Sets a listener that this message will call on certain state transitions.

    The purpose of this method is to register back-edges from children to
    parents at runtime, for the purpose of setting "has" bits and
    byte-size-dirty bits in the parent and ancestor objects whenever a child or
    descendant object is modified.

    If the client wants to disconnect this Message from the object tree, she
    explicitly sets callback to None.

    If message_listener is None, unregisters any existing listener.  Otherwise,
    message_listener must implement the MessageListener interface in
    internal/message_listener.py, and we discard any listener registered
    via a previous _SetListener() call.
    """
    raise NotImplementedError

  def __getstate__(self):
    """Support the pickle protocol."""
    return dict(serialized=self.SerializePartialToString())

  def __setstate__(self, state):
    """Support the pickle protocol."""
    self.__init__()
    self.ParseFromString(state['serialized'])
PK�\�I{3,3,protobuf/service_reflection.pyonu�[����
���hc@shdZdZdefd��YZdefd��YZdefd��YZdefd	��YZd
S(s*Contains metaclasses used to create protocol service and service stub
classes from ServiceDescriptor objects at runtime.

The GeneratedServiceType and GeneratedServiceStubType metaclasses are used to
inject all useful functionality into the classes output by the protocol
compiler at compile-time.
spetar@google.com (Petar Petrov)tGeneratedServiceTypecBseZdZdZd�ZRS(s�Metaclass for service classes created at runtime from ServiceDescriptors.

  Implementations for all methods described in the Service class are added here
  by this class. We also create properties to allow getting/setting all fields
  in the protocol message.

  The protocol compiler currently uses this metaclass to create protocol service
  classes at runtime. Clients can also manually create their own classes at
  runtime, as in this example:

  mydescriptor = ServiceDescriptor(.....)
  class MyProtoService(service.Service):
    __metaclass__ = GeneratedServiceType
    DESCRIPTOR = mydescriptor
  myservice_instance = MyProtoService()
  ...
  t
DESCRIPTORcCs=tj|krdS|tj}t|�}|j|�dS(s�Creates a message service class.

    Args:
      name: Name of the class (ignored, but required by the metaclass
        protocol).
      bases: Base classes of the class being constructed.
      dictionary: The class dictionary of the class being constructed.
        dictionary[_DESCRIPTOR_KEY] must contain a ServiceDescriptor object
        describing this protocol service type.
    N(Rt_DESCRIPTOR_KEYt_ServiceBuildertBuildService(tclstnametbasest
dictionaryt
descriptortservice_builder((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyt__init__@s


(t__name__t
__module__t__doc__RR(((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR*stGeneratedServiceStubTypecBseZdZdZd�ZRS(s�Metaclass for service stubs created at runtime from ServiceDescriptors.

  This class has similar responsibilities as GeneratedServiceType, except that
  it creates the service stub classes.
  RcCsYtt|�j|||�tj|kr/dS|tj}t|�}|j|�dS(s`Creates a message service stub class.

    Args:
      name: Name of the class (ignored, here).
      bases: Base classes of the class being constructed.
      dictionary: The class dictionary of the class being constructed.
        dictionary[_DESCRIPTOR_KEY] must contain a ServiceDescriptor object
        describing this protocol service type.
    N(tsuperRRRt_ServiceStubBuildertBuildServiceStub(RRRRR	tservice_stub_builder((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR^s

(RR
RRR(((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyRTsRcBsMeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(sDThis class constructs a protocol service class using a service descriptor.

  Given a service descriptor, this class constructs a class that represents
  the specified service descriptor. One service builder instance constructs
  exactly one service class. That means all instances of that class share the
  same builder.
  cCs
||_dS(s�Initializes an instance of the service class builder.

    Args:
      service_descriptor: ServiceDescriptor to use when constructing the
        service class.
    N(R	(tselftservice_descriptor((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR|scs��fd�}|�_||_t�fd��|_d|j_�j|_�j|_x0�j	j
D]"}t||j�j
|��qjWdS(s\Constructs the service class.

    Args:
      cls: The class that will be constructed.
    cs�j|||||�S(N(t_CallMethod(tsrvctmethod_descriptortrpc_controllertrequesttcallback(R(sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyt_WrapCallMethod�scs�jS(N(R	((R(sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyt<lambda>�tsReturns the service descriptor.N(Rt
CallMethodtstaticmethodt
GetDescriptorRt_GetRequestClasstGetRequestClasst_GetResponseClasstGetResponseClassR	tmethodstsetattrRt_GenerateNonImplementedMethod(RRRtmethod((RsF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�s
		cCsC|j|jkr!td��nt||j�}||||�S(s�Calls the method described by a given method descriptor.

    Args:
      srvc: Instance of the service for which this method is called.
      method_descriptor: Descriptor that represent the method to call.
      rpc_controller: RPC controller to use for this method's execution.
      request: Request protocol message.
      callback: A callback to invoke after the method has completed.
    s<CallMethod() given method descriptor for wrong service type.(tcontaining_serviceR	tRuntimeErrortgetattrR(RRRRRRR)((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�s
cCs+|j|jkr!td��n|jjS(sReturns the class of the request protocol message.

    Args:
      method_descriptor: Descriptor of the method for which to return the
        request protocol message class.

    Returns:
      A class that represents the input protocol message of the specified
      method.
    sAGetRequestClass() given method descriptor for wrong service type.(R*R	R+t
input_typet_concrete_class(RR((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR"�scCs+|j|jkr!td��n|jjS(sReturns the class of the response protocol message.

    Args:
      method_descriptor: Descriptor of the method for which to return the
        response protocol message class.

    Returns:
      A class that represents the output protocol message of the specified
      method.
    sBGetResponseClass() given method descriptor for wrong service type.(R*R	R+toutput_typeR.(RR((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR$�scs��fd�S(s�Generates and returns a method that can be set for a service methods.

    Args:
      method: Descriptor of the service method for which a method is to be
        generated.

    Returns:
      A method that can be added to the service class.
    cs�j�j||�S(N(t_NonImplementedMethodR(tinstRRR(R)R(sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�s((RR)((R)RsF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR(�s
cCs|jd|�|d�dS(s
The body of all methods in the generated service class.

    Args:
      method_name: Name of the method being executed.
      rpc_controller: RPC controller used to execute this method.
      callback: A callback which will be invoked when the method finishes.
    sMethod %s not implemented.N(t	SetFailedtNone(Rtmethod_nameRR((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR0�s(
RR
RRRRR"R$R(R0(((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyRrs							
RcBs2eZdZd�Zd�Zd�Zd�ZRS(s�Constructs a protocol service stub class using a service descriptor.

  Given a service descriptor, this class constructs a suitable stub class.
  A stub is just a type-safe wrapper around an RpcChannel which emulates a
  local implementation of the service.

  One service stub builder instance constructs exactly one class. It means all
  instances of that class share the same service stub builder.
  cCs
||_dS(s�Initializes an instance of the service stub class builder.

    Args:
      service_descriptor: ServiceDescriptor to use when constructing the
        stub class.
    N(R	(RR((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�scCsRd�}||_||_x0|jjD]"}t||j|j|��q(WdS(sYConstructs the stub class.

    Args:
      cls: The class that will be constructed.
    cSs
||_dS(N(trpc_channel(tstubR5((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyt_ServiceStubInitsN(RRR	R&R'Rt_GenerateStubMethod(RRR7R)((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�s
			csd��fd�S(Ncs�j|�|||�S(N(t_StubMethod(R1RRR(R)R(sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR
s(R3(RR)((R)RsF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR8	scCs"|jj||||jj|�S(s�The body of all service methods in the generated stub class.

    Args:
      stub: Stub instance.
      method_descriptor: Descriptor of the invoked method.
      rpc_controller: Rpc controller to execute the method.
      request: Request protocol message.
      callback: A callback to execute when the method finishes.
    Returns:
      Response message (in case of blocking call).
    (R5RR/R.(RR6RRRR((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR9
s
		(RR
RRRR8R9(((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyR�s

				N(Rt
__author__ttypeRRtobjectRR(((sF/usr/lib/python2.7/site-packages/google/protobuf/service_reflection.pyt<module>%s
*tPK�\����RRprotobuf/proto_builder.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Dynamic Protobuf class creator."""

try:
    from collections import OrderedDict
except ImportError:
    from ordereddict import OrderedDict  #PY26
import hashlib
import os

from google.protobuf import descriptor_pb2
from google.protobuf import message_factory


def _GetMessageFromFactory(factory, full_name):
  """Get a proto class from the MessageFactory by name.

  Args:
    factory: a MessageFactory instance.
    full_name: str, the fully qualified name of the proto type.
  Returns:
    A class, for the type identified by full_name.
  Raises:
    KeyError, if the proto is not found in the factory's descriptor pool.
  """
  proto_descriptor = factory.pool.FindMessageTypeByName(full_name)
  proto_cls = factory.GetPrototype(proto_descriptor)
  return proto_cls


def MakeSimpleProtoClass(fields, full_name=None, pool=None):
  """Create a Protobuf class whose fields are basic types.

  Note: this doesn't validate field names!

  Args:
    fields: dict of {name: field_type} mappings for each field in the proto. If
        this is an OrderedDict the order will be maintained, otherwise the
        fields will be sorted by name.
    full_name: optional str, the fully-qualified name of the proto type.
    pool: optional DescriptorPool instance.
  Returns:
    a class, the new protobuf class with a FileDescriptor.
  """
  factory = message_factory.MessageFactory(pool=pool)

  if full_name is not None:
    try:
      proto_cls = _GetMessageFromFactory(factory, full_name)
      return proto_cls
    except KeyError:
      # The factory's DescriptorPool doesn't know about this class yet.
      pass

  # Get a list of (name, field_type) tuples from the fields dict. If fields was
  # an OrderedDict we keep the order, but otherwise we sort the field to ensure
  # consistent ordering.
  field_items = fields.items()
  if not isinstance(fields, OrderedDict):
    field_items = sorted(field_items)

  # Use a consistent file name that is unlikely to conflict with any imported
  # proto files.
  fields_hash = hashlib.sha1()
  for f_name, f_type in field_items:
    fields_hash.update(f_name.encode('utf-8'))
    fields_hash.update(str(f_type).encode('utf-8'))
  proto_file_name = fields_hash.hexdigest() + '.proto'

  # If the proto is anonymous, use the same hash to name it.
  if full_name is None:
    full_name = ('net.proto2.python.public.proto_builder.AnonymousProto_' +
                 fields_hash.hexdigest())
    try:
      proto_cls = _GetMessageFromFactory(factory, full_name)
      return proto_cls
    except KeyError:
      # The factory's DescriptorPool doesn't know about this class yet.
      pass

  # This is the first time we see this proto: add a new descriptor to the pool.
  factory.pool.Add(
      _MakeFileDescriptorProto(proto_file_name, full_name, field_items))
  return _GetMessageFromFactory(factory, full_name)


def _MakeFileDescriptorProto(proto_file_name, full_name, field_items):
  """Populate FileDescriptorProto for MessageFactory's DescriptorPool."""
  package, name = full_name.rsplit('.', 1)
  file_proto = descriptor_pb2.FileDescriptorProto()
  file_proto.name = os.path.join(package.replace('.', '/'), proto_file_name)
  file_proto.package = package
  desc_proto = file_proto.message_type.add()
  desc_proto.name = name
  for f_number, (f_name, f_type) in enumerate(field_items, 1):
    field_proto = desc_proto.field.add()
    field_proto.name = f_name
    field_proto.number = f_number
    field_proto.label = descriptor_pb2.FieldDescriptorProto.LABEL_OPTIONAL
    field_proto.type = f_type
  return file_proto
PK�\��		protobuf/text_encoding.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Encoding related utilities."""
import re

import six

# Lookup table for utf8
_cescape_utf8_to_str = [chr(i) for i in range(0, 256)]
_cescape_utf8_to_str[9] = r'\t'  # optional escape
_cescape_utf8_to_str[10] = r'\n'  # optional escape
_cescape_utf8_to_str[13] = r'\r'  # optional escape
_cescape_utf8_to_str[39] = r"\'"  # optional escape

_cescape_utf8_to_str[34] = r'\"'  # necessary escape
_cescape_utf8_to_str[92] = r'\\'  # necessary escape

# Lookup table for non-utf8, with necessary escapes at (o >= 127 or o < 32)
_cescape_byte_to_str = ([r'\%03o' % i for i in range(0, 32)] +
                        [chr(i) for i in range(32, 127)] +
                        [r'\%03o' % i for i in range(127, 256)])
_cescape_byte_to_str[9] = r'\t'  # optional escape
_cescape_byte_to_str[10] = r'\n'  # optional escape
_cescape_byte_to_str[13] = r'\r'  # optional escape
_cescape_byte_to_str[39] = r"\'"  # optional escape

_cescape_byte_to_str[34] = r'\"'  # necessary escape
_cescape_byte_to_str[92] = r'\\'  # necessary escape


def CEscape(text, as_utf8):
  """Escape a bytes string for use in an ascii protocol buffer.

  text.encode('string_escape') does not seem to satisfy our needs as it
  encodes unprintable characters using two-digit hex escapes whereas our
  C++ unescaping function allows hex escapes to be any length.  So,
  "\0011".encode('string_escape') ends up being "\\x011", which will be
  decoded in C++ as a single-character string with char code 0x11.

  Args:
    text: A byte string to be escaped
    as_utf8: Specifies if result should be returned in UTF-8 encoding
  Returns:
    Escaped string
  """
  # PY3 hack: make Ord work for str and bytes:
  # //platforms/networking/data uses unicode here, hence basestring.
  Ord = ord if isinstance(text, six.string_types) else lambda x: x
  if as_utf8:
    return ''.join(_cescape_utf8_to_str[Ord(c)] for c in text)
  return ''.join(_cescape_byte_to_str[Ord(c)] for c in text)


_CUNESCAPE_HEX = re.compile(r'(\\+)x([0-9a-fA-F])(?![0-9a-fA-F])')
_cescape_highbit_to_str = ([chr(i) for i in range(0, 127)] +
                           [r'\%03o' % i for i in range(127, 256)])


def CUnescape(text):
  """Unescape a text string with C-style escape sequences to UTF-8 bytes."""

  def ReplaceHex(m):
    # Only replace the match if the number of leading back slashes is odd. i.e.
    # the slash itself is not escaped.
    if len(m.group(1)) & 1:
      return m.group(1) + 'x0' + m.group(2)
    return m.group(0)

  # This is required because the 'string_escape' encoding doesn't
  # allow single-digit hex escapes (like '\xf').
  result = _CUNESCAPE_HEX.sub(ReplaceHex, text)

  if str is bytes:  # PY2
    return result.decode('string_escape')
  result = ''.join(_cescape_highbit_to_str[ord(c)] for c in result)
  return (result.encode('ascii')  # Make it bytes to allow decode.
          .decode('unicode_escape')
          # Make it bytes again to return the proper type.
          .encode('raw_unicode_escape'))
PK�\��g�`�`protobuf/json_format.pyonu�[����
���hc@s�dZdZyddlmZWn!ek
rCddlmZnXddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZdZeejjejjejjejjg�Zeejjejjg�Zeejjejjg�Zd	Zd
ZdZe	j e
j!d��Z"e	j d
�Z#de$fd��YZ%de%fd��YZ&de%fd��YZ'e(e(de(d�Z)e(e(d�Z*d�Z+de,fd��YZ-d�Z.d�Z/d�Z0e(d�Z1e(d�Z2e
j3e4fZ5de,fd ��YZ6e(d!�Z7d"�Z8d#�Z9d$�Z:id%d&gd'6d(d)gd*6d(d)gd+6d,d-gd.6d/d0gd16d(d)gd26d3d4gd56Z;dS(6stContains 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())
sjieluo@google.com (Jie Luo)i����(tOrderedDictN(tmethodcaller(t
descriptor(tsymbol_databases%Y-%m-%dT%H:%M:%StInfinitys	-InfinitytNaNsF[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]s\[[a-zA-Z0-9\._]*\]$tErrorcBseZdZRS(s'Top-level module error for json_format.(t__name__t
__module__t__doc__(((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyRPstSerializeToJsonErrorcBseZdZRS(s&Thrown if serialization to JSON fails.(RRR	(((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR
Tst
ParseErrorcBseZdZRS(s Thrown in case of parsing error.(RRR	(((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyRXsicCs"t||�}|j|||�S(s_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.

  Returns:
    A string containing the JSON formatted protocol buffer message.
  (t_PrintertToJsonString(tmessagetincluding_default_value_fieldstpreserving_proto_field_nametindentt	sort_keystprinter((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt
MessageToJson\s	cCst||�}|j|�S(s�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.

  Returns:
    A dict representation of the protocol buffer message.
  (Rt_MessageToJsonObject(RRRR((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt
MessageToDictxs	cCs1|jtjjko0|jjo0|jj�jS(N(ttypeRtFieldDescriptortTYPE_MESSAGEtmessage_typethas_optionst
GetOptionst	map_entry(tfield((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_IsMapEntry�sRcBsweZdZeed�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�ZRS(s)JSON format printer for protocol message.cCs||_||_dS(N(RR(tselfRR((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt__init__�s	cCs(|j|�}tj|d|d|�S(NRR(Rtjsontdumps(R RRRtjs((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR
�scCsh|j}|j}t|�r+|j|�S|tkrRtt|d|�|�Si}|j||�S(sEConverts message to an object according to Proto3 JSON Specification.i(t
DESCRIPTORt	full_namet_IsWrapperMessaget_WrapperMessageToJsonObjectt_WKTJSONMETHODSRt_RegularMessageToJsonObject(R Rtmessage_descriptorR&R$((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�s		
cCs�|j�}y�x�|D]�\}}|jr7|j}n	|j}t|�r�|jjd}i}xU|D]M}	t|	t�r�|	r�d}
q�d}
n|	}
|j	|||	�||
<qiW|||<q|j
tjj
krg|D]}|j	||�^q�||<q|jr�|}|jj�jr_|jtjjkr_|j
tjjkr_|j}nd|j|f}|j	||�||<q|j	||�||<qW|jr�|j}
x�|
jD]�}|j
tjj
kr�|jtjjks�|jrq�n|jr|j}n	|j}||kr0q�nt|�rIi||<q�|j
tjj
krkg||<q�|j	||j�||<q�WnWn.tk
r�}tdj|j|���nX|S(s?Converts normal message according to Proto3 JSON Specification.tvaluettruetfalses[%s.%s]s#Failed to serialize {0} field: {1}.( t
ListFieldsRtnamet	json_nameRRtfields_by_namet
isinstancetboolt_FieldToJsonObjecttlabelRRtLABEL_REPEATEDtis_extensiontcontaining_typeRtmessage_set_wire_formatRRtLABEL_OPTIONALR&RR%tfieldstcpp_typetCPPTYPE_MESSAGEtcontaining_oneoft
default_valuet
ValueErrorR
tformat(R RR$R<RR,R0tv_fieldtjs_maptkeytrecorded_keytktfR+te((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR*�sf		
		
)						

$cCsU|jtjjkr"|j|�S|jtjjkr�|jjj|d�}|dk	rb|j
S|jjdkrx|St
d��n�|jtjjkr�|jtjjkr�tj|�jd�S|Sn�|jtjjkr�t|�S|jtkrt|�S|jtkrQtj|�r;|dkr4tStSntj|�rQtSn|S(s<Converts field value according to Proto3 JSON Specification.tproto3sKEnum field contains an integer value which can not mapped to an enum value.sutf-8gN(R=RRR>RtCPPTYPE_ENUMt	enum_typetvalues_by_numbertgettNoneR0tfiletsyntaxR
tCPPTYPE_STRINGRt
TYPE_BYTEStbase64t	b64encodetdecodetCPPTYPE_BOOLR4t_INT64_TYPEStstrt_FLOAT_TYPEStmathtisinft
_NEG_INFINITYt	_INFINITYtisnant_NAN(R RR,t
enum_value((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR5�s2


cCs�|j�siSt�}|j}||d<t|�}|j|j�|j}|j}t|�r}|j	|�|d<|S|t
kr�tt
|d|�|�|d<|S|j||�S(s<Converts Any message according to Proto3 JSON Specification.s@typeR,i(
R/Rttype_urlt_CreateMessageFromTypeUrltParseFromStringR,R%R&R'R(R)RR*(R RR$Rbtsub_messageR+R&((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_AnyMessageToJsonObjects"		
		cCs
|j�S(s8Converts message according to Proto3 JSON Specification.(R
(R R((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_GenericMessageToJsonObject+scCs�|jd�}|dks'|dkr+dS|dkrG|j|j�S|dkr_|j}nt||�}|jj|}|j||�S(s>Converts Value message according to Proto3 JSON Specification.tkindt
null_valuet
list_valuetstruct_valueN(	t
WhichOneofROt_ListValueMessageToJsonObjectRjRktgetattrR%R2R5(R RtwhichR,toneof_descriptor((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_ValueMessageToJsonObject1scCs#g|jD]}|j|�^q
S(sBConverts ListValue message according to Proto3 JSON Specification.(tvaluesRq(R RR,((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyRmAscCs;|j}i}x%|D]}|j||�||<qW|S(s?Converts Struct message according to Proto3 JSON Specification.(R<Rq(R RR<tretRE((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_StructMessageToJsonObjectFs
	
cCs|j|jjd|j�S(NR,(R5R%R2R,(R R((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR(Ns(RRR	tFalseR!R
RR*R5RfRgRqRmRtR((((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�s			E	!					cCs|jjdkS(Nsgoogle/protobuf/wrappers.proto(RPR0(R+((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR'SscCsOi}xB|D]:\}}||kr=tdj|���n|||<q
W|S(Ns'Failed to load JSON: duplicate key {0}.(RRB(R$tresultR0R,((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_DuplicateCheckerWscCsttj�}|jd�d}y|jj|�}Wn&tk
r]tdj|���nX|j|�}|�S(Nt/i����s1Can not find message descriptor by type_url: {0}.(	RtDefaulttsplittpooltFindMessageTypeByNametKeyErrort	TypeErrorRBtGetPrototype(Rbtdbt	type_nameR+t
message_class((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyRc`s
cCs�t|tj�s$|jd�}ny:tjdkrHtj|�}ntj|dt�}Wn.t	k
r�}t
djt|����nXt
|||�S(sbParses 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.

  Returns:
    The same message passed as argument.

  Raises::
    ParseError: On JSON parsing problems.
  sutf-8iitobject_pairs_hooksFailed to load JSON: {0}.(ii(R3tsixt	text_typeRVtsystversion_infoR"tloadsRwRARRBRYt	ParseDict(ttextRtignore_unknown_fieldsR$RI((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pytParsenscCs t|�}|j||�|S(s.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.

  Returns:
    The same message passed as argument.
  (t_ParsertConvertMessage(tjs_dictRR�tparser((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��sR�cBsheZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZRS(s(JSON format parser for protocol message.cCs
||_dS(N(R�(R R�((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR!�scCsr|j}|j}t|�r1|j||�n=|tkr^tt|d||�|�n|j||�dS(s�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.
    iN(R%R&R't_ConvertWrapperMessageR)Rt_ConvertFieldValuePair(R R,RR+R&((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s
		!cCs�g}|j}td�|jD��}xk|D]c}y�|j|d�}|sh|jj|d�}n|r�tj|�r�|js�t	dj
|j���n|dd!}dj|j
d�d �}|jj|�}n|s|jr�w/nt	dj
|j||j���n||krFt	dj
|jj|���n|j|�|jdk	r�|jj}	|	|kr�t	dj
|jj|	���n|j|	�n||}
|
dkr|jtjjkr|jjd	krt||j�}d
|_n|j|j�w/nt|�rN|j|j�|j|
||�n�|jtjjkrl|j|j�t |
t!�s�t	dj
||
���n|jtjjkrx�|
D][}t||j�j"�}|dkr|jjd	krt	d��n|j#||�q�Wq�x�|
D]C}|dkrCt	d��nt||j�jt$||��q"Wny|jtjjkr�|j%r�|j|}nt||j�}|j&�|j#|
|�nt'||jt$|
|��Wq/t	k
r=}
|r(|jdkr(t	d
j
||
���q�t	t(|
���q/t)k
rg}
t	dj
||
���q/t*k
r�}
t	dj
||
���q/Xq/WdS(s�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.
    css|]}|j|fVqdS(N(R1(t.0RH((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pys	<genexpr>�ss)Message type {0} does not have extensionsii����t.sVMessage type "{0}" has no field named "{1}".
 Available Fields(except extensions): {2}s9Message type "{0}" should not have multiple "{1}" fields.s?Message type "{0}" should not have multiple "{1}" oneof fields.sgoogle.protobuf.Valueis.repeated field {0} must be in [] which is {1}.sAnull is not allowed to be used as an element in a repeated field.sFailed to parse {0} field: {1}sFailed to parse {0} field: {1}.N(+R%tdictR<RNROR2t_VALID_EXTENSION_NAMEtmatcht
is_extendableRRBR&tjoinRzt
Extensionst_FindExtensionByNameR�tappendR?R0R=RRR>RRnRit
ClearFieldRt_ConvertMapFieldValueR6R7R3tlisttaddR�t_ConvertScalarFieldValueR8tSetInParenttsetattrRYRAR~(R R$RtnamesR+tfields_by_json_nameR0Rt
identifiert
oneof_nameR,RetitemRI((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s�
		
		
			
	
	

	
 cCs�t|t�r|rdSy|d}Wntk
rGtd��nXt|�}|j}|j}t|�r�|j|d|�nH|t	kr�t
t	|d|d|�|�n|d=|j||�|j�|_
||_dS(s/Convert a JSON representation into Any message.Ns@types*@type is missing when parsing any message.R,i(R3R�R}RRcR%R&R'R�R)RR�tSerializeToStringR,Rb(R R,RRbReR+R&((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_ConvertAnyMessages$
		"cCs|j|�dS(s?Convert a JSON representation into message with FromJsonString.N(tFromJsonString(R R,R((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_ConvertGenericMessage7scCs�t|t�r%|j||j�n�t|t�rJ|j||j�nx|dkrbd|_n`t|t	�r}||_
nEt|tj�r�||_
n't|t�r�||_ntd��dS(s1Convert a JSON representation into Value message.is"Unexpected type for Value message.N(R3R�t_ConvertStructMessageRkR�t_ConvertListValueMessageRjRORiR4t
bool_valueR�tstring_typeststring_valuet
_INT_OR_FLOATtnumber_valueR(R R,R((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_ConvertValueMessage=scCsbt|t�s'tdj|���n|jd�x'|D]}|j||jj��q;WdS(s5Convert a JSON representation into ListValue message.s%ListValue must be in [] which is {0}.RrN(R3R�RRBR�R�RrR�(R R,RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�Ns

cCsWt|t�s'tdj|���nx)|D]!}|j|||j|�q.WdS(s2Convert a JSON representation into Struct message.s&Struct must be in a dict which is {0}.N(R3R�RRBR�R<(R R,RRE((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�Ws
cCs-|jjd}t|dt||��dS(s3Convert a JSON representation into Wrapper message.R,N(R%R2R�R�(R R,RR((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�`scCs�t|t�s-tdj|j|���n|jjd}|jjd}x|D]w}t||t�}|j	t
jjkr�|j
||t||j�|�qTt|||�t||j�|<qTWdS(s5Convert 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.
    s-Map field {0} must be in a dict which is {1}.RER,N(R3R�RRBR0RR2R�tTrueR=RRR>R�Rn(R R,RRt	key_fieldtvalue_fieldREt	key_value((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�es
(
RRR	R!R�R�R�R�R�R�R�R�R�(((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s			j								cCs�|jtkrt|�S|jtkr2t|�S|jtjjkrTt||�S|jtjj	kr�|j
tjjkr�tj
|�Stj|�r�td��n|Sn�|jtjjkr�|jjj|d�}|dkr�y(t|�}|jjj|d�}Wn/tk
rBtdj||jj���nX|dkr�|jjdkre|Stdj||jj���q�n|jSdS(sBConvert 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.
  sUnpaired surrogates)Invalid enum value {0} for enum type {1}.RJN(R=t
_INT_TYPESt_ConvertIntegerRZt
_ConvertFloatRRRWt_ConvertBoolRRRRSRTt	b64decodet_UNPAIRED_SURROGATE_PATTERNtsearchRRKRLtvalues_by_nameRNROtintRMRARBR&RPRQtnumber(R,Rtrequire_strRaR�((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s6




		cCs}t|t�r4|j�r4tdj|���nt|tj�rs|jd�dkrstdj|���nt|�S(s�Convert an integer.

  Args:
    value: A scalar value to convert.

  Returns:
    The integer value.

  Raises:
    ParseError: If an integer couldn't be consumed.
  sCouldn't parse integer: {0}.t i����sCouldn't parse integer: "{0}".(	R3tfloatt
is_integerRRBR�R�tfindR�(R,((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s
'cCs�|dkrtd��nyt|�SWnhtk
r�|tkrOtd�S|tkretd�S|tkr{td�Stdj|���nXdS(s!Convert an floating point number.tnans.Couldn't parse float "nan", use "NaN" instead.s-inftinfsCouldn't parse float: {0}.N(RR�RAR]R^R`RB(R,((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s



cCs`|r>|dkrtS|dkr&tStdj|���nt|t�s\td��n|S(s�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.
  R-R.s$Expected "true" or "false", not {0}.s&Expected true or false without quotes.(R�RuRRBR3R4(R,R�((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s
RfR�sgoogle.protobuf.AnyRgR�sgoogle.protobuf.Durationsgoogle.protobuf.FieldMaskRmR�sgoogle.protobuf.ListValueRtR�sgoogle.protobuf.Structsgoogle.protobuf.TimestampRqR�sgoogle.protobuf.Value(<R	t
__author__tcollectionsRtImportErrortordereddictRTR"R[treR�R�toperatorRtgoogle.protobufRRt_TIMESTAMPFOMATt	frozensetRt
CPPTYPE_INT32tCPPTYPE_UINT32t
CPPTYPE_INT64tCPPTYPE_UINT64R�RXt
CPPTYPE_FLOATtCPPTYPE_DOUBLERZR^R]R`tcompiletuR�R�t	ExceptionRR
RRuRRRtobjectRR'RwRcR�R�t
integer_typesR�R�R�R�R�R�R�R)(((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt<module>)s�
			�				�0			





PK�\1�W��/�/protobuf/type_pb2.pyonu�[����
���hc6@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZdd
lmZejddddddded�dejejg�Zejdddddddedejddddddd dd!d�ejdd"dd#dd#d dd!d�gd$dd dd%d&d'd(�	Zeje�eje�ZdZd#Zejdd)dd*dddedejdd+ddddd dd!d�ejdd,dd#dd#d dd!d�ejdd-dd.dd.d dd!d�ejdd/ddddd dd!d�ejdd0dd1dd1d dd!d�ejdd2dd3dd3d dd!d�ejdd4dd5dd5d dd!d�ejdd6dd7dd7d dd!d�ejdd8dd9dd9d dd!d�ejdd:dd;dd;d dd!d�ejdd<dd=dd=d dd!d�ejdd>dd?dd?d dd!d�ejdd@ddAddAd dd!d�ejddBddCddCd dd!d�ejddDddEddEd dd!d�ejddFddGddGd dd!d�ejddHddIddId dd!d�ejddJddKddKd dd!d�ejddLddMddMd dd!d�gd$dd dd%dNd'dO�	Z eje �ejddPddQdddedejddRddddd dd!d�ejddSdd#dd#d dd!d�ejddTdd.dd.d dd!d�ejddUddddd dd!d�gd$dd dd%dVd'dW�	Z!eje!�ej"ddXddYddded$ddZej#dddd[dddd#d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#ddZddfdd#dd.d!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#ddgddhdd.ddd!d;d\d;d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#dd ddidddd1d!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#ddjddkdd1dd3d!d?d\d=d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#ddddldd3dd5d!dEd\d9d]d#d^e$d_ddbddcdd$ddde$dedd dde�gdmgdngdogd ddpe$dddqgdggd%drd'ds�Z&ej"ddtdduddded$ddZej#ddvddwdddd#d!dEd\d9d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#ddxddydd#dd.d!dEd\d9d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#ddddzdd.ddd!d3d\d#d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#dddd{dddd1d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dd|dd}dd1dd5d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dd~dddd3dd7d!d3d\d#d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#dd�dd�dd5dd9d!d9d\d7d]d#d^e$d_e$dbddcdd$ddde$dedd dde�ej#dd dd�dd7dd;d!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#dd�dd�dd9dd=d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dd_dd�dd;dd?d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�g
dmgdngdoe e!gd ddpe$dddqgdggd%d�d'dW�Z'ej"dd�dd�ddded$ddZej#dddd�dddd#d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dd�dd�dd#dd.d!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#dd dd�dd.ddd!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#ddjdd�dddd1d!d?d\d=d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#dddd�dd1dd3d!dEd\d9d]d#d^e$d_ddbddcdd$ddde$dedd dde�gdmgdngdogd ddpe$dddqgdggd%d�d'd��Z(ej"dd�dd�ddded$ddZej#dddd�dddd#d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dddd�dd#dd.d!d3d\d#d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#dd dd�dd.ddd!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�gdmgdngdogd ddpe$dddqgdggd%d�d'd��Z)ej"dd�dd�ddded$ddZej#dddd�dddd#d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dd�dd�dd#dd.d!d?d\d=d]d#d^e$d_ddbddcdd$ddde$dedd dde�gdmgdngdogd ddpe$dddqgdggd%d�d'd��Z*e'e&j+dZ_,e*e&j+d _,ej-e&j+dj_,ee&j+d_.e e'j+dv_.e!e'j+dx_.e*e'j+d _,e'e _/e'e!_/e)e(j+d�_,e*e(j+d _,ej-e(j+dj_,ee(j+d_.e*e)j+d _,ej0e*j+d�_,e&ej1dX<e'ej1dt<e(ej1d�<e)ej1d�<e*ej1d�<eej2d<ej3e�ej4dXe	j5fe6d�e&d�d���Z7ej8e7�ej4dte	j5fe6d�e'd�d���Z9ej8e9�ej4d�e	j5fe6d�e(d�d���Z:ej8e:�ej4d�e	j5fe6d�e)d�d���Z;ej8e;�ej4d�e	j5fe6d�e*d�d���Z<ej8e<�e=e_>ej?ej@�ed���e_AdS(�i����NiicCs|S(N((tx((s</usr/lib/python2.7/site-packages/google/protobuf/type_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s</usr/lib/python2.7/site-packages/google/protobuf/type_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tany_pb2(tsource_context_pb2tnamesgoogle/protobuf/type.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs:
google/protobuf/type.protogoogle.protobufgoogle/protobuf/any.proto$google/protobuf/source_context.proto"�
Type
name (	&
fields (2.google.protobuf.Field
oneofs (	(
options (2.google.protobuf.Option6
source_context (2.google.protobuf.SourceContext'
syntax (2.google.protobuf.Syntax"�
Field)
kind (2.google.protobuf.Field.Kind7
cardinality (2".google.protobuf.Field.Cardinality
number (
name (	
type_url (	
oneof_index (
packed ((
options	 (2.google.protobuf.Option
	json_name
 (	

default_value (	"�
Kind
TYPE_UNKNOWN
TYPE_DOUBLE

TYPE_FLOAT

TYPE_INT64
TYPE_UINT64

TYPE_INT32
TYPE_FIXED64
TYPE_FIXED32
	TYPE_BOOL
TYPE_STRING	

TYPE_GROUP

TYPE_MESSAGE

TYPE_BYTES
TYPE_UINT32

	TYPE_ENUM

TYPE_SFIXED32

TYPE_SFIXED64
TYPE_SINT32
TYPE_SINT64"t
Cardinality
CARDINALITY_UNKNOWN
CARDINALITY_OPTIONAL
CARDINALITY_REQUIRED
CARDINALITY_REPEATED"�
Enum
name (	-
	enumvalue (2.google.protobuf.EnumValue(
options (2.google.protobuf.Option6
source_context (2.google.protobuf.SourceContext'
syntax (2.google.protobuf.Syntax"S
	EnumValue
name (	
number ((
options (2.google.protobuf.Option";
Option
name (	#
value (2.google.protobuf.Any*.
Syntax

SYNTAX_PROTO2

SYNTAX_PROTO3B}
com.google.protobufB	TypeProtoPZ/google.golang.org/genproto/protobuf/ptype;ptype��GPB�Google.Protobuf.WellKnownTypesbproto3tdependenciestSyntaxt	full_namesgoogle.protobuf.Syntaxtfilenametfiletvaluest
SYNTAX_PROTO2tindextnumbertoptionsttypet
SYNTAX_PROTO3itcontaining_typetserialized_starti�tserialized_endi�tKindsgoogle.protobuf.Field.KindtTYPE_UNKNOWNtTYPE_DOUBLEt
TYPE_FLOATit
TYPE_INT64tTYPE_UINT64it
TYPE_INT32itTYPE_FIXED64itTYPE_FIXED32it	TYPE_BOOLitTYPE_STRINGi	t
TYPE_GROUPi
tTYPE_MESSAGEit
TYPE_BYTESitTYPE_UINT32i
t	TYPE_ENUMit
TYPE_SFIXED32it
TYPE_SFIXED64itTYPE_SINT32itTYPE_SINT64iibi�tCardinalitys!google.protobuf.Field.CardinalitytCARDINALITY_UNKNOWNtCARDINALITY_OPTIONALtCARDINALITY_REQUIREDtCARDINALITY_REPEATEDi�i tTypesgoogle.protobuf.Typetfieldssgoogle.protobuf.Type.nametcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopesgoogle.protobuf.Type.fieldstoneofssgoogle.protobuf.Type.oneofssgoogle.protobuf.Type.optionstsource_contexts#google.protobuf.Type.source_contextsgoogle.protobuf.Type.syntaxt
extensionstnested_typest
enum_typest
is_extendabletextension_rangesiqiHtFieldsgoogle.protobuf.Fieldtkindsgoogle.protobuf.Field.kindtcardinalitys!google.protobuf.Field.cardinalitysgoogle.protobuf.Field.numbersgoogle.protobuf.Field.namettype_urlsgoogle.protobuf.Field.type_urltoneof_indexs!google.protobuf.Field.oneof_indextpackedsgoogle.protobuf.Field.packedsgoogle.protobuf.Field.optionst	json_namesgoogle.protobuf.Field.json_names#google.protobuf.Field.default_valueiKtEnumsgoogle.protobuf.Enumsgoogle.protobuf.Enum.namet	enumvaluesgoogle.protobuf.Enum.enumvaluesgoogle.protobuf.Enum.optionss#google.protobuf.Enum.source_contextsgoogle.protobuf.Enum.syntaxi#i�t	EnumValuesgoogle.protobuf.EnumValuesgoogle.protobuf.EnumValue.names google.protobuf.EnumValue.numbers!google.protobuf.EnumValue.optionsi�iFtOptionsgoogle.protobuf.Optionsgoogle.protobuf.Option.nametvaluesgoogle.protobuf.Option.valueiHi�t
DESCRIPTORt
__module__sgoogle.protobuf.type_pb2s}
com.google.protobufB	TypeProtoPZ/google.golang.org/genproto/protobuf/ptype;ptype��GPB�Google.Protobuf.WellKnownTypes(Btsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt google_dot_protobuf_dot_any__pb2Rt,google_dot_protobuf_dot_source__context__pb2tFileDescriptorRWtEnumDescriptortNonetEnumValueDescriptort_SYNTAXtRegisterEnumDescriptortEnumTypeWrapperRRRt_FIELD_KINDt_FIELD_CARDINALITYt
DescriptortFieldDescriptortFalsetdecodet_TYPEt_FIELDt_ENUMt
_ENUMVALUEt_OPTIONtfields_by_nameR@t_SOURCECONTEXTRARt_ANYtmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR:tRegisterMessageRKRRRTRUtTruethas_optionst
_ParseOptionstFileOptionst_options(((s</usr/lib/python2.7/site-packages/google/protobuf/type_pb2.pyt<module>s�%					
																					
						
																																							











	PK�\B�`ٙ�protobuf/__init__.pyonu�[����
���hc@s\dZedkrXyed�je�WqXek
rTed�jee�ZqXXndS(s3.5.0t__main__t
pkg_resourcestpkgutilN(t__version__t__name__t
__import__tdeclare_namespacetImportErrortextend_patht__path__(((s</usr/lib/python2.7/site-packages/google/protobuf/__init__.pyt<module>!s

PK�\��K��%�%protobuf/service.pycnu�[����
���hc@shdZdZdefd��YZdefd��YZdefd��YZdefd	��YZd
S(seDEPRECATED:  Declares the RPC service interfaces.

This module declares the abstract interfaces underlying proto2 RPC
services.  These are intended to be independent of any particular RPC
implementation, so that proto2 services can be used on top of a variety
of implementations.  Starting with version 2.3.0, RPC implementations should
not try to build on these, but should instead provide code generator plugins
which generate code specific to the particular RPC implementation.  This way
the generated code can be more appropriate for the implementation in use
and can avoid unnecessary layers of indirection.
spetar@google.com (Petar Petrov)tRpcExceptioncBseZdZRS(s4Exception raised on failed blocking RPC method call.(t__name__t
__module__t__doc__(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyR.stServicecBs2eZdZd�Zd�Zd�Zd�ZRS(sjAbstract base interface for protocol-buffer-based RPC services.

  Services themselves are abstract classes (implemented either by servers or as
  stubs), but they subclass this base interface. The methods of this
  interface can be used to call the methods of the service without knowing
  its exact type at compile time (analogous to the Message interface).
  cCs
t�dS(s$Retrieves this service's descriptor.N(tNotImplementedError(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt
GetDescriptor=scCs
t�dS(s>Calls a method of the service specified by method_descriptor.

    If "done" is None then the call is blocking and the response
    message will be returned directly.  Otherwise the call is asynchronous
    and "done" will later be called with the response value.

    In the blocking case, RpcException will be raised on error.

    Preconditions:
    * method_descriptor.service == GetDescriptor
    * request is of the exact same classes as returned by
      GetRequestClass(method).
    * After the call has started, the request must not be modified.
    * "rpc_controller" is of the correct type for the RPC implementation being
      used by this Service.  For stubs, the "correct type" depends on the
      RpcChannel which the stub is using.

    Postconditions:
    * "done" will be called when the method is complete.  This may be
      before CallMethod() returns or it may be at some point in the future.
    * If the RPC failed, the response value passed to "done" will be None.
      Further details about the failure can be found by querying the
      RpcController.
    N(R(tselftmethod_descriptortrpc_controllertrequesttdone((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt
CallMethodAscCs
t�dS(s�Returns the class of the request message for the specified method.

    CallMethod() requires that the request is of a particular subclass of
    Message. GetRequestClass() gets the default instance of this required
    type.

    Example:
      method = service.GetDescriptor().FindMethodByName("Foo")
      request = stub.GetRequestClass(method)()
      request.ParseFromString(input)
      service.CallMethod(method, request, callback)
    N(R(RR((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytGetRequestClass]s
cCs
t�dS(sReturns the class of the response message for the specified method.

    This method isn't really needed, as the RpcChannel's CallMethod constructs
    the response protocol message. It's provided anyway in case it is useful
    for the caller to know the response type in advance.
    N(R(RR((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytGetResponseClassls(RRRRRR
R(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyR3s
			t
RpcControllercBsMeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(s�An RpcController mediates a single method call.

  The primary purpose of the controller is to provide a way to manipulate
  settings specific to the RPC implementation and to find out about RPC-level
  errors. The methods provided by the RpcController interface are intended
  to be a "least common denominator" set of features which we expect all
  implementations to support.  Specific implementations may provide more
  advanced features (e.g. deadline propagation).
  cCs
t�dS(s�Resets the RpcController to its initial state.

    After the RpcController has been reset, it may be reused in
    a new call. Must not be called while an RPC is in progress.
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytReset�scCs
t�dS(s>Returns true if the call failed.

    After a call has finished, returns true if the call failed.  The possible
    reasons for failure depend on the RPC implementation.  Failed() must not
    be called before a call has finished.  If Failed() returns true, the
    contents of the response message are undefined.
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytFailed�scCs
t�dS(sEIf Failed is true, returns a human-readable description of the error.N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt	ErrorText�scCs
t�dS(sInitiate cancellation.

    Advises the RPC system that the caller desires that the RPC call be
    canceled.  The RPC system may cancel it immediately, may wait awhile and
    then cancel it, or may not even cancel the call at all.  If the call is
    canceled, the "done" callback will still be called and the RpcController
    will indicate that the call failed at that time.
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytStartCancel�s	cCs
t�dS(sWSets a failure reason.

    Causes Failed() to return true on the client side.  "reason" will be
    incorporated into the message returned by ErrorText().  If you find
    you need to return machine-readable information about failures, you
    should incorporate it into your response protocol buffer and should
    NOT call SetFailed().
    N(R(Rtreason((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt	SetFailed�s	cCs
t�dS(s�Checks if the client cancelled the RPC.

    If true, indicates that the client canceled the RPC, so the server may
    as well give up on replying to it.  The server should still call the
    final "done" callback.
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt
IsCanceled�scCs
t�dS(s�Sets a callback to invoke on cancel.

    Asks that the given callback be called when the RPC is canceled.  The
    callback will always be called exactly once.  If the RPC completes without
    being canceled, the callback will be called after completion.  If the RPC
    has already been canceled when NotifyOnCancel() is called, the callback
    will be called immediately.

    NotifyOnCancel() must be called no more than once per request.
    N(R(Rtcallback((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pytNotifyOnCancel�s(
RRRRRRRRRR(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyRvs
		
		
			t
RpcChannelcBseZdZd�ZRS(s4Abstract interface for an RPC channel.

  An RpcChannel represents a communication line to a service which can be used
  to call that service's methods.  The service may be running on another
  machine. Normally, you should not use an RpcChannel directly, but instead
  construct a stub {@link Service} wrapping it.  Example:

  Example:
    RpcChannel channel = rpcImpl.Channel("remotehost.example.com:1234")
    RpcController controller = rpcImpl.Controller()
    MyService service = MyService_Stub(channel)
    service.MyMethod(controller, request, callback)
  cCs
t�dS(sbCalls the method identified by the descriptor.

    Call the given method of the remote service.  The signature of this
    procedure looks the same as Service.CallMethod(), but the requirements
    are less strict in one important way:  the request object doesn't have to
    be of any specific class as long as its descriptor is method.input_type.
    N(R(RRR	R
tresponse_classR((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyR�s	(RRRR(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyR�sN(Rt
__author__t	ExceptionRtobjectRRR(((s;/usr/lib/python2.7/site-packages/google/protobuf/service.pyt<module>)s
CSPK�\�^���	�	)protobuf/unittest_no_arena_import_pb2.pycnu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d1d2d3�Zeejd<eje�e	jdejfed4ed5d6��Zeje�dS(7i����NiicCs|S(N((tx((sP/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_import_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sP/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_import_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames.google/protobuf/unittest_no_arena_import.prototpackagetproto2_arena_unittesttsyntaxtproto2t
serialized_pbsp
.google/protobuf/unittest_no_arena_import.protoproto2_arena_unittest"'
ImportNoArenaNestedMessage	
d (tImportNoArenaNestedMessaget	full_names0proto2_arena_unittest.ImportNoArenaNestedMessagetfilenametfiletcontaining_typetfieldstds2proto2_arena_unittest.ImportNoArenaNestedMessage.dtindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiItserialized_endipt
DESCRIPTORt
__module__s,google.protobuf.unittest_no_arena_import_pb2(tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR+t
DescriptortNonetFieldDescriptortFalset_IMPORTNOARENANESTEDMESSAGEtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessage(((sP/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_import_pb2.pyt<module>sR%				

PK�\1�W��/�/protobuf/type_pb2.pycnu�[����
���hc6@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZdd
lmZejddddddded�dejejg�Zejdddddddedejddddddd dd!d�ejdd"dd#dd#d dd!d�gd$dd dd%d&d'd(�	Zeje�eje�ZdZd#Zejdd)dd*dddedejdd+ddddd dd!d�ejdd,dd#dd#d dd!d�ejdd-dd.dd.d dd!d�ejdd/ddddd dd!d�ejdd0dd1dd1d dd!d�ejdd2dd3dd3d dd!d�ejdd4dd5dd5d dd!d�ejdd6dd7dd7d dd!d�ejdd8dd9dd9d dd!d�ejdd:dd;dd;d dd!d�ejdd<dd=dd=d dd!d�ejdd>dd?dd?d dd!d�ejdd@ddAddAd dd!d�ejddBddCddCd dd!d�ejddDddEddEd dd!d�ejddFddGddGd dd!d�ejddHddIddId dd!d�ejddJddKddKd dd!d�ejddLddMddMd dd!d�gd$dd dd%dNd'dO�	Z eje �ejddPddQdddedejddRddddd dd!d�ejddSdd#dd#d dd!d�ejddTdd.dd.d dd!d�ejddUddddd dd!d�gd$dd dd%dVd'dW�	Z!eje!�ej"ddXddYddded$ddZej#dddd[dddd#d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#ddZddfdd#dd.d!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#ddgddhdd.ddd!d;d\d;d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#dd ddidddd1d!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#ddjddkdd1dd3d!d?d\d=d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#ddddldd3dd5d!dEd\d9d]d#d^e$d_ddbddcdd$ddde$dedd dde�gdmgdngdogd ddpe$dddqgdggd%drd'ds�Z&ej"ddtdduddded$ddZej#ddvddwdddd#d!dEd\d9d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#ddxddydd#dd.d!dEd\d9d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#ddddzdd.ddd!d3d\d#d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#dddd{dddd1d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dd|dd}dd1dd5d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dd~dddd3dd7d!d3d\d#d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#dd�dd�dd5dd9d!d9d\d7d]d#d^e$d_e$dbddcdd$ddde$dedd dde�ej#dd dd�dd7dd;d!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#dd�dd�dd9dd=d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dd_dd�dd;dd?d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�g
dmgdngdoe e!gd ddpe$dddqgdggd%d�d'dW�Z'ej"dd�dd�ddded$ddZej#dddd�dddd#d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dd�dd�dd#dd.d!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#dd dd�dd.ddd!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�ej#ddjdd�dddd1d!d?d\d=d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#dddd�dd1dd3d!dEd\d9d]d#d^e$d_ddbddcdd$ddde$dedd dde�gdmgdngdogd ddpe$dddqgdggd%d�d'd��Z(ej"dd�dd�ddded$ddZej#dddd�dddd#d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dddd�dd#dd.d!d3d\d#d]d#d^e$d_ddbddcdd$ddde$dedd dde�ej#dd dd�dd.ddd!d?d\d=d]dd^e$d_gdbddcdd$ddde$dedd dde�gdmgdngdogd ddpe$dddqgdggd%d�d'd��Z)ej"dd�dd�ddded$ddZej#dddd�dddd#d!d;d\d;d]d#d^e$d_ed`�j%da�dbddcdd$ddde$dedd dde�ej#dd�dd�dd#dd.d!d?d\d=d]d#d^e$d_ddbddcdd$ddde$dedd dde�gdmgdngdogd ddpe$dddqgdggd%d�d'd��Z*e'e&j+dZ_,e*e&j+d _,ej-e&j+dj_,ee&j+d_.e e'j+dv_.e!e'j+dx_.e*e'j+d _,e'e _/e'e!_/e)e(j+d�_,e*e(j+d _,ej-e(j+dj_,ee(j+d_.e*e)j+d _,ej0e*j+d�_,e&ej1dX<e'ej1dt<e(ej1d�<e)ej1d�<e*ej1d�<eej2d<ej3e�ej4dXe	j5fe6d�e&d�d���Z7ej8e7�ej4dte	j5fe6d�e'd�d���Z9ej8e9�ej4d�e	j5fe6d�e(d�d���Z:ej8e:�ej4d�e	j5fe6d�e)d�d���Z;ej8e;�ej4d�e	j5fe6d�e*d�d���Z<ej8e<�e=e_>ej?ej@�ed���e_AdS(�i����NiicCs|S(N((tx((s</usr/lib/python2.7/site-packages/google/protobuf/type_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s</usr/lib/python2.7/site-packages/google/protobuf/type_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tany_pb2(tsource_context_pb2tnamesgoogle/protobuf/type.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs:
google/protobuf/type.protogoogle.protobufgoogle/protobuf/any.proto$google/protobuf/source_context.proto"�
Type
name (	&
fields (2.google.protobuf.Field
oneofs (	(
options (2.google.protobuf.Option6
source_context (2.google.protobuf.SourceContext'
syntax (2.google.protobuf.Syntax"�
Field)
kind (2.google.protobuf.Field.Kind7
cardinality (2".google.protobuf.Field.Cardinality
number (
name (	
type_url (	
oneof_index (
packed ((
options	 (2.google.protobuf.Option
	json_name
 (	

default_value (	"�
Kind
TYPE_UNKNOWN
TYPE_DOUBLE

TYPE_FLOAT

TYPE_INT64
TYPE_UINT64

TYPE_INT32
TYPE_FIXED64
TYPE_FIXED32
	TYPE_BOOL
TYPE_STRING	

TYPE_GROUP

TYPE_MESSAGE

TYPE_BYTES
TYPE_UINT32

	TYPE_ENUM

TYPE_SFIXED32

TYPE_SFIXED64
TYPE_SINT32
TYPE_SINT64"t
Cardinality
CARDINALITY_UNKNOWN
CARDINALITY_OPTIONAL
CARDINALITY_REQUIRED
CARDINALITY_REPEATED"�
Enum
name (	-
	enumvalue (2.google.protobuf.EnumValue(
options (2.google.protobuf.Option6
source_context (2.google.protobuf.SourceContext'
syntax (2.google.protobuf.Syntax"S
	EnumValue
name (	
number ((
options (2.google.protobuf.Option";
Option
name (	#
value (2.google.protobuf.Any*.
Syntax

SYNTAX_PROTO2

SYNTAX_PROTO3B}
com.google.protobufB	TypeProtoPZ/google.golang.org/genproto/protobuf/ptype;ptype��GPB�Google.Protobuf.WellKnownTypesbproto3tdependenciestSyntaxt	full_namesgoogle.protobuf.Syntaxtfilenametfiletvaluest
SYNTAX_PROTO2tindextnumbertoptionsttypet
SYNTAX_PROTO3itcontaining_typetserialized_starti�tserialized_endi�tKindsgoogle.protobuf.Field.KindtTYPE_UNKNOWNtTYPE_DOUBLEt
TYPE_FLOATit
TYPE_INT64tTYPE_UINT64it
TYPE_INT32itTYPE_FIXED64itTYPE_FIXED32it	TYPE_BOOLitTYPE_STRINGi	t
TYPE_GROUPi
tTYPE_MESSAGEit
TYPE_BYTESitTYPE_UINT32i
t	TYPE_ENUMit
TYPE_SFIXED32it
TYPE_SFIXED64itTYPE_SINT32itTYPE_SINT64iibi�tCardinalitys!google.protobuf.Field.CardinalitytCARDINALITY_UNKNOWNtCARDINALITY_OPTIONALtCARDINALITY_REQUIREDtCARDINALITY_REPEATEDi�i tTypesgoogle.protobuf.Typetfieldssgoogle.protobuf.Type.nametcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopesgoogle.protobuf.Type.fieldstoneofssgoogle.protobuf.Type.oneofssgoogle.protobuf.Type.optionstsource_contexts#google.protobuf.Type.source_contextsgoogle.protobuf.Type.syntaxt
extensionstnested_typest
enum_typest
is_extendabletextension_rangesiqiHtFieldsgoogle.protobuf.Fieldtkindsgoogle.protobuf.Field.kindtcardinalitys!google.protobuf.Field.cardinalitysgoogle.protobuf.Field.numbersgoogle.protobuf.Field.namettype_urlsgoogle.protobuf.Field.type_urltoneof_indexs!google.protobuf.Field.oneof_indextpackedsgoogle.protobuf.Field.packedsgoogle.protobuf.Field.optionst	json_namesgoogle.protobuf.Field.json_names#google.protobuf.Field.default_valueiKtEnumsgoogle.protobuf.Enumsgoogle.protobuf.Enum.namet	enumvaluesgoogle.protobuf.Enum.enumvaluesgoogle.protobuf.Enum.optionss#google.protobuf.Enum.source_contextsgoogle.protobuf.Enum.syntaxi#i�t	EnumValuesgoogle.protobuf.EnumValuesgoogle.protobuf.EnumValue.names google.protobuf.EnumValue.numbers!google.protobuf.EnumValue.optionsi�iFtOptionsgoogle.protobuf.Optionsgoogle.protobuf.Option.nametvaluesgoogle.protobuf.Option.valueiHi�t
DESCRIPTORt
__module__sgoogle.protobuf.type_pb2s}
com.google.protobufB	TypeProtoPZ/google.golang.org/genproto/protobuf/ptype;ptype��GPB�Google.Protobuf.WellKnownTypes(Btsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt google_dot_protobuf_dot_any__pb2Rt,google_dot_protobuf_dot_source__context__pb2tFileDescriptorRWtEnumDescriptortNonetEnumValueDescriptort_SYNTAXtRegisterEnumDescriptortEnumTypeWrapperRRRt_FIELD_KINDt_FIELD_CARDINALITYt
DescriptortFieldDescriptortFalsetdecodet_TYPEt_FIELDt_ENUMt
_ENUMVALUEt_OPTIONtfields_by_nameR@t_SOURCECONTEXTRARt_ANYtmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR:tRegisterMessageRKRRRTRUtTruethas_optionst
_ParseOptionstFileOptionst_options(((s</usr/lib/python2.7/site-packages/google/protobuf/type_pb2.pyt<module>s�%					
																					
						
																																							











	PK�\�W;̤̤$protobuf/test_messages_proto2_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/test_messages_proto2.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/test_messages_proto2.proto',
  package='protobuf_test_messages.proto2',
  syntax='proto2',
  serialized_pb=_b('\n*google/protobuf/test_messages_proto2.proto\x12\x1dprotobuf_test_messages.proto2\"\xde\x32\n\x12TestAllTypesProto2\x12\x16\n\x0eoptional_int32\x18\x01 \x01(\x05\x12\x16\n\x0eoptional_int64\x18\x02 \x01(\x03\x12\x17\n\x0foptional_uint32\x18\x03 \x01(\r\x12\x17\n\x0foptional_uint64\x18\x04 \x01(\x04\x12\x17\n\x0foptional_sint32\x18\x05 \x01(\x11\x12\x17\n\x0foptional_sint64\x18\x06 \x01(\x12\x12\x18\n\x10optional_fixed32\x18\x07 \x01(\x07\x12\x18\n\x10optional_fixed64\x18\x08 \x01(\x06\x12\x19\n\x11optional_sfixed32\x18\t \x01(\x0f\x12\x19\n\x11optional_sfixed64\x18\n \x01(\x10\x12\x16\n\x0eoptional_float\x18\x0b \x01(\x02\x12\x17\n\x0foptional_double\x18\x0c \x01(\x01\x12\x15\n\roptional_bool\x18\r \x01(\x08\x12\x17\n\x0foptional_string\x18\x0e \x01(\t\x12\x16\n\x0eoptional_bytes\x18\x0f \x01(\x0c\x12`\n\x17optional_nested_message\x18\x12 \x01(\x0b\x32?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage\x12U\n\x18optional_foreign_message\x18\x13 \x01(\x0b\x32\x33.protobuf_test_messages.proto2.ForeignMessageProto2\x12Z\n\x14optional_nested_enum\x18\x15 \x01(\x0e\x32<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum\x12O\n\x15optional_foreign_enum\x18\x16 \x01(\x0e\x32\x30.protobuf_test_messages.proto2.ForeignEnumProto2\x12!\n\x15optional_string_piece\x18\x18 \x01(\tB\x02\x08\x02\x12\x19\n\roptional_cord\x18\x19 \x01(\tB\x02\x08\x01\x12L\n\x11recursive_message\x18\x1b \x01(\x0b\x32\x31.protobuf_test_messages.proto2.TestAllTypesProto2\x12\x16\n\x0erepeated_int32\x18\x1f \x03(\x05\x12\x16\n\x0erepeated_int64\x18  \x03(\x03\x12\x17\n\x0frepeated_uint32\x18! \x03(\r\x12\x17\n\x0frepeated_uint64\x18\" \x03(\x04\x12\x17\n\x0frepeated_sint32\x18# \x03(\x11\x12\x17\n\x0frepeated_sint64\x18$ \x03(\x12\x12\x18\n\x10repeated_fixed32\x18% \x03(\x07\x12\x18\n\x10repeated_fixed64\x18& \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\' \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18( \x03(\x10\x12\x16\n\x0erepeated_float\x18) \x03(\x02\x12\x17\n\x0frepeated_double\x18* \x03(\x01\x12\x15\n\rrepeated_bool\x18+ \x03(\x08\x12\x17\n\x0frepeated_string\x18, \x03(\t\x12\x16\n\x0erepeated_bytes\x18- \x03(\x0c\x12`\n\x17repeated_nested_message\x18\x30 \x03(\x0b\x32?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage\x12U\n\x18repeated_foreign_message\x18\x31 \x03(\x0b\x32\x33.protobuf_test_messages.proto2.ForeignMessageProto2\x12Z\n\x14repeated_nested_enum\x18\x33 \x03(\x0e\x32<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum\x12O\n\x15repeated_foreign_enum\x18\x34 \x03(\x0e\x32\x30.protobuf_test_messages.proto2.ForeignEnumProto2\x12!\n\x15repeated_string_piece\x18\x36 \x03(\tB\x02\x08\x02\x12\x19\n\rrepeated_cord\x18\x37 \x03(\tB\x02\x08\x01\x12]\n\x0fmap_int32_int32\x18\x38 \x03(\x0b\x32\x44.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry\x12]\n\x0fmap_int64_int64\x18\x39 \x03(\x0b\x32\x44.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry\x12\x61\n\x11map_uint32_uint32\x18: \x03(\x0b\x32\x46.protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry\x12\x61\n\x11map_uint64_uint64\x18; \x03(\x0b\x32\x46.protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry\x12\x61\n\x11map_sint32_sint32\x18< \x03(\x0b\x32\x46.protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry\x12\x61\n\x11map_sint64_sint64\x18= \x03(\x0b\x32\x46.protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry\x12\x65\n\x13map_fixed32_fixed32\x18> \x03(\x0b\x32H.protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry\x12\x65\n\x13map_fixed64_fixed64\x18? \x03(\x0b\x32H.protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry\x12i\n\x15map_sfixed32_sfixed32\x18@ \x03(\x0b\x32J.protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry\x12i\n\x15map_sfixed64_sfixed64\x18\x41 \x03(\x0b\x32J.protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry\x12]\n\x0fmap_int32_float\x18\x42 \x03(\x0b\x32\x44.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry\x12_\n\x10map_int32_double\x18\x43 \x03(\x0b\x32\x45.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry\x12Y\n\rmap_bool_bool\x18\x44 \x03(\x0b\x32\x42.protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry\x12\x61\n\x11map_string_string\x18\x45 \x03(\x0b\x32\x46.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry\x12_\n\x10map_string_bytes\x18\x46 \x03(\x0b\x32\x45.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry\x12p\n\x19map_string_nested_message\x18G \x03(\x0b\x32M.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry\x12r\n\x1amap_string_foreign_message\x18H \x03(\x0b\x32N.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry\x12j\n\x16map_string_nested_enum\x18I \x03(\x0b\x32J.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry\x12l\n\x17map_string_foreign_enum\x18J \x03(\x0b\x32K.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry\x12\x16\n\x0coneof_uint32\x18o \x01(\rH\x00\x12_\n\x14oneof_nested_message\x18p \x01(\x0b\x32?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessageH\x00\x12\x16\n\x0coneof_string\x18q \x01(\tH\x00\x12\x15\n\x0boneof_bytes\x18r \x01(\x0cH\x00\x12\x14\n\noneof_bool\x18s \x01(\x08H\x00\x12\x16\n\x0coneof_uint64\x18t \x01(\x04H\x00\x12\x15\n\x0boneof_float\x18u \x01(\x02H\x00\x12\x16\n\x0coneof_double\x18v \x01(\x01H\x00\x12R\n\noneof_enum\x18w \x01(\x0e\x32<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnumH\x00\x12\x45\n\x04\x64\x61ta\x18\xc9\x01 \x01(\n26.protobuf_test_messages.proto2.TestAllTypesProto2.Data\x12\x13\n\nfieldname1\x18\x91\x03 \x01(\x05\x12\x14\n\x0b\x66ield_name2\x18\x92\x03 \x01(\x05\x12\x15\n\x0c_field_name3\x18\x93\x03 \x01(\x05\x12\x16\n\rfield__name4_\x18\x94\x03 \x01(\x05\x12\x14\n\x0b\x66ield0name5\x18\x95\x03 \x01(\x05\x12\x16\n\rfield_0_name6\x18\x96\x03 \x01(\x05\x12\x13\n\nfieldName7\x18\x97\x03 \x01(\x05\x12\x13\n\nFieldName8\x18\x98\x03 \x01(\x05\x12\x14\n\x0b\x66ield_Name9\x18\x99\x03 \x01(\x05\x12\x15\n\x0c\x46ield_Name10\x18\x9a\x03 \x01(\x05\x12\x15\n\x0c\x46IELD_NAME11\x18\x9b\x03 \x01(\x05\x12\x15\n\x0c\x46IELD_name12\x18\x9c\x03 \x01(\x05\x12\x17\n\x0e__field_name13\x18\x9d\x03 \x01(\x05\x12\x17\n\x0e__Field_name14\x18\x9e\x03 \x01(\x05\x12\x16\n\rfield__name15\x18\x9f\x03 \x01(\x05\x12\x16\n\rfield__Name16\x18\xa0\x03 \x01(\x05\x12\x17\n\x0e\x66ield_name17__\x18\xa1\x03 \x01(\x05\x12\x17\n\x0e\x46ield_name18__\x18\xa2\x03 \x01(\x05\x1a\x62\n\rNestedMessage\x12\t\n\x01\x61\x18\x01 \x01(\x05\x12\x46\n\x0b\x63orecursive\x18\x02 \x01(\x0b\x32\x31.protobuf_test_messages.proto2.TestAllTypesProto2\x1a\x34\n\x12MapInt32Int32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\x1a\x34\n\x12MapInt64Int64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x03:\x02\x38\x01\x1a\x36\n\x14MapUint32Uint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\x1a\x36\n\x14MapUint64Uint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12\r\n\x05value\x18\x02 \x01(\x04:\x02\x38\x01\x1a\x36\n\x14MapSint32Sint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x11\x12\r\n\x05value\x18\x02 \x01(\x11:\x02\x38\x01\x1a\x36\n\x14MapSint64Sint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x12\x12\r\n\x05value\x18\x02 \x01(\x12:\x02\x38\x01\x1a\x38\n\x16MapFixed32Fixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x07\x12\r\n\x05value\x18\x02 \x01(\x07:\x02\x38\x01\x1a\x38\n\x16MapFixed64Fixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x06\x12\r\n\x05value\x18\x02 \x01(\x06:\x02\x38\x01\x1a:\n\x18MapSfixed32Sfixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x0f\x12\r\n\x05value\x18\x02 \x01(\x0f:\x02\x38\x01\x1a:\n\x18MapSfixed64Sfixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x10\x12\r\n\x05value\x18\x02 \x01(\x10:\x02\x38\x01\x1a\x34\n\x12MapInt32FloatEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x35\n\x13MapInt32DoubleEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1a\x32\n\x10MapBoolBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x36\n\x14MapStringStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x35\n\x13MapStringBytesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x1a~\n\x1bMapStringNestedMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12N\n\x05value\x18\x02 \x01(\x0b\x32?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage:\x02\x38\x01\x1as\n\x1cMapStringForeignMessageEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x42\n\x05value\x18\x02 \x01(\x0b\x32\x33.protobuf_test_messages.proto2.ForeignMessageProto2:\x02\x38\x01\x1ax\n\x18MapStringNestedEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12K\n\x05value\x18\x02 \x01(\x0e\x32<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum:\x02\x38\x01\x1am\n\x19MapStringForeignEnumEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12?\n\x05value\x18\x02 \x01(\x0e\x32\x30.protobuf_test_messages.proto2.ForeignEnumProto2:\x02\x38\x01\x1a\x33\n\x04\x44\x61ta\x12\x14\n\x0bgroup_int32\x18\xca\x01 \x01(\x05\x12\x15\n\x0cgroup_uint32\x18\xcb\x01 \x01(\r\x1a!\n\x11MessageSetCorrect*\x08\x08\x04\x10\xff\xff\xff\xff\x07:\x02\x08\x01\x1a\xe0\x01\n\x1bMessageSetCorrectExtension1\x12\x0b\n\x03str\x18\x19 \x01(\t2\xb3\x01\n\x15message_set_extension\x12\x43.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect\x18\xf9\xbb^ \x01(\x0b\x32M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1\x1a\xdf\x01\n\x1bMessageSetCorrectExtension2\x12\t\n\x01i\x18\t \x01(\x05\x32\xb4\x01\n\x15message_set_extension\x12\x43.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect\x18\x90\xb3\xfc\x01 \x01(\x0b\x32M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2\"9\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x00\x12\x07\n\x03\x42\x41R\x10\x01\x12\x07\n\x03\x42\x41Z\x10\x02\x12\x10\n\x03NEG\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01*\x05\x08x\x10\xc9\x01\x42\r\n\x0boneof_field\"!\n\x14\x46oreignMessageProto2\x12\t\n\x01\x63\x18\x01 \x01(\x05*F\n\x11\x46oreignEnumProto2\x12\x0f\n\x0b\x46OREIGN_FOO\x10\x00\x12\x0f\n\x0b\x46OREIGN_BAR\x10\x01\x12\x0f\n\x0b\x46OREIGN_BAZ\x10\x02:J\n\x0f\x65xtension_int32\x12\x31.protobuf_test_messages.proto2.TestAllTypesProto2\x18x \x01(\x05\x42/\n(com.google.protobuf_test_messages.proto2H\x01\xf8\x01\x01')
)

_FOREIGNENUMPROTO2 = _descriptor.EnumDescriptor(
  name='ForeignEnumProto2',
  full_name='protobuf_test_messages.proto2.ForeignEnumProto2',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_FOO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_BAR', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_BAZ', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=6609,
  serialized_end=6679,
)
_sym_db.RegisterEnumDescriptor(_FOREIGNENUMPROTO2)

ForeignEnumProto2 = enum_type_wrapper.EnumTypeWrapper(_FOREIGNENUMPROTO2)
FOREIGN_FOO = 0
FOREIGN_BAR = 1
FOREIGN_BAZ = 2

EXTENSION_INT32_FIELD_NUMBER = 120
extension_int32 = _descriptor.FieldDescriptor(
  name='extension_int32', full_name='protobuf_test_messages.proto2.extension_int32', index=0,
  number=120, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)

_TESTALLTYPESPROTO2_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAZ', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NEG', index=3, number=-1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=6493,
  serialized_end=6550,
)
_sym_db.RegisterEnumDescriptor(_TESTALLTYPESPROTO2_NESTEDENUM)


_TESTALLTYPESPROTO2_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage.a', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='corecursive', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage.corecursive', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4534,
  serialized_end=4632,
)

_TESTALLTYPESPROTO2_MAPINT32INT32ENTRY = _descriptor.Descriptor(
  name='MapInt32Int32Entry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4634,
  serialized_end=4686,
)

_TESTALLTYPESPROTO2_MAPINT64INT64ENTRY = _descriptor.Descriptor(
  name='MapInt64Int64Entry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry.key', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry.value', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4688,
  serialized_end=4740,
)

_TESTALLTYPESPROTO2_MAPUINT32UINT32ENTRY = _descriptor.Descriptor(
  name='MapUint32Uint32Entry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry.key', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry.value', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4742,
  serialized_end=4796,
)

_TESTALLTYPESPROTO2_MAPUINT64UINT64ENTRY = _descriptor.Descriptor(
  name='MapUint64Uint64Entry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry.key', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry.value', index=1,
      number=2, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4798,
  serialized_end=4852,
)

_TESTALLTYPESPROTO2_MAPSINT32SINT32ENTRY = _descriptor.Descriptor(
  name='MapSint32Sint32Entry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry.key', index=0,
      number=1, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry.value', index=1,
      number=2, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4854,
  serialized_end=4908,
)

_TESTALLTYPESPROTO2_MAPSINT64SINT64ENTRY = _descriptor.Descriptor(
  name='MapSint64Sint64Entry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry.key', index=0,
      number=1, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry.value', index=1,
      number=2, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4910,
  serialized_end=4964,
)

_TESTALLTYPESPROTO2_MAPFIXED32FIXED32ENTRY = _descriptor.Descriptor(
  name='MapFixed32Fixed32Entry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry.key', index=0,
      number=1, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry.value', index=1,
      number=2, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4966,
  serialized_end=5022,
)

_TESTALLTYPESPROTO2_MAPFIXED64FIXED64ENTRY = _descriptor.Descriptor(
  name='MapFixed64Fixed64Entry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry.key', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry.value', index=1,
      number=2, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5024,
  serialized_end=5080,
)

_TESTALLTYPESPROTO2_MAPSFIXED32SFIXED32ENTRY = _descriptor.Descriptor(
  name='MapSfixed32Sfixed32Entry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry.key', index=0,
      number=1, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry.value', index=1,
      number=2, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5082,
  serialized_end=5140,
)

_TESTALLTYPESPROTO2_MAPSFIXED64SFIXED64ENTRY = _descriptor.Descriptor(
  name='MapSfixed64Sfixed64Entry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry.key', index=0,
      number=1, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry.value', index=1,
      number=2, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5142,
  serialized_end=5200,
)

_TESTALLTYPESPROTO2_MAPINT32FLOATENTRY = _descriptor.Descriptor(
  name='MapInt32FloatEntry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry.value', index=1,
      number=2, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5202,
  serialized_end=5254,
)

_TESTALLTYPESPROTO2_MAPINT32DOUBLEENTRY = _descriptor.Descriptor(
  name='MapInt32DoubleEntry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry.value', index=1,
      number=2, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5256,
  serialized_end=5309,
)

_TESTALLTYPESPROTO2_MAPBOOLBOOLENTRY = _descriptor.Descriptor(
  name='MapBoolBoolEntry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry.key', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry.value', index=1,
      number=2, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5311,
  serialized_end=5361,
)

_TESTALLTYPESPROTO2_MAPSTRINGSTRINGENTRY = _descriptor.Descriptor(
  name='MapStringStringEntry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry.value', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5363,
  serialized_end=5417,
)

_TESTALLTYPESPROTO2_MAPSTRINGBYTESENTRY = _descriptor.Descriptor(
  name='MapStringBytesEntry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry.value', index=1,
      number=2, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5419,
  serialized_end=5472,
)

_TESTALLTYPESPROTO2_MAPSTRINGNESTEDMESSAGEENTRY = _descriptor.Descriptor(
  name='MapStringNestedMessageEntry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5474,
  serialized_end=5600,
)

_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNMESSAGEENTRY = _descriptor.Descriptor(
  name='MapStringForeignMessageEntry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5602,
  serialized_end=5717,
)

_TESTALLTYPESPROTO2_MAPSTRINGNESTEDENUMENTRY = _descriptor.Descriptor(
  name='MapStringNestedEnumEntry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5719,
  serialized_end=5839,
)

_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNENUMENTRY = _descriptor.Descriptor(
  name='MapStringForeignEnumEntry',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5841,
  serialized_end=5950,
)

_TESTALLTYPESPROTO2_DATA = _descriptor.Descriptor(
  name='Data',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.Data',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='group_int32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.Data.group_int32', index=0,
      number=202, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='group_uint32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.Data.group_uint32', index=1,
      number=203, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5952,
  serialized_end=6003,
)

_TESTALLTYPESPROTO2_MESSAGESETCORRECT = _descriptor.Descriptor(
  name='MessageSetCorrect',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\010\001')),
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(4, 2147483647), ],
  oneofs=[
  ],
  serialized_start=6005,
  serialized_end=6038,
)

_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION1 = _descriptor.Descriptor(
  name='MessageSetCorrectExtension1',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='str', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.str', index=0,
      number=25, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='message_set_extension', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extension', index=0,
      number=1547769, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6041,
  serialized_end=6265,
)

_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION2 = _descriptor.Descriptor(
  name='MessageSetCorrectExtension2',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='i', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.i', index=0,
      number=9, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='message_set_extension', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extension', index=0,
      number=4135312, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6268,
  serialized_end=6491,
)

_TESTALLTYPESPROTO2 = _descriptor.Descriptor(
  name='TestAllTypesProto2',
  full_name='protobuf_test_messages.proto2.TestAllTypesProto2',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_int32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_int32', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_int64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_int64', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_uint32', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_uint64', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sint32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_sint32', index=4,
      number=5, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sint64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_sint64', index=5,
      number=6, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_fixed32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_fixed32', index=6,
      number=7, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_fixed64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_fixed64', index=7,
      number=8, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sfixed32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_sfixed32', index=8,
      number=9, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sfixed64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_sfixed64', index=9,
      number=10, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_float', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_float', index=10,
      number=11, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_double', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_double', index=11,
      number=12, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bool', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_bool', index=12,
      number=13, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_string', index=13,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bytes', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_bytes', index=14,
      number=15, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_message', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_message', index=15,
      number=18, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_foreign_message', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_message', index=16,
      number=19, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_enum', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_enum', index=17,
      number=21, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_foreign_enum', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_enum', index=18,
      number=22, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string_piece', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_string_piece', index=19,
      number=24, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_cord', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.optional_cord', index=20,
      number=25, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='recursive_message', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.recursive_message', index=21,
      number=27, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_int32', index=22,
      number=31, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_int64', index=23,
      number=32, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_uint32', index=24,
      number=33, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_uint64', index=25,
      number=34, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_sint32', index=26,
      number=35, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_sint64', index=27,
      number=36, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_fixed32', index=28,
      number=37, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_fixed64', index=29,
      number=38, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_sfixed32', index=30,
      number=39, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_sfixed64', index=31,
      number=40, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_float', index=32,
      number=41, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_double', index=33,
      number=42, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_bool', index=34,
      number=43, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_string', index=35,
      number=44, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bytes', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_bytes', index=36,
      number=45, type=12, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_message', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_message', index=37,
      number=48, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_foreign_message', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_message', index=38,
      number=49, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_enum', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_enum', index=39,
      number=51, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_foreign_enum', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_enum', index=40,
      number=52, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string_piece', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_string_piece', index=41,
      number=54, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_cord', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.repeated_cord', index=42,
      number=55, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_int32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_int32', index=43,
      number=56, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int64_int64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_int64_int64', index=44,
      number=57, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_uint32_uint32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_uint32_uint32', index=45,
      number=58, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_uint64_uint64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_uint64_uint64', index=46,
      number=59, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sint32_sint32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_sint32_sint32', index=47,
      number=60, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sint64_sint64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_sint64_sint64', index=48,
      number=61, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_fixed32_fixed32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_fixed32_fixed32', index=49,
      number=62, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_fixed64_fixed64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_fixed64_fixed64', index=50,
      number=63, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sfixed32_sfixed32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed32_sfixed32', index=51,
      number=64, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_sfixed64_sfixed64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed64_sfixed64', index=52,
      number=65, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_float', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_float', index=53,
      number=66, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_int32_double', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_double', index=54,
      number=67, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_bool_bool', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_bool_bool', index=55,
      number=68, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_string', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_string_string', index=56,
      number=69, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_bytes', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_string_bytes', index=57,
      number=70, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_nested_message', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_message', index=58,
      number=71, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_foreign_message', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_message', index=59,
      number=72, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_nested_enum', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_enum', index=60,
      number=73, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='map_string_foreign_enum', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_enum', index=61,
      number=74, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_uint32', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.oneof_uint32', index=62,
      number=111, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_nested_message', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.oneof_nested_message', index=63,
      number=112, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_string', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.oneof_string', index=64,
      number=113, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_bytes', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.oneof_bytes', index=65,
      number=114, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_bool', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.oneof_bool', index=66,
      number=115, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_uint64', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.oneof_uint64', index=67,
      number=116, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_float', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.oneof_float', index=68,
      number=117, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_double', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.oneof_double', index=69,
      number=118, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_enum', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.oneof_enum', index=70,
      number=119, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='data', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.data', index=71,
      number=201, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='fieldname1', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.fieldname1', index=72,
      number=401, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field_name2', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.field_name2', index=73,
      number=402, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='_field_name3', full_name='protobuf_test_messages.proto2.TestAllTypesProto2._field_name3', index=74,
      number=403, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field__name4_', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.field__name4_', index=75,
      number=404, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field0name5', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.field0name5', index=76,
      number=405, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field_0_name6', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.field_0_name6', index=77,
      number=406, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='fieldName7', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.fieldName7', index=78,
      number=407, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='FieldName8', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.FieldName8', index=79,
      number=408, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field_Name9', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.field_Name9', index=80,
      number=409, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='Field_Name10', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.Field_Name10', index=81,
      number=410, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='FIELD_NAME11', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.FIELD_NAME11', index=82,
      number=411, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='FIELD_name12', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.FIELD_name12', index=83,
      number=412, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='__field_name13', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.__field_name13', index=84,
      number=413, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='__Field_name14', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.__Field_name14', index=85,
      number=414, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field__name15', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.field__name15', index=86,
      number=415, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field__Name16', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.field__Name16', index=87,
      number=416, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field_name17__', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.field_name17__', index=88,
      number=417, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='Field_name18__', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.Field_name18__', index=89,
      number=418, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTALLTYPESPROTO2_NESTEDMESSAGE, _TESTALLTYPESPROTO2_MAPINT32INT32ENTRY, _TESTALLTYPESPROTO2_MAPINT64INT64ENTRY, _TESTALLTYPESPROTO2_MAPUINT32UINT32ENTRY, _TESTALLTYPESPROTO2_MAPUINT64UINT64ENTRY, _TESTALLTYPESPROTO2_MAPSINT32SINT32ENTRY, _TESTALLTYPESPROTO2_MAPSINT64SINT64ENTRY, _TESTALLTYPESPROTO2_MAPFIXED32FIXED32ENTRY, _TESTALLTYPESPROTO2_MAPFIXED64FIXED64ENTRY, _TESTALLTYPESPROTO2_MAPSFIXED32SFIXED32ENTRY, _TESTALLTYPESPROTO2_MAPSFIXED64SFIXED64ENTRY, _TESTALLTYPESPROTO2_MAPINT32FLOATENTRY, _TESTALLTYPESPROTO2_MAPINT32DOUBLEENTRY, _TESTALLTYPESPROTO2_MAPBOOLBOOLENTRY, _TESTALLTYPESPROTO2_MAPSTRINGSTRINGENTRY, _TESTALLTYPESPROTO2_MAPSTRINGBYTESENTRY, _TESTALLTYPESPROTO2_MAPSTRINGNESTEDMESSAGEENTRY, _TESTALLTYPESPROTO2_MAPSTRINGFOREIGNMESSAGEENTRY, _TESTALLTYPESPROTO2_MAPSTRINGNESTEDENUMENTRY, _TESTALLTYPESPROTO2_MAPSTRINGFOREIGNENUMENTRY, _TESTALLTYPESPROTO2_DATA, _TESTALLTYPESPROTO2_MESSAGESETCORRECT, _TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION1, _TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION2, ],
  enum_types=[
    _TESTALLTYPESPROTO2_NESTEDENUM,
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(120, 201), ],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='oneof_field', full_name='protobuf_test_messages.proto2.TestAllTypesProto2.oneof_field',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=78,
  serialized_end=6572,
)


_FOREIGNMESSAGEPROTO2 = _descriptor.Descriptor(
  name='ForeignMessageProto2',
  full_name='protobuf_test_messages.proto2.ForeignMessageProto2',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='c', full_name='protobuf_test_messages.proto2.ForeignMessageProto2.c', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6574,
  serialized_end=6607,
)

_TESTALLTYPESPROTO2_NESTEDMESSAGE.fields_by_name['corecursive'].message_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_NESTEDMESSAGE.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPINT32INT32ENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPINT64INT64ENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPUINT32UINT32ENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPUINT64UINT64ENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPSINT32SINT32ENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPSINT64SINT64ENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPFIXED32FIXED32ENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPFIXED64FIXED64ENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPSFIXED32SFIXED32ENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPSFIXED64SFIXED64ENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPINT32FLOATENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPINT32DOUBLEENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPBOOLBOOLENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPSTRINGSTRINGENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPSTRINGBYTESENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPSTRINGNESTEDMESSAGEENTRY.fields_by_name['value'].message_type = _TESTALLTYPESPROTO2_NESTEDMESSAGE
_TESTALLTYPESPROTO2_MAPSTRINGNESTEDMESSAGEENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNMESSAGEENTRY.fields_by_name['value'].message_type = _FOREIGNMESSAGEPROTO2
_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNMESSAGEENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPSTRINGNESTEDENUMENTRY.fields_by_name['value'].enum_type = _TESTALLTYPESPROTO2_NESTEDENUM
_TESTALLTYPESPROTO2_MAPSTRINGNESTEDENUMENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNENUMENTRY.fields_by_name['value'].enum_type = _FOREIGNENUMPROTO2
_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNENUMENTRY.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_DATA.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MESSAGESETCORRECT.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION1.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION2.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2.fields_by_name['optional_nested_message'].message_type = _TESTALLTYPESPROTO2_NESTEDMESSAGE
_TESTALLTYPESPROTO2.fields_by_name['optional_foreign_message'].message_type = _FOREIGNMESSAGEPROTO2
_TESTALLTYPESPROTO2.fields_by_name['optional_nested_enum'].enum_type = _TESTALLTYPESPROTO2_NESTEDENUM
_TESTALLTYPESPROTO2.fields_by_name['optional_foreign_enum'].enum_type = _FOREIGNENUMPROTO2
_TESTALLTYPESPROTO2.fields_by_name['recursive_message'].message_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2.fields_by_name['repeated_nested_message'].message_type = _TESTALLTYPESPROTO2_NESTEDMESSAGE
_TESTALLTYPESPROTO2.fields_by_name['repeated_foreign_message'].message_type = _FOREIGNMESSAGEPROTO2
_TESTALLTYPESPROTO2.fields_by_name['repeated_nested_enum'].enum_type = _TESTALLTYPESPROTO2_NESTEDENUM
_TESTALLTYPESPROTO2.fields_by_name['repeated_foreign_enum'].enum_type = _FOREIGNENUMPROTO2
_TESTALLTYPESPROTO2.fields_by_name['map_int32_int32'].message_type = _TESTALLTYPESPROTO2_MAPINT32INT32ENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_int64_int64'].message_type = _TESTALLTYPESPROTO2_MAPINT64INT64ENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_uint32_uint32'].message_type = _TESTALLTYPESPROTO2_MAPUINT32UINT32ENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_uint64_uint64'].message_type = _TESTALLTYPESPROTO2_MAPUINT64UINT64ENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_sint32_sint32'].message_type = _TESTALLTYPESPROTO2_MAPSINT32SINT32ENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_sint64_sint64'].message_type = _TESTALLTYPESPROTO2_MAPSINT64SINT64ENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_fixed32_fixed32'].message_type = _TESTALLTYPESPROTO2_MAPFIXED32FIXED32ENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_fixed64_fixed64'].message_type = _TESTALLTYPESPROTO2_MAPFIXED64FIXED64ENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_sfixed32_sfixed32'].message_type = _TESTALLTYPESPROTO2_MAPSFIXED32SFIXED32ENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_sfixed64_sfixed64'].message_type = _TESTALLTYPESPROTO2_MAPSFIXED64SFIXED64ENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_int32_float'].message_type = _TESTALLTYPESPROTO2_MAPINT32FLOATENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_int32_double'].message_type = _TESTALLTYPESPROTO2_MAPINT32DOUBLEENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_bool_bool'].message_type = _TESTALLTYPESPROTO2_MAPBOOLBOOLENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_string_string'].message_type = _TESTALLTYPESPROTO2_MAPSTRINGSTRINGENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_string_bytes'].message_type = _TESTALLTYPESPROTO2_MAPSTRINGBYTESENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_string_nested_message'].message_type = _TESTALLTYPESPROTO2_MAPSTRINGNESTEDMESSAGEENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_string_foreign_message'].message_type = _TESTALLTYPESPROTO2_MAPSTRINGFOREIGNMESSAGEENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_string_nested_enum'].message_type = _TESTALLTYPESPROTO2_MAPSTRINGNESTEDENUMENTRY
_TESTALLTYPESPROTO2.fields_by_name['map_string_foreign_enum'].message_type = _TESTALLTYPESPROTO2_MAPSTRINGFOREIGNENUMENTRY
_TESTALLTYPESPROTO2.fields_by_name['oneof_nested_message'].message_type = _TESTALLTYPESPROTO2_NESTEDMESSAGE
_TESTALLTYPESPROTO2.fields_by_name['oneof_enum'].enum_type = _TESTALLTYPESPROTO2_NESTEDENUM
_TESTALLTYPESPROTO2.fields_by_name['data'].message_type = _TESTALLTYPESPROTO2_DATA
_TESTALLTYPESPROTO2_NESTEDENUM.containing_type = _TESTALLTYPESPROTO2
_TESTALLTYPESPROTO2.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO2.fields_by_name['oneof_uint32'])
_TESTALLTYPESPROTO2.fields_by_name['oneof_uint32'].containing_oneof = _TESTALLTYPESPROTO2.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO2.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO2.fields_by_name['oneof_nested_message'])
_TESTALLTYPESPROTO2.fields_by_name['oneof_nested_message'].containing_oneof = _TESTALLTYPESPROTO2.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO2.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO2.fields_by_name['oneof_string'])
_TESTALLTYPESPROTO2.fields_by_name['oneof_string'].containing_oneof = _TESTALLTYPESPROTO2.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO2.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO2.fields_by_name['oneof_bytes'])
_TESTALLTYPESPROTO2.fields_by_name['oneof_bytes'].containing_oneof = _TESTALLTYPESPROTO2.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO2.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO2.fields_by_name['oneof_bool'])
_TESTALLTYPESPROTO2.fields_by_name['oneof_bool'].containing_oneof = _TESTALLTYPESPROTO2.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO2.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO2.fields_by_name['oneof_uint64'])
_TESTALLTYPESPROTO2.fields_by_name['oneof_uint64'].containing_oneof = _TESTALLTYPESPROTO2.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO2.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO2.fields_by_name['oneof_float'])
_TESTALLTYPESPROTO2.fields_by_name['oneof_float'].containing_oneof = _TESTALLTYPESPROTO2.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO2.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO2.fields_by_name['oneof_double'])
_TESTALLTYPESPROTO2.fields_by_name['oneof_double'].containing_oneof = _TESTALLTYPESPROTO2.oneofs_by_name['oneof_field']
_TESTALLTYPESPROTO2.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPESPROTO2.fields_by_name['oneof_enum'])
_TESTALLTYPESPROTO2.fields_by_name['oneof_enum'].containing_oneof = _TESTALLTYPESPROTO2.oneofs_by_name['oneof_field']
DESCRIPTOR.message_types_by_name['TestAllTypesProto2'] = _TESTALLTYPESPROTO2
DESCRIPTOR.message_types_by_name['ForeignMessageProto2'] = _FOREIGNMESSAGEPROTO2
DESCRIPTOR.enum_types_by_name['ForeignEnumProto2'] = _FOREIGNENUMPROTO2
DESCRIPTOR.extensions_by_name['extension_int32'] = extension_int32
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestAllTypesProto2 = _reflection.GeneratedProtocolMessageType('TestAllTypesProto2', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_NESTEDMESSAGE,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage)
    ))
  ,

  MapInt32Int32Entry = _reflection.GeneratedProtocolMessageType('MapInt32Int32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPINT32INT32ENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry)
    ))
  ,

  MapInt64Int64Entry = _reflection.GeneratedProtocolMessageType('MapInt64Int64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPINT64INT64ENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry)
    ))
  ,

  MapUint32Uint32Entry = _reflection.GeneratedProtocolMessageType('MapUint32Uint32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPUINT32UINT32ENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry)
    ))
  ,

  MapUint64Uint64Entry = _reflection.GeneratedProtocolMessageType('MapUint64Uint64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPUINT64UINT64ENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry)
    ))
  ,

  MapSint32Sint32Entry = _reflection.GeneratedProtocolMessageType('MapSint32Sint32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPSINT32SINT32ENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry)
    ))
  ,

  MapSint64Sint64Entry = _reflection.GeneratedProtocolMessageType('MapSint64Sint64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPSINT64SINT64ENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry)
    ))
  ,

  MapFixed32Fixed32Entry = _reflection.GeneratedProtocolMessageType('MapFixed32Fixed32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPFIXED32FIXED32ENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry)
    ))
  ,

  MapFixed64Fixed64Entry = _reflection.GeneratedProtocolMessageType('MapFixed64Fixed64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPFIXED64FIXED64ENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry)
    ))
  ,

  MapSfixed32Sfixed32Entry = _reflection.GeneratedProtocolMessageType('MapSfixed32Sfixed32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPSFIXED32SFIXED32ENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry)
    ))
  ,

  MapSfixed64Sfixed64Entry = _reflection.GeneratedProtocolMessageType('MapSfixed64Sfixed64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPSFIXED64SFIXED64ENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry)
    ))
  ,

  MapInt32FloatEntry = _reflection.GeneratedProtocolMessageType('MapInt32FloatEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPINT32FLOATENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry)
    ))
  ,

  MapInt32DoubleEntry = _reflection.GeneratedProtocolMessageType('MapInt32DoubleEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPINT32DOUBLEENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry)
    ))
  ,

  MapBoolBoolEntry = _reflection.GeneratedProtocolMessageType('MapBoolBoolEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPBOOLBOOLENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry)
    ))
  ,

  MapStringStringEntry = _reflection.GeneratedProtocolMessageType('MapStringStringEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPSTRINGSTRINGENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry)
    ))
  ,

  MapStringBytesEntry = _reflection.GeneratedProtocolMessageType('MapStringBytesEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPSTRINGBYTESENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry)
    ))
  ,

  MapStringNestedMessageEntry = _reflection.GeneratedProtocolMessageType('MapStringNestedMessageEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPSTRINGNESTEDMESSAGEENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry)
    ))
  ,

  MapStringForeignMessageEntry = _reflection.GeneratedProtocolMessageType('MapStringForeignMessageEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPSTRINGFOREIGNMESSAGEENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry)
    ))
  ,

  MapStringNestedEnumEntry = _reflection.GeneratedProtocolMessageType('MapStringNestedEnumEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPSTRINGNESTEDENUMENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry)
    ))
  ,

  MapStringForeignEnumEntry = _reflection.GeneratedProtocolMessageType('MapStringForeignEnumEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MAPSTRINGFOREIGNENUMENTRY,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry)
    ))
  ,

  Data = _reflection.GeneratedProtocolMessageType('Data', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_DATA,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.Data)
    ))
  ,

  MessageSetCorrect = _reflection.GeneratedProtocolMessageType('MessageSetCorrect', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MESSAGESETCORRECT,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect)
    ))
  ,

  MessageSetCorrectExtension1 = _reflection.GeneratedProtocolMessageType('MessageSetCorrectExtension1', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION1,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1)
    ))
  ,

  MessageSetCorrectExtension2 = _reflection.GeneratedProtocolMessageType('MessageSetCorrectExtension2', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION2,
    __module__ = 'google.protobuf.test_messages_proto2_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2)
    ))
  ,
  DESCRIPTOR = _TESTALLTYPESPROTO2,
  __module__ = 'google.protobuf.test_messages_proto2_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.TestAllTypesProto2)
  ))
_sym_db.RegisterMessage(TestAllTypesProto2)
_sym_db.RegisterMessage(TestAllTypesProto2.NestedMessage)
_sym_db.RegisterMessage(TestAllTypesProto2.MapInt32Int32Entry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapInt64Int64Entry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapUint32Uint32Entry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapUint64Uint64Entry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapSint32Sint32Entry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapSint64Sint64Entry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapFixed32Fixed32Entry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapFixed64Fixed64Entry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapSfixed32Sfixed32Entry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapSfixed64Sfixed64Entry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapInt32FloatEntry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapInt32DoubleEntry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapBoolBoolEntry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapStringStringEntry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapStringBytesEntry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapStringNestedMessageEntry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapStringForeignMessageEntry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapStringNestedEnumEntry)
_sym_db.RegisterMessage(TestAllTypesProto2.MapStringForeignEnumEntry)
_sym_db.RegisterMessage(TestAllTypesProto2.Data)
_sym_db.RegisterMessage(TestAllTypesProto2.MessageSetCorrect)
_sym_db.RegisterMessage(TestAllTypesProto2.MessageSetCorrectExtension1)
_sym_db.RegisterMessage(TestAllTypesProto2.MessageSetCorrectExtension2)

ForeignMessageProto2 = _reflection.GeneratedProtocolMessageType('ForeignMessageProto2', (_message.Message,), dict(
  DESCRIPTOR = _FOREIGNMESSAGEPROTO2,
  __module__ = 'google.protobuf.test_messages_proto2_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_test_messages.proto2.ForeignMessageProto2)
  ))
_sym_db.RegisterMessage(ForeignMessageProto2)

TestAllTypesProto2.RegisterExtension(extension_int32)
_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION1.extensions_by_name['message_set_extension'].message_type = _TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION1
TestAllTypesProto2.MessageSetCorrect.RegisterExtension(_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION1.extensions_by_name['message_set_extension'])
_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION2.extensions_by_name['message_set_extension'].message_type = _TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION2
TestAllTypesProto2.MessageSetCorrect.RegisterExtension(_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION2.extensions_by_name['message_set_extension'])

DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n(com.google.protobuf_test_messages.proto2H\001\370\001\001'))
_TESTALLTYPESPROTO2_MAPINT32INT32ENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPINT32INT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPINT64INT64ENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPINT64INT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPUINT32UINT32ENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPUINT32UINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPUINT64UINT64ENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPUINT64UINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPSINT32SINT32ENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPSINT32SINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPSINT64SINT64ENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPSINT64SINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPFIXED32FIXED32ENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPFIXED32FIXED32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPFIXED64FIXED64ENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPFIXED64FIXED64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPSFIXED32SFIXED32ENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPSFIXED32SFIXED32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPSFIXED64SFIXED64ENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPSFIXED64SFIXED64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPINT32FLOATENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPINT32FLOATENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPINT32DOUBLEENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPINT32DOUBLEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPBOOLBOOLENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPBOOLBOOLENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPSTRINGSTRINGENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPSTRINGSTRINGENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPSTRINGBYTESENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPSTRINGBYTESENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPSTRINGNESTEDMESSAGEENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPSTRINGNESTEDMESSAGEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNMESSAGEENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNMESSAGEENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPSTRINGNESTEDENUMENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPSTRINGNESTEDENUMENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNENUMENTRY.has_options = True
_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNENUMENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTALLTYPESPROTO2_MESSAGESETCORRECT.has_options = True
_TESTALLTYPESPROTO2_MESSAGESETCORRECT._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\010\001'))
_TESTALLTYPESPROTO2.fields_by_name['optional_string_piece'].has_options = True
_TESTALLTYPESPROTO2.fields_by_name['optional_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPESPROTO2.fields_by_name['optional_cord'].has_options = True
_TESTALLTYPESPROTO2.fields_by_name['optional_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTALLTYPESPROTO2.fields_by_name['repeated_string_piece'].has_options = True
_TESTALLTYPESPROTO2.fields_by_name['repeated_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPESPROTO2.fields_by_name['repeated_cord'].has_options = True
_TESTALLTYPESPROTO2.fields_by_name['repeated_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
# @@protoc_insertion_point(module_scope)
PK�\�&'�--protobuf/wrappers_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/wrappers.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/wrappers.proto',
  package='google.protobuf',
  syntax='proto3',
  serialized_pb=_b('\n\x1egoogle/protobuf/wrappers.proto\x12\x0fgoogle.protobuf\"\x1c\n\x0b\x44oubleValue\x12\r\n\x05value\x18\x01 \x01(\x01\"\x1b\n\nFloatValue\x12\r\n\x05value\x18\x01 \x01(\x02\"\x1b\n\nInt64Value\x12\r\n\x05value\x18\x01 \x01(\x03\"\x1c\n\x0bUInt64Value\x12\r\n\x05value\x18\x01 \x01(\x04\"\x1b\n\nInt32Value\x12\r\n\x05value\x18\x01 \x01(\x05\"\x1c\n\x0bUInt32Value\x12\r\n\x05value\x18\x01 \x01(\r\"\x1a\n\tBoolValue\x12\r\n\x05value\x18\x01 \x01(\x08\"\x1c\n\x0bStringValue\x12\r\n\x05value\x18\x01 \x01(\t\"\x1b\n\nBytesValue\x12\r\n\x05value\x18\x01 \x01(\x0c\x42|\n\x13\x63om.google.protobufB\rWrappersProtoP\x01Z*github.com/golang/protobuf/ptypes/wrappers\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3')
)




_DOUBLEVALUE = _descriptor.Descriptor(
  name='DoubleValue',
  full_name='google.protobuf.DoubleValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.DoubleValue.value', index=0,
      number=1, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=51,
  serialized_end=79,
)


_FLOATVALUE = _descriptor.Descriptor(
  name='FloatValue',
  full_name='google.protobuf.FloatValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.FloatValue.value', index=0,
      number=1, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=81,
  serialized_end=108,
)


_INT64VALUE = _descriptor.Descriptor(
  name='Int64Value',
  full_name='google.protobuf.Int64Value',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.Int64Value.value', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=110,
  serialized_end=137,
)


_UINT64VALUE = _descriptor.Descriptor(
  name='UInt64Value',
  full_name='google.protobuf.UInt64Value',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.UInt64Value.value', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=139,
  serialized_end=167,
)


_INT32VALUE = _descriptor.Descriptor(
  name='Int32Value',
  full_name='google.protobuf.Int32Value',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.Int32Value.value', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=169,
  serialized_end=196,
)


_UINT32VALUE = _descriptor.Descriptor(
  name='UInt32Value',
  full_name='google.protobuf.UInt32Value',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.UInt32Value.value', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=198,
  serialized_end=226,
)


_BOOLVALUE = _descriptor.Descriptor(
  name='BoolValue',
  full_name='google.protobuf.BoolValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.BoolValue.value', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=228,
  serialized_end=254,
)


_STRINGVALUE = _descriptor.Descriptor(
  name='StringValue',
  full_name='google.protobuf.StringValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.StringValue.value', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=256,
  serialized_end=284,
)


_BYTESVALUE = _descriptor.Descriptor(
  name='BytesValue',
  full_name='google.protobuf.BytesValue',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='google.protobuf.BytesValue.value', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=286,
  serialized_end=313,
)

DESCRIPTOR.message_types_by_name['DoubleValue'] = _DOUBLEVALUE
DESCRIPTOR.message_types_by_name['FloatValue'] = _FLOATVALUE
DESCRIPTOR.message_types_by_name['Int64Value'] = _INT64VALUE
DESCRIPTOR.message_types_by_name['UInt64Value'] = _UINT64VALUE
DESCRIPTOR.message_types_by_name['Int32Value'] = _INT32VALUE
DESCRIPTOR.message_types_by_name['UInt32Value'] = _UINT32VALUE
DESCRIPTOR.message_types_by_name['BoolValue'] = _BOOLVALUE
DESCRIPTOR.message_types_by_name['StringValue'] = _STRINGVALUE
DESCRIPTOR.message_types_by_name['BytesValue'] = _BYTESVALUE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

DoubleValue = _reflection.GeneratedProtocolMessageType('DoubleValue', (_message.Message,), dict(
  DESCRIPTOR = _DOUBLEVALUE,
  __module__ = 'google.protobuf.wrappers_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.DoubleValue)
  ))
_sym_db.RegisterMessage(DoubleValue)

FloatValue = _reflection.GeneratedProtocolMessageType('FloatValue', (_message.Message,), dict(
  DESCRIPTOR = _FLOATVALUE,
  __module__ = 'google.protobuf.wrappers_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.FloatValue)
  ))
_sym_db.RegisterMessage(FloatValue)

Int64Value = _reflection.GeneratedProtocolMessageType('Int64Value', (_message.Message,), dict(
  DESCRIPTOR = _INT64VALUE,
  __module__ = 'google.protobuf.wrappers_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Int64Value)
  ))
_sym_db.RegisterMessage(Int64Value)

UInt64Value = _reflection.GeneratedProtocolMessageType('UInt64Value', (_message.Message,), dict(
  DESCRIPTOR = _UINT64VALUE,
  __module__ = 'google.protobuf.wrappers_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.UInt64Value)
  ))
_sym_db.RegisterMessage(UInt64Value)

Int32Value = _reflection.GeneratedProtocolMessageType('Int32Value', (_message.Message,), dict(
  DESCRIPTOR = _INT32VALUE,
  __module__ = 'google.protobuf.wrappers_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Int32Value)
  ))
_sym_db.RegisterMessage(Int32Value)

UInt32Value = _reflection.GeneratedProtocolMessageType('UInt32Value', (_message.Message,), dict(
  DESCRIPTOR = _UINT32VALUE,
  __module__ = 'google.protobuf.wrappers_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.UInt32Value)
  ))
_sym_db.RegisterMessage(UInt32Value)

BoolValue = _reflection.GeneratedProtocolMessageType('BoolValue', (_message.Message,), dict(
  DESCRIPTOR = _BOOLVALUE,
  __module__ = 'google.protobuf.wrappers_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.BoolValue)
  ))
_sym_db.RegisterMessage(BoolValue)

StringValue = _reflection.GeneratedProtocolMessageType('StringValue', (_message.Message,), dict(
  DESCRIPTOR = _STRINGVALUE,
  __module__ = 'google.protobuf.wrappers_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.StringValue)
  ))
_sym_db.RegisterMessage(StringValue)

BytesValue = _reflection.GeneratedProtocolMessageType('BytesValue', (_message.Message,), dict(
  DESCRIPTOR = _BYTESVALUE,
  __module__ = 'google.protobuf.wrappers_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.BytesValue)
  ))
_sym_db.RegisterMessage(BytesValue)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.google.protobufB\rWrappersProtoP\001Z*github.com/golang/protobuf/ptypes/wrappers\370\001\001\242\002\003GPB\252\002\036Google.Protobuf.WellKnownTypes'))
# @@protoc_insertion_point(module_scope)
PK�\+�K�||protobuf/unittest_pb2.pycnu�[����
���hcw@sZ0ddlZejddko%d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZddlmZdd
lmZe
j�ZddlmZy
ejZWn ek
r�ejjjZnXejddddddded�dejg�Zejdddddededejddddd d!d"ed#e�ejdd$dd%d d&d"ed#e�ejdd'dd(d d)d"ed#e�gd*ed"ed+d,d-d.�	Z ej!e �ej"e �Z#ejdd/dd0dededejdd1ddd d%d"ed#e�ejdd2dd%d d(d"ed#e�ejdd3dd(d dd"ed#e�ejdd4ddd d%d"ed#e�ejdd5dd!d d(d"ed#e�gd*ed"ej$ej%�ed6��d+d7d-d8�	Z&ej!e&�ej"e&�Z'ejdd9dd:dededejdd;ddd d<d"ed#e�ejdd=dd%d d>d"ed#e�ejdd?dd(d d@d"ed#e�ejddAddd dBd"ed#e�ejddCdd!d dDd"ed#e�ejddEdd&d dd"ed#e�ejddFdd)d d(d"ed#e�gd*ed"ed+dGd-dH�	Z(ej!e(�ej"e(�Z)d!Z*d&Z+d)Z,d%Z-d(Z.dZ/d%Z0d(Z1d<Z2d>Z3d@Z4dBZ5dDZ6dZ7d(Z8d%Z9ej:ddIddJddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe<dRed"ede�Z=d(Z>ej:ddSddTdd%d d(d#ddKd(dLd%dMe;dNddOedPed*edQe<dRed"ede�Z?dZ@ej:ddUddVdd(d dd#dWdKddLd%dMe;dNddOedPed*edQe<dRed"ede�ZAd!ZBej:ddXddYddd d!d#d!dKd!dLd%dMe;dNddOedPed*edQe<dRed"ede�ZCd&ZDej:ddZdd[dd!d d&d#d\dKd%dLd%dMe;dNddOedPed*edQe<dRed"ede�ZEd)ZFej:dd]dd^dd&d d)d#d_dKd(dLd%dMe;dNddOedPed*edQe<dRed"ede�ZGd`ZHej:ddaddbdd)d d`d#d`dKddLd%dMe;dNddOedPed*edQe<dRed"ede�ZIdcZJej:dddddedd`d dcd#d)dKd!dLd%dMe;dNddOedPed*edQe<dRed"ede�ZKdfZLej:ddgddhddcd dfd#didKd%dLd%dMe;dNddOedPed*edQe<dRed"ede�ZMdjZNej:ddkddlddfd djd#dmdKd(dLd%dMe;dNddOedPed*edQe<dRed"ede�ZOdnZPej:ddoddpddjd dnd#d(dKd)dLd%dMe;dNeQd�dOedPed*edQe<dRed"ede�ZRdqZSej:ddrddsddnd dqd#d%dKd&dLd%dMe;dNeQd�dOedPed*edQe<dRed"ede�ZTdWZUej:ddtdduddqd dWd#dcdKd`dLd%dMe;dNe;dOedPed*edQe<dRed"ede�ZVdvZWej:ddwddxddWd dvd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ede�ZYdiZZej:dd{dd|ddvd did#dqdKdfdLd%dMe;dNedy�dOedPed*edQe<dRed"ede�Z[dmZ\ej:dd}dd~ddid dmd#djdKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Z]d_Z^ej:dddd�ddmd d_d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Z_d�Z`ej:dd�dd�dd\d d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Zad�Zbej:dd�dd�dd_d d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Zcd�Zdej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd%dOedPed*edQe<dRed"ede�Zed�Zfej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd!dOedPed*edQe<dRed"ede�Zgd�Zhej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd`dOedPed*edQe<dRed"ede�Zid�Zjej:dd�dd�dd�d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ej$ejk�ed���de�Zld�Zmej:dd�dd�dd�d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ej$ejk�ed���de�Znd�Zoej:dd�dd�dd�d d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Zpd�Zqej:dd�dd�dd�d d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ej$ejk�ed���de�Zrd�Zsej:dd�dd�dd�d d�d#d&dKd%dLddMe;dNgdOedPed*edQe<dRed"ede�Ztd�Zuej:dd�dd�dd�d d�d#ddKd(dLddMe;dNgdOedPed*edQe<dRed"ede�Zvd�Zwej:dd�dd�dd�d d�d#dWdKddLddMe;dNgdOedPed*edQe<dRed"ede�Zxd�Zyej:dd�dd�dd�d d�d#d!dKd!dLddMe;dNgdOedPed*edQe<dRed"ede�Zzd�Z{ej:dd�dd�dd�d d�d#d\dKd%dLddMe;dNgdOedPed*edQe<dRed"ede�Z|d�Z}ej:dd�dd�dd�d d�d#d_dKd(dLddMe;dNgdOedPed*edQe<dRed"ede�Z~d�Zej:dd�dd�dd�d d�d#d`dKddLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#d)dKd!dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#didKd%dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dmdKd(dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#d(dKd)dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#d%dKd&dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dcdKd`dLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dqdKdfdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#djdKdjdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed���de�Z�d�Z�ej:dd�dd�dd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed���de�Z�d�Z�ej:dd�dd�dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed���de�Z�d�Z�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#ddKd(dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#dWdKddLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#d!dKd!dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�dd�dd�d d�d#d\dKd%dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d�Z�ej:dd�ddddd d�d#d_dKd(dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�dZ�ej:dddddd�d dd#d`dKddLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�dZ�ej:ddddddd dd#d)dKd!dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d	Z�ej:dd
ddddd d	d#didKd%dLd%dMe<dNd�dOedPed*edQe<dRed"ede�Z�d
Z�ej:ddddddd d
d#dmdKd(dLd%dMe<dNddOedPed*edQe<dRed"ede�Z�dZ�ej:dddddd�d dd#d(dKd)dLd%dMe<dNeQd�dOedPed*edQe<dRed"ede�Z�dZ�ej:dddddd�d dd#d%dKd&dLd%dMe<dNeQd�dOedPed*edQe<dRed"ede�Z�dZ�ej:dddddd�d dd#dcdKd`dLd%dMe<dNe<dOedPed*edQe<dRed"ede�Z�dZ�ej:dddddd�d dd#dfdKdfdLd%dMe<dNed �jXdz�dOedPed*edQe<dRed"ede�Z�d!Z�ej:dd"dd#dd�d d!d#dqdKdfdLd%dMe<dNed$�dOedPed*edQe<dRed"ede�Z�d%Z�ej:dd&dd'dd�d d%d#dvdKdcdLd%dMe<dNd(dOedPed*edQe<dRed"ede�Z�d(Z�ej:dd)dd*ddd d(d#dvdKdcdLd%dMe<dNd&dOedPed*edQe<dRed"ede�Z�d+Z�ej:dd,dd-ddd d+d#dvdKdcdLd%dMe<dNdcdOedPed*edQe<dRed"ede�Z�d.Z�ej:dd/dd0dd	d d.d#dfdKdfdLd%dMe<dNed1�jXdz�dOedPed*edQe<dRed"ej$ejk�ed���de�Z�d2Z�ej:dd3dd4dd
d d2d#dfdKdfdLd%dMe<dNed5�jXdz�dOedPed*edQe<dRed"ej$ejk�ed���de�Z�d6Z�ej:dd7dd8ddd d6d#dWdKddLd%dMe;dNddOedPed*edQe<dRed"ede�Z�d9Z�ej:dd:dd;ddd d9d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Z�d<Z�ej:dd=dd>ddd d<d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ede�Z�d?Z�ej:dd@ddAddd d?d#dqdKdfdLd%dMe;dNedy�dOedPed*edQe<dRed"ede�Z�d�Z�ej:ddBddCdd!d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ede�Z�d&Z�ej:ddDddEddFd d&d#d&dKd%dLd%dMe;dNddOedPed*edQe<dRed"ede�Z�dGZ�ej:ddHddIddJd dGd#d&dKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dKZ�ej:ddLddMddNd dKd#ddKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dOZ�ej:ddPddQddRd dOd#dWdKddLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dSZ�ej:ddTddUddVd dSd#d!dKd!dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dWZ�ej:ddXddYdd%d dWd#d\dKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dZZ�ej:dd[dd\dd(d dZd#d_dKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�d]Z�ej:dd^dd_dd+d d]d#d`dKddLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�d`Z�ej:ddaddbdd.d d`d#d)dKd!dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dcZ�ej:dddddedd2d dcd#didKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dfZ�ej:ddgddhddid dfd#dmdKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�djZ�ej:ddkddlddmd djd#d(dKd)dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dnZ�ej:ddoddpddqd dnd#d%dKd&dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�drZ�ej:ddsddtddud drd#dcdKd`dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dvZ�ej:ddwddxddGd dvd#dvdKdcdLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed6��de�Z�dGZ�ej:ddyddzddKd dGd#d&dKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z�dKZ�ej:dd|dd}ddOd dKd#ddKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z�dOZ�ej:dd~ddddSd dOd#dWdKddLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z�dSZ�ej:dd�dd�ddWd dSd#d!dKd!dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z�dWZ�ej:dd�dd�ddZd dWd#d\dKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z�dZZ�ej:dd�dd�dd]d dZd#d_dKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Zd]Zej:dd�dd�dd`d d]d#d`dKddLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Zd`Zej:dd�dd�ddcd d`d#d)dKd!dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�ZdcZej:dd�dd�ddfd dcd#didKd%dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�ZdfZej:dd�dd�ddjd dfd#dmdKd(dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�ZdjZ	ej:dd�dd�ddnd djd#d(dKd)dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Z
dnZej:dd�dd�ddrd dnd#d%dKd&dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�ZdrZ
ej:dd�dd�ddvd drd#dcdKd`dLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�ZdvZej:dd�dd�dd�d dvd#dvdKdcdLddMe;dNgdOedPed*edQe<dRed"ej$ejk�ed{��de�Zd�Zej:dd�dd�dd�d d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�Zejdd�dd�dededejdd�ddd d%d"ed#e�ejdd�dd%d d(d"ed#e�ejdd3dd(d dd"ed#e�ejdd�ddd dd"ed#e�gd*ed"ed+d�d-d��	Zej!e�ejdd�dd�dededejdd�ddd d%d"ed#e�ejdd�dd%d d(d"ed#e�ejdd3dd(d dd"ed#e�gd*ed"ed+d�d-d��	Zej!e�ejdd�dd�dededejdd�ddd d�d"ed#e�ejdd�dd%d d�d"ed#e�ejdd�dd(d d�d"ed#e�gd*ed"ed+d�d-d��	Zej!e�ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Zejdd�dd�deded*ed�ej:dd�dd�ddd d\d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Zejdd�dd�deded*ed�ej:dd�dd�ddd d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Zejdd�dd�deded*ed�ej:dd�dd�ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#ddKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#dWdKddLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddd d!d#d!dKd!dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd!d d&d#d\dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd&d d)d#d_dKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd)d d`d#d`dKddLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd`d dcd#d)dKd!dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddcd dfd#didKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddfd djd#dmdKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddjd dnd#d(dKd)dLd%dMe;dNeQd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddnd dqd#d%dKd&dLd%dMe;dNeQd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddqd dWd#dcdKd`dLd%dMe;dNe;dOedPed*edQe;dRed"ede�ej:dd�dd�ddWd dvd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd�dd�ddvd did#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�ej:dd�dd�ddid dmd#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�ddmd d_d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd\d d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd_d d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd%dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd!dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dvdKdcdLd%dMe;dNd`dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd�dd�dd�d d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd�dd�dd�d d�d#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#ddKd(dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dWdKddLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#d!dKd!dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#d\dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#d_dKd(dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddd	dd�d d�d#d`dKddLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd
dddd�d d�d#d)dKd!dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddd
dd�d d�d#didKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dmdKd(dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#d(dKd)dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#d%dKd&dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dcdKd`dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dqdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#djdKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd dd!dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd"dd#dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd$dd%dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd&dd'dd�d d�d#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd(dd)dd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd*dd+dd�d d�d#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd,dd-dd�d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd.dd/dd�d d�d#d&dKd%dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd0dd1dd�d d�d#ddKd(dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd2dd3dd�d d�d#dWdKddLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd4dd5dd�d d�d#d!dKd!dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd6dd7dd�d d�d#d\dKd%dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd8dd9ddd d�d#d_dKd(dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd:dd;dd�d dd#d`dKddLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd<dd=ddd dd#d)dKd!dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd>dd?ddd d	d#didKd%dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd@ddAddd d
d#dmdKd(dLd%dMe<dNddOedPed*edQe;dRed"ede�ej:ddBddCdd�d dd#d(dKd)dLd%dMe<dNeQd�dOedPed*edQe;dRed"ede�ej:ddDddEdd�d dd#d%dKd&dLd%dMe<dNeQd�dOedPed*edQe;dRed"ede�ej:ddFddGdd�d dd#dcdKd`dLd%dMe<dNe<dOedPed*edQe;dRed"ede�ej:ddHddIdd�d dd#dfdKdfdLd%dMe<dNed �jXdz�dOedPed*edQe;dRed"ede�ej:ddJddKdd�d d!d#dqdKdfdLd%dMe<dNed$�dOedPed*edQe;dRed"ede�ej:ddLddMdd�d d%d#dvdKdcdLd%dMe<dNd(dOedPed*edQe;dRed"ede�ej:ddNddOddd d(d#dvdKdcdLd%dMe<dNd&dOedPed*edQe;dRed"ede�ej:ddPddQddd d+d#dvdKdcdLd%dMe<dNdcdOedPed*edQe;dRed"ede�ej:ddRddSdd	d d.d#dfdKdfdLd%dMe<dNed1�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddTddUdd
d d2d#dfdKdfdLd%dMe<dNed5�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddVddWddd d6d#dWdKddLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddXddYddd d9d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddZdd[ddd d<d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd\dd]ddd d?d#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�gKd�gd�eeegd�egd"ed�e;ddd�gd�ejdd^dd_ddd*ed�g�gd+dSd-d`�Zejddaddbdeded*ed�ej:ddcdddddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddeddfdd%d d(d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddgddhdd(d dd#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+did-dj�Zejddkddldeded*ed�ej:ddmddnddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ej$ejk�edo��de�gd�gd�gd�gd"ed�e;ddd�gd�gd+dpd-dq�Zejddrddsdeded*ed�gd�gd�gd�gd"ej$ej�edo��d�e;ddd�gd�gd+dtd-du�Zejddvddwdeded*ed�ej:ddxddyddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddzdd{dd%d d(d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d|d-d}�Z ejdd~dddeded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z!ejdd�dd�deded*ed�gd�gd�gd�gd"ed�e<ddd�d%d�fgd�gd+d�d-d��Z"ejdd�dd�deded*ed�ej:dd�dd�ddd d\d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z#ejdd�dd�deded*ed�ej:dd�dd�ddd d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z$ejdd�dd�deded*ed�gd�ej:dd�dd�ddd d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe<dRed"ede�ej:dd�dd�dd%d d�d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe<dRed"ede�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z%ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#d&dKd%dLd(dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#d&dKd%dLd(dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddd d!d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd!d d&d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd&d d)d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd)d d`d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd`d dcd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddcd dfd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddfd djd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddjd dnd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddnd dqd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddqd dWd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddWd dvd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddvd did#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddid dmd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�ddmd d\d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd\d d_d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd_d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddxdd�dd�d d�d#d&dKd%dLd(dMe;dNddOedPed*edQe;dRed"ede�g!d�ej:dd�dd�ddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�ej:dd�dd�dd%d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ede�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z&ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z'ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#dndKdjdLd(dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z(ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z)ejdd�dd�deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d�Z*ejdddddeded*ed�gd�gd�gd�gd"ed�e<ddd�d%d�fgd�gd+dd-d�Z+ejdddddeded*ed�gd�gd�gd�gd"ed�e<ddd�d�d�fddfd	d�fgd�gd+d
d-d�Z,ejdddd
deded*ed�ej:dd�ddddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dddd%d dd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�Z-ejdddddeded*ed�ej:dd�ddddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dddddd%d d(d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�Z.ejdddddeded*ed�ej:dd�ddddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�Z/ejdddd deded*ed�ej:dd!dd"ddd dd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd#dd$dd%d d!d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d%d-d&�Z0ejdd'dd(deded*ed�ej:dd�dd)ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd*dd+dd%d d(d#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e/e0gd�gd"ed�e;ddd�gd�gd+d,d-d&�Z1ejdd-dd.deded*ed�ej:dd�dd/ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd0dd%d d(d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d1d-d2�Z2ejdddd3deded*ed�ej:dddd4ddd d(d#d&dKd%dLd(dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d5d-d6�Z3ejdddd7deded*ed�ej:dd*dd8ddd d%d#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e3gd�gd"ed�e;ddd�gd�gd+d9d-d6�Z4ejdd:dd;deded*ed�ej:dd!dd<ddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e4gd�gd"ed�e;ddd�gd�gd+d=d-d6�Z5ejdd>dd?deded*ed�ej:dd�dd@ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dAd-dB�Z6ejddCddDdeded*ed�ej:dd�ddEddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dFd-dG�Z7ejddHddIdeded*ed�ej:dd�ddJddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddKddLdd%d d(d#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddMddNdd(d dd#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e6e7gd�gd"ed�e;ddd�gd�gd+dOd-dG�Z8ejddPddQdeded*ed�ej:dd!ddRddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ej$ejk�edS��de�gd�gd�gd�gd"ed�e;ddd�gd�gd+dTd-dU�Z9ejddVddWdeded*ed�ej:dd!ddXddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ej$ejk�ed���de�gd�gd�gd�gd"ed�e;ddd�gd�gd+dYd-dZ�Z:ejdd�dd[deded*ed�ej:dd\dd]ddd d%d#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd^dd_dd%d d(d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d`d-da�Z;ejddbddcdeded*ed�ej:dd�dddddd d%d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e;gd�gd"ed�e;ddd�gd�gd+ded-da�Z<ejddfddgdeded*ed�ej:ddhddiddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddjddkdd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:ddlddmdd(d dd#dvdKdcdLd%dMe;dNd!dOedPed*edQe;dRed"ede�ej:ddnddoddd d!d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddpddqdd!d d&d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddrddsdd&d d)d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddtddudd)d d`d#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:ddvddwdd`d dcd#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�ej:ddxddyddcd dfd#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ede�ej:ddzdd{ddfd djd#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd|dd}ddjd dnd#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd~ddddnd dqd#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed���de�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z=ejdd�dd�deded*ed�ej:dd�dd�ddd d(d#ddKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z>ejdd�dd�deded*ed�ej:dd�dd�ddd dnd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d%d#ddKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dnd#d(dKd)dLd%dMe;dNeQd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�e>gd�gd"ed�e<ddd�d(dnfdqdnfgd�gd+d�d-d��Z?ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dqdKdfdLd%dMe<dNed��dOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#dWdKddLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#d!dKd!dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddd d!d#d&dKd%dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd!d d&d#ddKd(dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd&d d�d#d&dKd%dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd)d d�d#ddKd(dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd`d d)d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ede�ej:dd�dd�ddcd d`d#d(dKd)dLd%dMe<dNeQd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddfd dcd#d(dKd)dLd%dMe<dNeQd%�dOedPed*edQe;dRed"ede�ej:dd�dd�ddjd dfd#d(dKd)dLd%dMe<dNeQd��dOedPed*edQe;dRed"ede�ej:dd�dd�ddnd djd#d(dKd)dLd%dMe<dNeQd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddqd dnd#d(dKd)dLd%dMe<dNeQd��dOedPed*edQe;dRed"ede�ej:dd�dd�ddWd dqd#d(dKd)dLd%dMe<dNeQd��dOedPed*edQe;dRed"ede�ej:dd�dd�ddvd dWd#d(dKd)dLd%dMe<dNeQd��dOedPed*edQe;dRed"ede�ej:dd�dd�ddid dvd#d%dKd&dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddmd did#d%dKd&dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd\d dmd#d%dKd&dLd%dMe<dNd�ddOedPed*edQe;dRed"ede�ej:dd�dd�dd_d d\d#d(dKd)dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d_d#d(dKd)dLd%dMe<dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#d(dKd)dLd%dMe<dNd�ddOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dqdKdfdLd%dMe<dNed��dOedPed*edQe;dRed"ede�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd�dd�dd�d d�d#dfdKdfdLd%dMe<dNed��jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z@ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dvdKdcdLd%dMe;dNd<dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZAejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZBejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZCejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZDejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dqdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZEejdd�dd�deded*ed�ej:dd�dd�ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZFejdddddeded*ed�ej:dd�ddddd d%d#dWdKddLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZGejdddddeded*ed�ej:dd�dd	ddd d%d#ddKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d
d-d�ZHejdddd
deded*ed�ej:dd�ddddd d%d#d!dKd!dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZIejdddddeded*ed�ej:dd�ddddd d%d#dcdKd`dLd%dMe;dNe;dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZJejdddddeded*ed�ej:dd�ddddd d&d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dddd%d d)d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZKejdddddeded*ed�ej:ddddddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd dd!dd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd"dd#dd(d dd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd$dd%ddd d!d#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�eKgd�gd"ed�e;ddd�gd�ejddKdd&ddd*ed�g�gd+d'd-d(�ZLejdddd)deded*ed�ej:dd�dd*ddd d&d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd+dd%d d)d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d�ZMejdd,dd-deded*ed�ej:dddd.ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd dd/dd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd"dd0dd(d dd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd$dd1ddd d!d#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�eMgd�gd"ed�e;ddd�gd�gd+d2d-d3�ZNejdddd4deded*ed�ej:dd�dd5ddd dfd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd6dd%d djd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d7d-d8�ZOejdd�dd9deded*ed�ej:dd:dd;ddd d%d#ddKd(dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd<dd=dd%d d(d#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d>d-d?�ZPejdd@ddAdeded*ed�ej:ddddBddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd ddCdd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:ddDddEdd(d dd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddFddGddd d!d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddHddIdd!d d&d#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�ej:ddJddKdd&d d)d#dvdKdcdLd%dMe;dNd%dOedPed*edQe;dRed"ede�ej:dd"ddLdd)d d`d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd$ddMdd`d dcd#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddNddOddcd dnd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddPddQddfd dqd#d&dKd%dLd%dMe<dNd&dOedPed*edQe;dRed"ede�ej:ddRddSddjd dWd#dfdKdfdLd%dMe<dNedT�jXdz�dOedPed*edQe;dRed"ede�ej:ddUddVddnd dvd#dfdKdfdLd%dMe<dNedW�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:ddXddYddqd did#dfdKdfdLd%dMe<dNedZ�jXdz�dOedPed*edQe;dRed"ej$ejk�ed���de�ej:dd[dd\ddWd dmd#dqdKdfdLd%dMe<dNed]�dOedPed*edQe;dRed"ede�ej:dd^dd_ddvd d\d#dvdKdcdLd%dMe<dNd(dOedPed*edQe;dRed"ede�ej:dd`ddaddid d_d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddbddcddmd d�d#dfdKdfdLd%dMe<dNed3�jXdz�dOedPed*edQe;dRed"ede�gd�gd�eOePgd�egd"ed�e;ddd�gd�ejddKdddddd*ed�g�ejddMddedd%d*ed�g�gd+dfd-dg�ZQejdd�ddhdeded*ed�ej:ddiddjddd d%d#d%dKd&dLd(dMe;dNeQd�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dkd-dl�ZRejddmddndeded*ed�ej:ddddoddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd ddpdd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd"ddqdd(d dd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�eRgd�gd"ed�e;ddd�gd�ejddKddrddd*ed�g�gd+dsd-dt�ZSejdduddvdeded*ed�ej:ddwddxddd dGd#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:ddyddzdd%d dKd#ddKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd{dd|dd(d dOd#dWdKddLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd}dd~ddd dSd#d!dKd!dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dddd�dd!d dWd#d\dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�dd&d dZd#d_dKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�dd)d d]d#d`dKddLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�dd`d d`d#d)dKd!dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddcd dcd#didKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddfd dfd#dmdKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddjd djd#d(dKd)dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddnd dnd#d%dKd&dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddqd drd#dcdKd`dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:dd�dd�ddWd dvd#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZTejdd�dd�deded*ed�ej:dd�dd�ddd dGd#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd%d dKd#ddKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd(d dOd#dWdKddLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddd dSd#d!dKd!dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd!d dWd#d\dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd&d dZd#d_dKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd)d d]d#d`dKddLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�dd`d d`d#d)dKd!dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddcd dcd#didKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddfd dfd#dmdKd(dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddjd djd#d(dKd)dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddnd dnd#d%dKd&dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddqd drd#dcdKd`dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:dd�dd�ddWd dvd#dvdKdcdLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZUejdd�dd�deded*ed�gd�gd�gd�gd"ed�e<ddd�d%d�fgd�gd+d�d-d��ZVejdd�dd�deded*ed�gd�gd�gd�gd"ed�e<ddd�d%d�fgd�gd+d�d-d��ZWejdd�dd�deded*ed�ej:dd�dd�ddd d�d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZXejdd�dd�deded*ed�ej:dd�dd�ddd d�d#d`dKddLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d�d#dvdKdcdLd%dMe;dNd!dOedPed*edQe;dRed"ede�ej:dd�dd�dd(d d�d#dvdKdcdLd%dMe;dNd�dOedPed*edQe;dRed"ede�ej:dd�dd�ddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd!d d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�dd�dd&d d�d#dfdKdfdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd)d d�d#d\dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�gd�gd�eXgd�egd"ed�e;ddd�gd�gd+d�d-d��ZYejdd�dd�deded*ed�ej:dddd�ddd dqd#d`dKddLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd%d dWd#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd
dd�dd(d d�d#d)dKd!dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�ddd d�d#ddKd(dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddd�dd!d d�d#d(dKd)dLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddd�dd&d d�d#d!dKd!dLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��ZZejdd�dd�deded*ed�ej:dd�dd�ddd dnd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z[ejdd�dd�deded*ed�ej:dd�dd�ddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d�d-d��Z\ejdd�dd�deded*ed�ej:dd�dd�ddd d%d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd%d d(d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd(d dd#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�ddd djd#djdKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�dd�dd!d d�d#djdKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd&d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dddddd)d d�d#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�gd�gd�e[e\gd�gd"ed�e;ddd�gd�gd+dd-d��Z]ejdd�dddeded*ed�ej:ddddddd dnd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dd-d	�Z^ejdd�dd
deded*ed�ej:ddddddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d
d-d�Z_ejdddddeded*ed�ej:ddddddd d%d#dndKdjdLd(dMe;dNedOedPed*edQe;dRed"ede�ej:dddddd%d d(d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dddddd(d dd#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:dd�ddddd djd#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dddddd!d d�d#djdKdjdLddMe;dNgdOedPed*edQe;dRed"ede�gd�ej:ddddddd d�d#dndKdjdLd%dMe;dNedOedPed*edQe<dRed"ede�ej:dddddd%d d�d#dndKdjdLddMe;dNgdOedPed*edQe<dRed"ede�gd�e]e^e_gd�gd"ed�e<ddd�d�d�fgd�gd+dd-d�Z`ejdddd deded*ed�ej:dd�dd!ddd d%d#dfdKdfdLd%dMe<dNed"�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+d#d-d$�Zaejdd%dd&deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d'd-d(�Zbejdd)dd*deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d+d-d,�Zcejdd-dd.deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d/d-d0�Zdejdd1dd2deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d3d-d4�Zeejdd5dd6deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d7d-d8�Zfejdd9dd:deded*ed�gd�gd�gd�gd"ed�e;ddd�gd�gd+d;d-d<�Zgejdd=dd>deded*ed�ej:dd?dd@ddd d%d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddAddBdd%d d(d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddCddDdd(d dd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddEddFddd d!d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddGddHdd!d d&d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddIddJdd&d d)d#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"edKdLde�gd�gd�gd�gd"ed�e;ddd�gd�gd+dMd-dN�Zhejdd�ddOdeded*ed�ej:ddPddQddd dRd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�gd�gd�gd�gd"ed�e;ddd�gd�gd+dSd-dT�ZiejddUddVdeded*ed�ej:ddWddXddd d%d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:ddYddZdd%d d(d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�gd�gd�gd�gd"ej$ej�ed[��d�e;ddd�gd�gd+d\d-d]�Zjejdd^dd_deded*ed�ej:dd�dd`ddd dad#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddbddcdd%d ddd#d&dKd%dLd%dMe;dNddOedPed*edQe;dRed"ede�ej:dd�ddedd(d dfd#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed{��de�ej:ddwddgddd dhd#d&dKd%dLddMe;dNgdOedPed*edQe;dRed"ej$ejk�ed6��de�ej:ddiddjdd!d dkd#dvdKdcdLd%dMe;dNd!dOedPed*edQe;dRed"ede�ej:dd�ddldd&d dmd#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd�ddndd)d dod#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�ej:dd�ddpdd`d dqd#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:dd�ddrddcd dsd#djdKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddtdduddfd dvd#dndKdjdLddMe;dNgdOedPed*edQe;dRed"ede�ej:ddVddwddjd dxd#dWdKddLd%dMe;dNddOedPed*edQe;dRed"ede�ej:ddyddzddnd d{d#dndKdjdLd%dMe;dNedOedPed*edQe;dRed"ede�ej:ddZdd|ddqd d}d#dfdKdfdLd%dMe;dNedy�jXdz�dOedPed*edQe;dRed"ede�ej:dd\dd~ddWd dd#dqdKdfdLd%dMe;dNedy�dOedPed*edQe;dRed"ede�gd�gd�eiejgd�gd"ed�e<ddd�d�dafgd�ejdd^dd�ddd*ed�g�gd+d�d-d��Zkee_lee_lee_leejmd�_neejmd�_ne ejmd�_nejoejmd�_neejmd�_pe ejmd�_pejqejmd�_pejrejmd�_neejmd�_neejmd_neejmd_ne ejmd_nejoejmd _neejmd"_pe ejmd$_pejqejmd&_peejmd,_neejmdL_pe ejmdN_pejqejmdP_peejmdX_nee_lejsd^jtjuejmdV�ejsd^ejmdV_vejsd^jtjuejmdX�ejsd^ejmdX_vejsd^jtjuejmdZ�ejsd^ejmdZ_vejsd^jtjuejmd\�ejsd^ejmd\_veejmdc_neejmde_neejmdg_ne&e'jmd�_ne&e'jmd�_ne&e(jmd�_ne&e(jmd�_ne&e(jmd�_nee)jmd�_ne.e.jmd�_ne2e/jmd�_ne1e/_le/e0jmd!_nee0jmd#_ne1e0_le2e1jmd�_ne0e1jmd*_ne1e2jmd�_ne4e3_le3e4jmd*_ne5e4_le4e5jmd!_ne8e6_le8e7_le6e8jmdK_ne7e8jmdM_nee9jmd!_nee:jmd!_ne e;jmd^_ne<e;_le;e<jmd�_ne e=jmdl_pe e=jmdn_ne e=jmdx_pe e=jmdz_ne?e>_le>e?jmd�_ne(eAjmd�_peLeK_leeLjmd"_neKeLjmd$_neLjsdKjtjueLjmd�eLjsdKeLjmd_veLjsdKjtjueLjmd �eLjsdKeLjmd _veLjsdKjtjueLjmd"�eLjsdKeLjmd"_veLjsdKjtjueLjmd$�eLjsdKeLjmd$_veNeM_leeNjmd"_neMeNjmd$_neQeO_leQeP_leeQjmdJ_pePeQjmd"_neOeQjmd$_nePeQjmdN_neeQjmd^_peQe_leQjsdKjtjueQjmd�eQjsdKeQjmd_veQjsdKjtjueQjmd �eQjsdKeQjmd _veQjsdKjtjueQjmdD�eQjsdKeQjmdD_veQjsdKjtjueQjmdF�eQjsdKeQjmdF_veQjsdKjtjueQjmdH�eQjsdKeQjmdH_veQjsdKjtjueQjmdJ�eQjsdKeQjmdJ_veQjsdKjtjueQjmd"�eQjsdKeQjmd"_veQjsdKjtjueQjmd$�eQjsdKeQjmd$_veQjsdKjtjueQjmdN�eQjsdKeQjmdN_veQjsdMjtjueQjmdP�eQjsdMeQjmdP_veQjsdMjtjueQjmdR�eQjsdMeQjmdR_veQjsdMjtjueQjmdU�eQjsdMeQjmdU_veQjsdMjtjueQjmdX�eQjsdMeQjmdX_veQjsdMjtjueQjmd[�eQjsdMeQjmd[_veQjsdMjtjueQjmd^�eQjsdMeQjmd^_veSeR_leReSjmd"_neSjsdKjtjueSjmd�eSjsdKeSjmd_veSjsdKjtjueSjmd �eSjsdKeSjmd _veSjsdKjtjueSjmd"�eSjsdKeSjmd"_ve eTjmd�_pe eUjmd�_peYeX_le eYjmd�_peeYjmd�_pe eYjmd�_neXeYjmd�_neYe_lee[jmd�_ne]e[_lee\jmd�_ne]e\_lee]jmd�_nee]jmd�_nee]jmd�_ne[e]jmd�_ne\e]jmd�_nee]jmd_nee]jmd_ne`e]_lee^jmd_ne`e^_lee_jmd_ne`e__lee`jmd_nee`jmd_nee`jmd_ne^e`jmd�_ne_e`jmd_nekei_lekej_le ekjmdi_pe ekjmd�_neiekjmd�_nejekjmdt_neekjmdy_nekjsd^jtjuekjmdV�ekjsd^ekjmdV_vekjsd^jtjuekjmdy�ekjsd^ekjmdy_vekjsd^jtjuekjmdZ�ekjsd^ekjmdZ_vekjsd^jtjuekjmd\�ekjsd^ekjmd\_veejwd�<eejwda<eejwdk<eejwdr<e ejwdv<e!ejwd~<e"ejwd�<e#ejwd�<e$ejwd�<e%ejwd�<e&ejwd�<e'ejwd�<e(ejwd�<e)ejwd�<e*ejwd�<e+ejwd<e,ejwd<e-ejwd<e.ejwd<e1ejwd'<e2ejwd-<e5ejwd:<e8ejwdH<e9ejwdP<e:ejwdV<e<ejwdb<e=ejwdf<e?ejwd�<e@ejwd�<eAejwd�<eBejwd�<eCejwd�<eDejwd�<eEejwd�<eFejwd�<eGejwd<eHejwd<eIejwd<eJejwd<eLejwd<eNejwd,<eQejwd@<eSejwdm<eTejwdu<eUejwd�<eVejwd�<eWejwd�<eYejwd�<eZejwd�<e`ejwd<eaejwd<ebejwd%<ecejwd)<edejwd-<eeejwd1<efejwd5<egejwd9<ehejwd=<ekejwd^<e ejxd<e&ejxd/<e(ejxd9<e=ejydI<e?ejydS<eAejydU<eCejydX<eEejydZ<eGejyd]<eIejyda<eKejydd<eMejydg<eOejydk<eRejydo<eTejydr<eVejydt<eYejydw<e[ejyd{<e]ejyd}<e_ejyd<eaejyd�<ecejyd�<eeejyd�<egejyd�<eiejyd�<elejyd�<enejyd�<epejyd�<erejyd�<etejyd�<evejyd�<exejyd�<ezejyd�<e|ejyd�<e~ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd�<e�ejyd<e�ejyd<e�ejyd
<e�ejyd<e�ejyd<e�ejyd<e�ejyd<e�ejyd<e�ejyd"<e�ejyd&<e�ejyd)<e�ejyd,<e�ejyd/<e�ejyd3<e�ejyd7<e�ejyd:<e�ejyd=<e�ejyd@<e�ejydB<e�ejydD<e�ejydH<e�ejydL<e�ejydP<e�ejydT<e�ejydX<e�ejyd[<e�ejyd^<e�ejyda<e�ejydd<e�ejydg<e�ejydk<e�ejydo<e�ejyds<e�ejydw<e�ejydy<e�ejyd|<e�ejyd~<e�ejyd�<e�ejyd�<eejyd�<eejyd�<eejyd�<eejyd�<eejyd�<e
ejyd�<eejyd�<eejyd�<eejyd�<eejyd�<ejze�ej{d�e	j|fe}d�ej{d�e	j|fe}d�ed�d���d�ej{d�e	j|fe}d�ed�d���d�ej{d�e	j|fe}d�ed�d���d�ed�d���Z~eje~�eje~j��eje~j��eje~j��ej{dae	j|fe}d�ed�d���Z�eje��ej{dke	j|fe}d�ed�d���Z�eje��ej{dre	j|fe}d�ed�d���Z�eje��ej{dve	j|fe}d�e d�d���Z�eje��ej{d~e	j|fe}d�e!d�d���Z�eje��ej{d�e	j|fe}d�e"d�d���Z�eje��ej{d�e	j|fe}d�e#d�d���Z�eje��ej{d�e	j|fe}d�e$d�d���Z�eje��ej{d�e	j|fe}d�e%d�d���Z�eje��ej{d�e	j|fe}d�e&d�d���Z�eje��ej{d�e	j|fe}d�e'd�d���Z�eje��ej{d�e	j|fe}d�e(d�d���Z�eje��ej{d�e	j|fe}d�e)d�d���Z�eje��ej{d�e	j|fe}d�e*d�d���Z�eje��ej{de	j|fe}d�e+d�d���Z�eje��ej{de	j|fe}d�e,d�d���Z�eje��ej{de	j|fe}d�e-d�d���Z�eje��ej{de	j|fe}d�e.d�d���Z�eje��ej{d'e	j|fe}dej{de	j|fe}d�e/d�d���dej{de	j|fe}d�e0d�d���d�e1d�d���Z�eje��eje�j��eje�j��ej{d-e	j|fe}d�e2d�d���Z�eje��ej{d:e	j|fe}dej{de	j|fe}dej{de	j|fe}d�e3d�d���d�e4d�d���d�e5d�d���Z�eje��eje�j��eje�j�j��ej{dHe	j|fe}d>ej{d>e	j|fe}d�e6d�d���dCej{dCe	j|fe}d�e7d�d���d�e8d�d���Z�eje��eje�j��eje�j��ej{dPe	j|fe}d�e9d�d���Z�eje��ej{dVe	j|fe}d�e:d�d���Z�eje��ej{dbe	j|fe}d�ej{d�e	j|fe}d�e;d�d���d�e<d�d���Z�eje��eje�j��ej{dfe	j|fe}d�e=d�d���Z�eje��ej{d�e	j|fe}d�ej{d�e	j|fe}d�e>d�d���d�e?d�d���Z�eje��eje�j��ej{d�e	j|fe}d�e@d�d���Z�eje��ej{d�e	j|fe}d�eAd�d���Z�eje��ej{d�e	j|fe}d�eBd�d���Z�eje��ej{d�e	j|fe}d�eCd�d���Z�eje��ej{d�e	j|fe}d�eDd�d���Z�eje��ej{d�e	j|fe}d�eEd�d���Z�eje��ej{d�e	j|fe}d�eFd�d���Z�eje��ej{de	j|fe}d�eGd�d���Z�eje��ej{de	j|fe}d�eHd�d���Z�eje��ej{de	j|fe}d�eId�d���Z�eje��ej{de	j|fe}d�eJd�d���Z�eje��ej{de	j|fe}dej{de	j|fe}d�eKd�d���d�eLd�d���Z�eje��eje�j��ej{d,e	j|fe}dej{de	j|fe}d�eMd�d���d�eNd�d���Z�eje��eje�j��ej{d@e	j|fe}dej{de	j|fe}d�eOd�d���d�ej{d�e	j|fe}d�ePd�d���d�eQd�d���Z�eje��eje�j��eje�j��ej{dme	j|fe}d�ej{d�e	j|fe}d�eRd�d���d�eSd�d���Z�eje��eje�j��ej{due	j|fe}d�eTd�d���Z�eje��ej{d�e	j|fe}d�eUd�d���Z�eje��ej{d�e	j|fe}d�eVd�d���Z�eje��ej{d�e	j|fe}d�eWd�d���Z�eje��ej{d�e	j|fe}d�ej{d�e	j|fe}d�eXd�d���d�eYd�d���Z�eje��eje�j��ej{d�e	j|fe}d�eZd�d���Z�eje��ej{de	j|fe}d�ej{d�e	j|fe}d�ej{d�e	j|fe}d�e[d�d���d�ej{d�e	j|fe}d�e\d�d���d�e]d�d���d�ej{d�e	j|fe}d�e^d�d���d�ej{d�e	j|fe}d�e_d�d���d�e`d�d���Z�eje��eje�j��eje�j�j��eje�j�j��eje�j��eje�j��ej{de	j|fe}d�ead�d���Z�eje��ej{d%e	j|fe}d�ebd�d���Z�eje��ej{d)e	j|fe}d�ecd�d���Z�eje��ej{d-e	j|fe}d�edd�d���Z�eje��ej{d1e	j|fe}d�eed�d���Z�eje��ej{d5e	j|fe}d�efd�d���Z�eje��ej{d9e	j|fe}d�egd�d���Z�eje��ej{d=e	j|fe}d�ehd�d���Z�eje��ej{d^e	j|fe}d�ej{d�e	j|fe}d�eid�d���dUej{dUe	j|fe}d�ejd�d���d�ekd�d���Z�eje��eje�j��eje�j��e�j�e=�e�j�e?�e�j�eA�e�j�eC�e�j�eE�e�j�eG�e�j�eI�e�j�eK�e�j�eM�e�j�eO�e�j�eR�e�j�eT�e�j�eV�e�j�eY�e�j�e[�e#e]_ne�j�e]�ee__ne�j�e_�e ea_ne�j�ea�ejoec_ne�j�ec�eee_pe�j�ee�e eg_pe�j�eg�ejqei_pe�j�ei�e�j�el�e�j�en�ejrep_ne�j�ep�eer_ne�j�er�e�j�et�e�j�ev�e�j�ex�e�j�ez�e�j�e|�e�j�e~�e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e$e�_ne�j�e��ee�_ne�j�e��e e�_ne�j�e��ejoe�_ne�j�e��ee�_pe�j�e��e e�_pe�j�e��ejqe�_pe�j�e��e�j�e��e�j�e��ee�_ne�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��ee�_pe�j�e��e e�_pe�j�e��ejqe�_pe�j�e��e�j�e��e�j�e��e�j�e��ee�_ne�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e e�_pe�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e��e�j�e�e�j�e�e�j�e�e�j�e�e�j�e�e�j�e
�e�j�e�e�j�e�e e_pe�j�e�ee_ne�j�e�e�j�e%jyd��e�j�e%jyd��e&e&jyd�_ne�j�e&jyd��e&e&jyd�_ne�j�e&jyd��ee`jyd_ne�j�e`jyd�ee`jyd_ne�j�e`jyd�e<e_�ej$ej��ed���e_�e<e&_�ej$ej%�ed6��e&_�e<el_�ej$ejk�ed���el_�e<en_�ej$ejk�ed���en_�e<er_�ej$ejk�ed���er_�e<e�_�ej$ejk�ed���e�_�e<e�_�ej$ejk�ed���e�_�e<e�_�ej$ejk�ed���e�_�e<e�_�ej$ejk�ed���e�_�e<e�_�ej$ejk�ed���e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed6��e�_�e<e�_�ej$ejk�ed{��e�_�e<e�_�ej$ejk�ed{��e�_�e<e�_�ej$ejk�ed{��e�_�e<e�_�ej$ejk�ed{��e�_�e<e�_�ej$ejk�ed{��e�_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<e
_�ej$ejk�ed{��e
_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<e_�ej$ejk�ed{��e_�e<ejmd�_�ej$ejk�ed���ejmd�_�e<ejmd�_�ej$ejk�ed���ejmd�_�e<ejmd�_�ej$ejk�ed���ejmd�_�e<ejmd(_�ej$ejk�ed���ejmd(_�e<ejmd*_�ej$ejk�ed���ejmd*_�e<ejmd,_�ej$ejk�ed���ejmd,_�e<ejmdR_�ej$ejk�ed���ejmdR_�e<ejmdT_�ej$ejk�ed���ejmdT_�e<ejmdm_�ej$ejk�edo��ejmdm_�e<e_�ej$ej�edo��e_�e<e9jmd!_�ej$ejk�edS��e9jmd!_�e<e:jmd!_�ej$ejk�ed���e:jmd!_�e<e=jmdp_�ej$ejk�ed���e=jmdp_�e<e=jmdr_�ej$ejk�ed���e=jmdr_�e<e=jmd|_�ej$ejk�ed���e=jmd|_�e<e=jmd~_�ej$ejk�ed���e=jmd~_�e<e@jmd�_�ej$ejk�ed���e@jmd�_�e<e@jmd�_�ej$ejk�ed���e@jmd�_�e<eQjmdD_�ej$ejk�ed���eQjmdD_�e<eQjmdF_�ej$ejk�ed���eQjmdF_�e<eQjmdN_�ej$ejk�ed���eQjmdN_�e<eQjmdU_�ej$ejk�ed���eQjmdU_�e<eQjmdX_�ej$ejk�ed���eQjmdX_�e<eTjmdw_�ej$ejk�ed6��eTjmdw_�e<eTjmdy_�ej$ejk�ed6��eTjmdy_�e<eTjmd{_�ej$ejk�ed6��eTjmd{_�e<eTjmd}_�ej$ejk�ed6��eTjmd}_�e<eTjmd_�ej$ejk�ed6��eTjmd_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eTjmd�_�ej$ejk�ed6��eTjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eUjmd�_�ej$ejk�ed{��eUjmd�_�e<eYjmd�_�ej$ejk�ed6��eYjmd�_�e<ej_�ej$ej�ed[��ej_�e<ekjmd�_�ej$ejk�ed{��ekjmd�_�e<ekjmdw_�ej$ejk�ed6��ekjmdw_�ej�dd�dd�deddd"ed+d�d-d�d�ej�dd>dd�ddd�ed�ebd�ecd"e�ej�ddCdd�dd%d�ed�efd�egd"e�g�Z�ej�e��e�ej�d�<ej�d�ej�fe}d�e�d�d���Z�ej�d�e�fe}d�e�d�d���Z�dS(�i����NiicCs|S(N((tx((s@/usr/lib/python2.7/site-packages/google/protobuf/unittest_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s@/usr/lib/python2.7/site-packages/google/protobuf/unittest_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tservice(tservice_reflection(tdescriptor_pb2(tunittest_import_pb2tnamesgoogle/protobuf/unittest.prototpackagetprotobuf_unittesttsyntaxtproto2t
serialized_pbs~\
google/protobuf/unittest.protoprotobuf_unittest%google/protobuf/unittest_import.proto"�
TestAllTypes
optional_int32 (
optional_int64 (
optional_uint32 (

optional_uint64 (
optional_sint32 (
optional_sint64 (
optional_fixed32 (
optional_fixed64 (
optional_sfixed32	 (
optional_sfixed64
 (
optional_float (
optional_double (

optional_bool
 (
optional_string (	
optional_bytes (D

optionalgroup (
2-.protobuf_unittest.TestAllTypes.OptionalGroupN
optional_nested_message (2-.protobuf_unittest.TestAllTypes.NestedMessageC
optional_foreign_message (2!.protobuf_unittest.ForeignMessageH
optional_import_message (2'.protobuf_unittest_import.ImportMessageH
optional_nested_enum (2*.protobuf_unittest.TestAllTypes.NestedEnum=
optional_foreign_enum (2.protobuf_unittest.ForeignEnumB
optional_import_enum (2$.protobuf_unittest_import.ImportEnum!
optional_string_piece (	B

optional_cord (	BU
optional_public_import_message (2-.protobuf_unittest_import.PublicImportMessageP
optional_lazy_message (2-.protobuf_unittest.TestAllTypes.NestedMessageB(
repeated_int32 (
repeated_int64  (
repeated_uint32! (

repeated_uint64" (
repeated_sint32# (
repeated_sint64$ (
repeated_fixed32% (
repeated_fixed64& (
repeated_sfixed32' (
repeated_sfixed64( (
repeated_float) (
repeated_double* (

repeated_bool+ (
repeated_string, (	
repeated_bytes- (D

repeatedgroup. (
2-.protobuf_unittest.TestAllTypes.RepeatedGroupN
repeated_nested_message0 (2-.protobuf_unittest.TestAllTypes.NestedMessageC
repeated_foreign_message1 (2!.protobuf_unittest.ForeignMessageH
repeated_import_message2 (2'.protobuf_unittest_import.ImportMessageH
repeated_nested_enum3 (2*.protobuf_unittest.TestAllTypes.NestedEnum=
repeated_foreign_enum4 (2.protobuf_unittest.ForeignEnumB
repeated_import_enum5 (2$.protobuf_unittest_import.ImportEnum!
repeated_string_piece6 (	B

repeated_cord7 (	BP
repeated_lazy_message9 (2-.protobuf_unittest.TestAllTypes.NestedMessageB(

default_int32= (:41

default_int64> (:42
default_uint32? (
:43
default_uint64@ (:44
default_sint32A (:-45
default_sint64B (:46
default_fixed32C (:47
default_fixed64D (:48
default_sfixed32E (:49
default_sfixed64F (:-50

default_floatG (:51.5
default_doubleH (:52000
default_boolI (:true
default_stringJ (	:hello

default_bytesK (:worldL
default_nested_enumQ (2*.protobuf_unittest.TestAllTypes.NestedEnum:BARI
default_foreign_enumR (2.protobuf_unittest.ForeignEnum:FOREIGN_BARM
default_import_enumS (2$.protobuf_unittest_import.ImportEnum:
IMPORT_BAR%
default_string_pieceT (	:abcB
default_cordU (	:123B
oneof_uint32o (
HM
oneof_nested_messagep (2-.protobuf_unittest.TestAllTypes.NestedMessageH
oneof_stringq (	H
oneof_bytesr (H

NestedMessage

bb (

OptionalGroup	
a (

RepeatedGroup	
a/ ("9

NestedEnum
FOO
BAR
BAZ
NEG���������B
oneof_field"�
NestedTestAllTypes4
child (2%.protobuf_unittest.NestedTestAllTypes0
payload (2.protobuf_unittest.TestAllTypes=
repeated_child (2%.protobuf_unittest.NestedTestAllTypes"4
TestDeprecatedFields
deprecated_int32 (B"
TestDeprecatedMessage:"&
ForeignMessage	
c (	
d ("0
TestReservedFieldsJJJ	RbarRbaz"
TestAllExtensions*����"$
OptionalGroup_extension	
a ("$
RepeatedGroup_extension	
a/ ("�
TestNestedExtension29
test$.protobuf_unittest.TestAllExtensions� (	:test2F
nested_string_extension$.protobuf_unittest.TestAllExtensions� (	"�
TestRequired	
a (
dummy2 (	
b (
dummy4 (
dummy5 (
dummy6 (
dummy7 (
dummy8 (
dummy9	 (
dummy10
 (
dummy11 (
dummy12 (
dummy13
 (
dummy14 (
dummy15 (
dummy16 (
dummy17 (
dummy18 (
dummy19 (
dummy20 (
dummy21 (
dummy22 (
dummy23 (
dummy24 (
dummy25 (
dummy26 (
dummy27 (
dummy28 (
dummy29 (
dummy30 (
dummy31 (
dummy32  (	
c! (2V
single$.protobuf_unittest.TestAllExtensions� (2.protobuf_unittest.TestRequired2U
multi$.protobuf_unittest.TestAllExtensions� (2.protobuf_unittest.TestRequired"�
TestRequiredForeign9
optional_message (2.protobuf_unittest.TestRequired9
repeated_message (2.protobuf_unittest.TestRequired
dummy ("�
TestRequiredMessage9
optional_message (2.protobuf_unittest.TestRequired9
repeated_message (2.protobuf_unittest.TestRequired9
required_message (2.protobuf_unittest.TestRequired"Z
TestForeignNestedE
foreign_nested (2-.protobuf_unittest.TestAllTypes.NestedMessage"
TestEmptyMessage"*
TestEmptyMessageWithExtensions*����"7
TestMultipleExtensionRanges**+*� �!*
������"4
TestReallyLargeTagNumber	
a (
bb��� ("U
TestRecursiveMessage2
a (2'.protobuf_unittest.TestRecursiveMessage	
i ("�
TestMutualRecursionA3
bb (2'.protobuf_unittest.TestMutualRecursionBB
subgroup (
20.protobuf_unittest.TestMutualRecursionA.SubGroup@

SubMessage2
b (2'.protobuf_unittest.TestMutualRecursionB�
SubGroupG
sub_message (22.protobuf_unittest.TestMutualRecursionA.SubMessage8
not_in_this_scc (2.protobuf_unittest.TestAllTypes"b
TestMutualRecursionB2
a (2'.protobuf_unittest.TestMutualRecursionA
optional_int32 ("�
TestIsInitializedD
sub_message (2/.protobuf_unittest.TestIsInitialized.SubMessageo

SubMessageJ
subgroup (
28.protobuf_unittest.TestIsInitialized.SubMessage.SubGroup
SubGroup	
i ("�
TestDupFieldNumber	
a (6
foo (
2).protobuf_unittest.TestDupFieldNumber.Foo6
bar (
2).protobuf_unittest.TestDupFieldNumber.Bar
Foo	
a (
Bar	
a ("L
TestEagerMessage8
sub_message (2.protobuf_unittest.TestAllTypesB("K
TestLazyMessage8
sub_message (2.protobuf_unittest.TestAllTypesB("�
TestNestedMessageHasBitsZ
optional_nested_message (29.protobuf_unittest.TestNestedMessageHasBits.NestedMessage�

NestedMessage$
nestedmessage_repeated_int32 (P
%nestedmessage_repeated_foreignmessage (2!.protobuf_unittest.ForeignMessage"�
TestCamelCaseFieldNames
PrimitiveField (
StringField (	1
	EnumField (2.protobuf_unittest.ForeignEnum7
MessageField (2!.protobuf_unittest.ForeignMessage
StringPieceField (	B
	CordField (	B
RepeatedPrimitiveField (
RepeatedStringField (	9
RepeatedEnumField	 (2.protobuf_unittest.ForeignEnum?
RepeatedMessageField
 (2!.protobuf_unittest.ForeignMessage$
RepeatedStringPieceField (	B
RepeatedCordField (	B"�
TestFieldOrderings
	my_string (	
my_int (
my_floate (U
optional_nested_message� (23.protobuf_unittest.TestFieldOrderings.NestedMessage'

NestedMessage

oo (

bb (**e"�
TestExtremeDefaultValues?

escaped_bytes (:(\000\001\007\010\014\n\r\t\013\\\'\"\376 
large_uint32 (
:
4294967295*
large_uint64 (:18446744073709551615 
small_int32 (:-2147483647)
small_int64 (:-9223372036854775807'
really_small_int32 (:-21474836480
really_small_int64 (:-9223372036854775808
utf8_string (	:ሴ

zero_float (:0
	one_float (:1
small_float	 (:1.5
negative_one_float
 (:-1
negative_float (:-1.5
large_float (:2e+08$
small_negative_float
 (:-8e-28

inf_double (:inf
neg_inf_double (:-inf

nan_double (:nan
	inf_float (:inf

neg_inf_float (:-inf
	nan_float (:nan+
cpp_trigraph (	:? ? ?? ?? ??? ??/ ??- 
string_with_zero (	:hello"
bytes_with_zero (:	wor\000ld(
string_piece_with_zero (	:abcB 
cord_with_zero (	:123B&
replacement_string (	:
${unknown}"K
SparseEnumMessage6
sparse_enum (2!.protobuf_unittest.TestSparseEnum"
	OneString
data (	"

MoreString
data (	"
OneBytes
data ("
	MoreBytes
data ("
Int32Message
data ("

Uint32Message
data (
"
Int64Message
data ("

Uint64Message
data ("
BoolMessage
data ("�
	TestOneof
foo_int (H

foo_string (	H6
foo_message (2.protobuf_unittest.TestAllTypesH9
foogroup (
2%.protobuf_unittest.TestOneof.FooGroupH 
FooGroup	
a (	
b (	B
foo"�
TestOneofBackwardsCompatible
foo_int (

foo_string (	4
foo_message (2.protobuf_unittest.TestAllTypesJ
foogroup (
28.protobuf_unittest.TestOneofBackwardsCompatible.FooGroup 
FooGroup	
a (	
b (	"�

TestOneof2
foo_int (H

foo_string (	H
foo_cord (	BH
foo_string_piece (	BH
	foo_bytes (H<
foo_enum (2(.protobuf_unittest.TestOneof2.NestedEnumHB
foo_message (2+.protobuf_unittest.TestOneof2.NestedMessageH:
foogroup (
2&.protobuf_unittest.TestOneof2.FooGroupHK
foo_lazy_message (2+.protobuf_unittest.TestOneof2.NestedMessageB(H
bar_int (:5H

bar_string
 (	:STRINGH
bar_cord (	:CORDBH&
bar_string_piece (	:SPIECEBH
	bar_bytes (:BYTESHA
bar_enum (2(.protobuf_unittest.TestOneof2.NestedEnum:BARH
baz_int (

baz_string (	:BAZ 
FooGroup	
a	 (	
b
 (	3

NestedMessage
qux_int (
	corge_int ("'

NestedEnum
FOO
BAR
BAZB
fooB
bar"�
TestRequiredOneof
foo_int (H

foo_string (	HI
foo_message (22.protobuf_unittest.TestRequiredOneof.NestedMessageH(

NestedMessage
required_double (B
foo"�
TestPackedTypes
packed_int32Z (B
packed_int64[ (B

packed_uint32\ (
B

packed_uint64] (B

packed_sint32^ (B

packed_sint64_ (B
packed_fixed32` (B
packed_fixed64a (B
packed_sfixed32b (B
packed_sfixed64c (B
packed_floatd (B

packed_doublee (B
packed_boolf (B7
packed_enumg (2.protobuf_unittest.ForeignEnumB"�
TestUnpackedTypes
unpacked_int32Z (B
unpacked_int64[ (B
unpacked_uint32\ (
B
unpacked_uint64] (B
unpacked_sint32^ (B
unpacked_sint64_ (B
unpacked_fixed32` (B
unpacked_fixed64a (B
unpacked_sfixed32b (B
unpacked_sfixed64c (B
unpacked_floatd (B
unpacked_doublee (B

unpacked_boolf (B9

unpacked_enumg (2.protobuf_unittest.ForeignEnumB" 
TestPackedExtensions*����""
TestUnpackedExtensions*����"�
TestDynamicExtensions
scalar_extension� (7
enum_extension� (2.protobuf_unittest.ForeignEnumY
dynamic_enum_extension� (28.protobuf_unittest.TestDynamicExtensions.DynamicEnumType=
message_extension� (2!.protobuf_unittest.ForeignMessage_
dynamic_message_extension� (2;.protobuf_unittest.TestDynamicExtensions.DynamicMessageType
repeated_extension� (	
packed_extension� (B,
DynamicMessageType

dynamic_field� ("G
DynamicEnumType
DYNAMIC_FOO�
DYNAMIC_BAR�
DYNAMIC_BAZ�"�
#TestRepeatedScalarDifferentTagSizes
repeated_fixed32 (
repeated_int32
 (
repeated_fixed64� (
repeated_int64� (
repeated_float�� (
repeated_uint64�� ("�	
TestParsingMerge;
required_all_types (2.protobuf_unittest.TestAllTypes;
optional_all_types (2.protobuf_unittest.TestAllTypes;
repeated_all_types (2.protobuf_unittest.TestAllTypesH

optionalgroup
 (
21.protobuf_unittest.TestParsingMerge.OptionalGroupH

repeatedgroup (
21.protobuf_unittest.TestParsingMerge.RepeatedGroup�
RepeatedFieldsGenerator/
field1 (2.protobuf_unittest.TestAllTypes/
field2 (2.protobuf_unittest.TestAllTypes/
field3 (2.protobuf_unittest.TestAllTypesR
group1
 (
2B.protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1R
group2 (
2B.protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2.
ext1� (2.protobuf_unittest.TestAllTypes.
ext2� (2.protobuf_unittest.TestAllTypes9
Group1/
field1 (2.protobuf_unittest.TestAllTypes9
Group2/
field1 (2.protobuf_unittest.TestAllTypesR

OptionalGroupA
optional_group_all_types (2.protobuf_unittest.TestAllTypesR

RepeatedGroupA
repeated_group_all_types (2.protobuf_unittest.TestAllTypes*	�����2[
optional_ext#.protobuf_unittest.TestParsingMerge� (2.protobuf_unittest.TestAllTypes2[
repeated_ext#.protobuf_unittest.TestParsingMerge� (2.protobuf_unittest.TestAllTypes"D
TestCommentInjectionMessage%
a (	:*/ <- Neither should this."

FooRequest"
FooResponse"
FooClientMessage"
FooServerMessage"

BarRequest"
BarResponse"�
TestJsonName
field_name1 (

fieldName2 (

FieldName3 (
_field_name4 (
FIELD_NAME5 (
field_name6 (R@type"�
TestHugeFieldNumbers
optional_int32� (
fixed_32� (
repeated_int32� (B
packed_int32� (B9

optional_enum� (2.protobuf_unittest.ForeignEnum
optional_string���� (	
optional_bytes���� (?
optional_message���� (2!.protobuf_unittest.ForeignMessageP

optionalgroup���� (
25.protobuf_unittest.TestHugeFieldNumbers.OptionalGroup[
string_string_map���� (2<.protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry
oneof_uint32���� (
HC
oneof_test_all_types���� (2.protobuf_unittest.TestAllTypesH
oneof_string���� (	H
oneof_bytes���� (H$

OptionalGroup
group_a���� (6
StringStringMapEntry
key (	
value (	:8*���B
oneof_field*@
ForeignEnum
FOREIGN_FOO
FOREIGN_BAR
FOREIGN_BAZ*K
TestEnumWithDupValue
FOO1
BAR1
BAZ
FOO2
BAR2*�
TestSparseEnum
SPARSE_A{
SPARSE_B��
SPARSE_C���
SPARSE_D������
SPARSE_E��������
SPARSE_F
SPARSE_G2�
TestServiceD
Foo.protobuf_unittest.FooRequest.protobuf_unittest.FooResponseD
Bar.protobuf_unittest.BarRequest.protobuf_unittest.BarResponse:F
optional_int32_extension$.protobuf_unittest.TestAllExtensions (:F
optional_int64_extension$.protobuf_unittest.TestAllExtensions (:G
optional_uint32_extension$.protobuf_unittest.TestAllExtensions (
:G
optional_uint64_extension$.protobuf_unittest.TestAllExtensions (:G
optional_sint32_extension$.protobuf_unittest.TestAllExtensions (:G
optional_sint64_extension$.protobuf_unittest.TestAllExtensions (:H
optional_fixed32_extension$.protobuf_unittest.TestAllExtensions (:H
optional_fixed64_extension$.protobuf_unittest.TestAllExtensions (:I
optional_sfixed32_extension$.protobuf_unittest.TestAllExtensions	 (:I
optional_sfixed64_extension$.protobuf_unittest.TestAllExtensions
 (:F
optional_float_extension$.protobuf_unittest.TestAllExtensions (:G
optional_double_extension$.protobuf_unittest.TestAllExtensions (:E
optional_bool_extension$.protobuf_unittest.TestAllExtensions
 (:G
optional_string_extension$.protobuf_unittest.TestAllExtensions (	:F
optional_bytes_extension$.protobuf_unittest.TestAllExtensions (:q
optionalgroup_extension$.protobuf_unittest.TestAllExtensions (
2*.protobuf_unittest.OptionalGroup_extension:~
!optional_nested_message_extension$.protobuf_unittest.TestAllExtensions (2-.protobuf_unittest.TestAllTypes.NestedMessage:s
"optional_foreign_message_extension$.protobuf_unittest.TestAllExtensions (2!.protobuf_unittest.ForeignMessage:x
!optional_import_message_extension$.protobuf_unittest.TestAllExtensions (2'.protobuf_unittest_import.ImportMessage:x
optional_nested_enum_extension$.protobuf_unittest.TestAllExtensions (2*.protobuf_unittest.TestAllTypes.NestedEnum:m
optional_foreign_enum_extension$.protobuf_unittest.TestAllExtensions (2.protobuf_unittest.ForeignEnum:r
optional_import_enum_extension$.protobuf_unittest.TestAllExtensions (2$.protobuf_unittest_import.ImportEnum:Q
optional_string_piece_extension$.protobuf_unittest.TestAllExtensions (	B:I
optional_cord_extension$.protobuf_unittest.TestAllExtensions (	B:�
(optional_public_import_message_extension$.protobuf_unittest.TestAllExtensions (2-.protobuf_unittest_import.PublicImportMessage:�
optional_lazy_message_extension$.protobuf_unittest.TestAllExtensions (2-.protobuf_unittest.TestAllTypes.NestedMessageB(:F
repeated_int32_extension$.protobuf_unittest.TestAllExtensions (:F
repeated_int64_extension$.protobuf_unittest.TestAllExtensions  (:G
repeated_uint32_extension$.protobuf_unittest.TestAllExtensions! (
:G
repeated_uint64_extension$.protobuf_unittest.TestAllExtensions" (:G
repeated_sint32_extension$.protobuf_unittest.TestAllExtensions# (:G
repeated_sint64_extension$.protobuf_unittest.TestAllExtensions$ (:H
repeated_fixed32_extension$.protobuf_unittest.TestAllExtensions% (:H
repeated_fixed64_extension$.protobuf_unittest.TestAllExtensions& (:I
repeated_sfixed32_extension$.protobuf_unittest.TestAllExtensions' (:I
repeated_sfixed64_extension$.protobuf_unittest.TestAllExtensions( (:F
repeated_float_extension$.protobuf_unittest.TestAllExtensions) (:G
repeated_double_extension$.protobuf_unittest.TestAllExtensions* (:E
repeated_bool_extension$.protobuf_unittest.TestAllExtensions+ (:G
repeated_string_extension$.protobuf_unittest.TestAllExtensions, (	:F
repeated_bytes_extension$.protobuf_unittest.TestAllExtensions- (:q
repeatedgroup_extension$.protobuf_unittest.TestAllExtensions. (
2*.protobuf_unittest.RepeatedGroup_extension:~
!repeated_nested_message_extension$.protobuf_unittest.TestAllExtensions0 (2-.protobuf_unittest.TestAllTypes.NestedMessage:s
"repeated_foreign_message_extension$.protobuf_unittest.TestAllExtensions1 (2!.protobuf_unittest.ForeignMessage:x
!repeated_import_message_extension$.protobuf_unittest.TestAllExtensions2 (2'.protobuf_unittest_import.ImportMessage:x
repeated_nested_enum_extension$.protobuf_unittest.TestAllExtensions3 (2*.protobuf_unittest.TestAllTypes.NestedEnum:m
repeated_foreign_enum_extension$.protobuf_unittest.TestAllExtensions4 (2.protobuf_unittest.ForeignEnum:r
repeated_import_enum_extension$.protobuf_unittest.TestAllExtensions5 (2$.protobuf_unittest_import.ImportEnum:Q
repeated_string_piece_extension$.protobuf_unittest.TestAllExtensions6 (	B:I
repeated_cord_extension$.protobuf_unittest.TestAllExtensions7 (	B:�
repeated_lazy_message_extension$.protobuf_unittest.TestAllExtensions9 (2-.protobuf_unittest.TestAllTypes.NestedMessageB(:I
default_int32_extension$.protobuf_unittest.TestAllExtensions= (:41:I
default_int64_extension$.protobuf_unittest.TestAllExtensions> (:42:J
default_uint32_extension$.protobuf_unittest.TestAllExtensions? (
:43:J
default_uint64_extension$.protobuf_unittest.TestAllExtensions@ (:44:K
default_sint32_extension$.protobuf_unittest.TestAllExtensionsA (:-45:J
default_sint64_extension$.protobuf_unittest.TestAllExtensionsB (:46:K
default_fixed32_extension$.protobuf_unittest.TestAllExtensionsC (:47:K
default_fixed64_extension$.protobuf_unittest.TestAllExtensionsD (:48:L
default_sfixed32_extension$.protobuf_unittest.TestAllExtensionsE (:49:M
default_sfixed64_extension$.protobuf_unittest.TestAllExtensionsF (:-50:K
default_float_extension$.protobuf_unittest.TestAllExtensionsG (:51.5:M
default_double_extension$.protobuf_unittest.TestAllExtensionsH (:52000:J
default_bool_extension$.protobuf_unittest.TestAllExtensionsI (:true:M
default_string_extension$.protobuf_unittest.TestAllExtensionsJ (	:hello:L
default_bytes_extension$.protobuf_unittest.TestAllExtensionsK (:world:|
default_nested_enum_extension$.protobuf_unittest.TestAllExtensionsQ (2*.protobuf_unittest.TestAllTypes.NestedEnum:BAR:y
default_foreign_enum_extension$.protobuf_unittest.TestAllExtensionsR (2.protobuf_unittest.ForeignEnum:FOREIGN_BAR:}
default_import_enum_extension$.protobuf_unittest.TestAllExtensionsS (2$.protobuf_unittest_import.ImportEnum:
IMPORT_BAR:U
default_string_piece_extension$.protobuf_unittest.TestAllExtensionsT (	:abcB:M
default_cord_extension$.protobuf_unittest.TestAllExtensionsU (	:123B:D
oneof_uint32_extension$.protobuf_unittest.TestAllExtensionso (
:{
oneof_nested_message_extension$.protobuf_unittest.TestAllExtensionsp (2-.protobuf_unittest.TestAllTypes.NestedMessage:D
oneof_string_extension$.protobuf_unittest.TestAllExtensionsq (	:C
oneof_bytes_extension$.protobuf_unittest.TestAllExtensionsr (:B
my_extension_string%.protobuf_unittest.TestFieldOrderings2 (	:?
my_extension_int%.protobuf_unittest.TestFieldOrderings (:K
packed_int32_extension'.protobuf_unittest.TestPackedExtensionsZ (B:K
packed_int64_extension'.protobuf_unittest.TestPackedExtensions[ (B:L
packed_uint32_extension'.protobuf_unittest.TestPackedExtensions\ (
B:L
packed_uint64_extension'.protobuf_unittest.TestPackedExtensions] (B:L
packed_sint32_extension'.protobuf_unittest.TestPackedExtensions^ (B:L
packed_sint64_extension'.protobuf_unittest.TestPackedExtensions_ (B:M
packed_fixed32_extension'.protobuf_unittest.TestPackedExtensions` (B:M
packed_fixed64_extension'.protobuf_unittest.TestPackedExtensionsa (B:N
packed_sfixed32_extension'.protobuf_unittest.TestPackedExtensionsb (B:N
packed_sfixed64_extension'.protobuf_unittest.TestPackedExtensionsc (B:K
packed_float_extension'.protobuf_unittest.TestPackedExtensionsd (B:L
packed_double_extension'.protobuf_unittest.TestPackedExtensionse (B:J
packed_bool_extension'.protobuf_unittest.TestPackedExtensionsf (B:j
packed_enum_extension'.protobuf_unittest.TestPackedExtensionsg (2.protobuf_unittest.ForeignEnumB:O
unpacked_int32_extension).protobuf_unittest.TestUnpackedExtensionsZ (B:O
unpacked_int64_extension).protobuf_unittest.TestUnpackedExtensions[ (B:P
unpacked_uint32_extension).protobuf_unittest.TestUnpackedExtensions\ (
B:P
unpacked_uint64_extension).protobuf_unittest.TestUnpackedExtensions] (B:P
unpacked_sint32_extension).protobuf_unittest.TestUnpackedExtensions^ (B:P
unpacked_sint64_extension).protobuf_unittest.TestUnpackedExtensions_ (B:Q
unpacked_fixed32_extension).protobuf_unittest.TestUnpackedExtensions` (B:Q
unpacked_fixed64_extension).protobuf_unittest.TestUnpackedExtensionsa (B:R
unpacked_sfixed32_extension).protobuf_unittest.TestUnpackedExtensionsb (B:R
unpacked_sfixed64_extension).protobuf_unittest.TestUnpackedExtensionsc (B:O
unpacked_float_extension).protobuf_unittest.TestUnpackedExtensionsd (B:P
unpacked_double_extension).protobuf_unittest.TestUnpackedExtensionse (B:N
unpacked_bool_extension).protobuf_unittest.TestUnpackedExtensionsf (B:n
unpacked_enum_extension).protobuf_unittest.TestUnpackedExtensionsg (2.protobuf_unittest.ForeignEnumB:d
test_all_types'.protobuf_unittest.TestHugeFieldNumbers�� (2.protobuf_unittest.TestAllTypesBB
UnittestProtoH����tdependenciestForeignEnumt	full_namesprotobuf_unittest.ForeignEnumtfilenametfiletvaluestFOREIGN_FOOtindextnumberitoptionsttypetFOREIGN_BARiitFOREIGN_BAZiitcontaining_typetserialized_starti�6tserialized_endi<7tTestEnumWithDupValues&protobuf_unittest.TestEnumWithDupValuetFOO1tBAR1tBAZtFOO2tBAR2si>7i�7tTestSparseEnums protobuf_unittest.TestSparseEnumtSPARSE_Ai{tSPARSE_Bi��tSPARSE_Ci��tSPARSE_Di�tSPARSE_Ei4/��tSPARSE_FtSPARSE_Gi�7i8toptional_int32_extensions*protobuf_unittest.optional_int32_extensiontcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptional_int64_extensions*protobuf_unittest.optional_int64_extensiontoptional_uint32_extensions+protobuf_unittest.optional_uint32_extensioni
toptional_uint64_extensions+protobuf_unittest.optional_uint64_extensiontoptional_sint32_extensions+protobuf_unittest.optional_sint32_extensionitoptional_sint64_extensions+protobuf_unittest.optional_sint64_extensioniitoptional_fixed32_extensions,protobuf_unittest.optional_fixed32_extensionitoptional_fixed64_extensions,protobuf_unittest.optional_fixed64_extensioni	toptional_sfixed32_extensions-protobuf_unittest.optional_sfixed32_extensionii
toptional_sfixed64_extensions-protobuf_unittest.optional_sfixed64_extensioniitoptional_float_extensions*protobuf_unittest.optional_float_extensionitoptional_double_extensions+protobuf_unittest.optional_double_extensiontoptional_bool_extensions)protobuf_unittest.optional_bool_extensionitoptional_string_extensions+protobuf_unittest.optional_string_extensionRsutf-8toptional_bytes_extensions*protobuf_unittest.optional_bytes_extensiontoptionalgroup_extensions)protobuf_unittest.optionalgroup_extensiont!optional_nested_message_extensions3protobuf_unittest.optional_nested_message_extensionit"optional_foreign_message_extensions4protobuf_unittest.optional_foreign_message_extensionit!optional_import_message_extensions3protobuf_unittest.optional_import_message_extensionitoptional_nested_enum_extensions0protobuf_unittest.optional_nested_enum_extensionitoptional_foreign_enum_extensions1protobuf_unittest.optional_foreign_enum_extensionitoptional_import_enum_extensions0protobuf_unittest.optional_import_enum_extensionitoptional_string_piece_extensions1protobuf_unittest.optional_string_piece_extensionsitoptional_cord_extensions)protobuf_unittest.optional_cord_extensionsit(optional_public_import_message_extensions:protobuf_unittest.optional_public_import_message_extensionitoptional_lazy_message_extensions1protobuf_unittest.optional_lazy_message_extensions(itrepeated_int32_extensions*protobuf_unittest.repeated_int32_extensioni trepeated_int64_extensions*protobuf_unittest.repeated_int64_extensioni!trepeated_uint32_extensions+protobuf_unittest.repeated_uint32_extensionii"trepeated_uint64_extensions+protobuf_unittest.repeated_uint64_extensionii#trepeated_sint32_extensions+protobuf_unittest.repeated_sint32_extensionii$trepeated_sint64_extensions+protobuf_unittest.repeated_sint64_extensioni%trepeated_fixed32_extensions,protobuf_unittest.repeated_fixed32_extensioni&trepeated_fixed64_extensions,protobuf_unittest.repeated_fixed64_extensioni'trepeated_sfixed32_extensions-protobuf_unittest.repeated_sfixed32_extensioni(trepeated_sfixed64_extensions-protobuf_unittest.repeated_sfixed64_extensioni)trepeated_float_extensions*protobuf_unittest.repeated_float_extensioni*trepeated_double_extensions+protobuf_unittest.repeated_double_extensioni+trepeated_bool_extensions)protobuf_unittest.repeated_bool_extensioni,trepeated_string_extensions+protobuf_unittest.repeated_string_extensioni-trepeated_bytes_extensions*protobuf_unittest.repeated_bytes_extensioni.trepeatedgroup_extensions)protobuf_unittest.repeatedgroup_extensioni0t!repeated_nested_message_extensions3protobuf_unittest.repeated_nested_message_extensioni1t"repeated_foreign_message_extensions4protobuf_unittest.repeated_foreign_message_extensioni2t!repeated_import_message_extensions3protobuf_unittest.repeated_import_message_extensioni3trepeated_nested_enum_extensions0protobuf_unittest.repeated_nested_enum_extensioni4trepeated_foreign_enum_extensions1protobuf_unittest.repeated_foreign_enum_extensioni5trepeated_import_enum_extensions0protobuf_unittest.repeated_import_enum_extensioni/i6trepeated_string_piece_extensions1protobuf_unittest.repeated_string_piece_extensioni7trepeated_cord_extensions)protobuf_unittest.repeated_cord_extensioni9trepeated_lazy_message_extensions1protobuf_unittest.repeated_lazy_message_extensioni=tdefault_int32_extensions)protobuf_unittest.default_int32_extensioni>tdefault_int64_extensions)protobuf_unittest.default_int64_extensioni?tdefault_uint32_extensions*protobuf_unittest.default_uint32_extensioni@tdefault_uint64_extensions*protobuf_unittest.default_uint64_extensioniAtdefault_sint32_extensions*protobuf_unittest.default_sint32_extensioni���iBtdefault_sint64_extensions*protobuf_unittest.default_sint64_extensioni8iCtdefault_fixed32_extensions+protobuf_unittest.default_fixed32_extensioniDtdefault_fixed64_extensions+protobuf_unittest.default_fixed64_extensioni:iEtdefault_sfixed32_extensions,protobuf_unittest.default_sfixed32_extensioni;iFtdefault_sfixed64_extensions,protobuf_unittest.default_sfixed64_extensioni<i���iGtdefault_float_extensions)protobuf_unittest.default_float_extensiong�I@iHtdefault_double_extensions*protobuf_unittest.default_double_extensioni �iItdefault_bool_extensions(protobuf_unittest.default_bool_extensioniJtdefault_string_extensions*protobuf_unittest.default_string_extensionthelloiKtdefault_bytes_extensions)protobuf_unittest.default_bytes_extensiontworldiQtdefault_nested_enum_extensions/protobuf_unittest.default_nested_enum_extensioniRtdefault_foreign_enum_extensions0protobuf_unittest.default_foreign_enum_extensioniStdefault_import_enum_extensions/protobuf_unittest.default_import_enum_extensioniTtdefault_string_piece_extensions0protobuf_unittest.default_string_piece_extensiontabciUtdefault_cord_extensions(protobuf_unittest.default_cord_extensiont123iotoneof_uint32_extensions(protobuf_unittest.oneof_uint32_extensioniptoneof_nested_message_extensions0protobuf_unittest.oneof_nested_message_extensioniqtoneof_string_extensions(protobuf_unittest.oneof_string_extensionirtoneof_bytes_extensions'protobuf_unittest.oneof_bytes_extensiontmy_extension_strings%protobuf_unittest.my_extension_stringtmy_extension_ints"protobuf_unittest.my_extension_intiLiZtpacked_int32_extensions(protobuf_unittest.packed_int32_extensioniMi[tpacked_int64_extensions(protobuf_unittest.packed_int64_extensioniNi\tpacked_uint32_extensions)protobuf_unittest.packed_uint32_extensioniOi]tpacked_uint64_extensions)protobuf_unittest.packed_uint64_extensioniPi^tpacked_sint32_extensions)protobuf_unittest.packed_sint32_extensioni_tpacked_sint64_extensions)protobuf_unittest.packed_sint64_extensioni`tpacked_fixed32_extensions*protobuf_unittest.packed_fixed32_extensioniatpacked_fixed64_extensions*protobuf_unittest.packed_fixed64_extensionibtpacked_sfixed32_extensions+protobuf_unittest.packed_sfixed32_extensionictpacked_sfixed64_extensions+protobuf_unittest.packed_sfixed64_extensioniVidtpacked_float_extensions(protobuf_unittest.packed_float_extensioniWietpacked_double_extensions)protobuf_unittest.packed_double_extensioniXiftpacked_bool_extensions'protobuf_unittest.packed_bool_extensioniYigtpacked_enum_extensions'protobuf_unittest.packed_enum_extensiontunpacked_int32_extensions*protobuf_unittest.unpacked_int32_extensionstunpacked_int64_extensions*protobuf_unittest.unpacked_int64_extensiontunpacked_uint32_extensions+protobuf_unittest.unpacked_uint32_extensiontunpacked_uint64_extensions+protobuf_unittest.unpacked_uint64_extensiontunpacked_sint32_extensions+protobuf_unittest.unpacked_sint32_extensiontunpacked_sint64_extensions+protobuf_unittest.unpacked_sint64_extensiontunpacked_fixed32_extensions,protobuf_unittest.unpacked_fixed32_extensiontunpacked_fixed64_extensions,protobuf_unittest.unpacked_fixed64_extensiontunpacked_sfixed32_extensions-protobuf_unittest.unpacked_sfixed32_extensiontunpacked_sfixed64_extensions-protobuf_unittest.unpacked_sfixed64_extensiontunpacked_float_extensions*protobuf_unittest.unpacked_float_extensiontunpacked_double_extensions+protobuf_unittest.unpacked_double_extensiontunpacked_bool_extensions)protobuf_unittest.unpacked_bool_extensiontunpacked_enum_extensions)protobuf_unittest.unpacked_enum_extensionihi`�ttest_all_typess protobuf_unittest.test_all_typesiit
NestedEnums)protobuf_unittest.TestAllTypes.NestedEnumtFOOtBARtNEGi�i�s'protobuf_unittest.TestOneof2.NestedEnumi�tDynamicEnumTypes7protobuf_unittest.TestDynamicExtensions.DynamicEnumTypetDYNAMIC_FOOi�tDYNAMIC_BARi�tDYNAMIC_BAZi�i�,i-t
NestedMessages,protobuf_unittest.TestAllTypes.NestedMessagetfieldstbbs/protobuf_unittest.TestAllTypes.NestedMessage.bbt
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi-iHt
OptionalGroups,protobuf_unittest.TestAllTypes.OptionalGrouptas.protobuf_unittest.TestAllTypes.OptionalGroup.aiJidt
RepeatedGroups,protobuf_unittest.TestAllTypes.RepeatedGroups.protobuf_unittest.TestAllTypes.RepeatedGroup.aifi�tTestAllTypessprotobuf_unittest.TestAllTypestoptional_int32s-protobuf_unittest.TestAllTypes.optional_int32toptional_int64s-protobuf_unittest.TestAllTypes.optional_int64toptional_uint32s.protobuf_unittest.TestAllTypes.optional_uint32toptional_uint64s.protobuf_unittest.TestAllTypes.optional_uint64toptional_sint32s.protobuf_unittest.TestAllTypes.optional_sint32toptional_sint64s.protobuf_unittest.TestAllTypes.optional_sint64toptional_fixed32s/protobuf_unittest.TestAllTypes.optional_fixed32toptional_fixed64s/protobuf_unittest.TestAllTypes.optional_fixed64toptional_sfixed32s0protobuf_unittest.TestAllTypes.optional_sfixed32toptional_sfixed64s0protobuf_unittest.TestAllTypes.optional_sfixed64toptional_floats-protobuf_unittest.TestAllTypes.optional_floattoptional_doubles.protobuf_unittest.TestAllTypes.optional_doublet
optional_bools,protobuf_unittest.TestAllTypes.optional_booltoptional_strings.protobuf_unittest.TestAllTypes.optional_stringtoptional_bytess-protobuf_unittest.TestAllTypes.optional_bytest
optionalgroups,protobuf_unittest.TestAllTypes.optionalgrouptoptional_nested_messages6protobuf_unittest.TestAllTypes.optional_nested_messagetoptional_foreign_messages7protobuf_unittest.TestAllTypes.optional_foreign_messagetoptional_import_messages6protobuf_unittest.TestAllTypes.optional_import_messagetoptional_nested_enums3protobuf_unittest.TestAllTypes.optional_nested_enumtoptional_foreign_enums4protobuf_unittest.TestAllTypes.optional_foreign_enumtoptional_import_enums3protobuf_unittest.TestAllTypes.optional_import_enumtoptional_string_pieces4protobuf_unittest.TestAllTypes.optional_string_piecet
optional_cords,protobuf_unittest.TestAllTypes.optional_cordtoptional_public_import_messages=protobuf_unittest.TestAllTypes.optional_public_import_messagetoptional_lazy_messages4protobuf_unittest.TestAllTypes.optional_lazy_messagetrepeated_int32s-protobuf_unittest.TestAllTypes.repeated_int32trepeated_int64s-protobuf_unittest.TestAllTypes.repeated_int64trepeated_uint32s.protobuf_unittest.TestAllTypes.repeated_uint32trepeated_uint64s.protobuf_unittest.TestAllTypes.repeated_uint64trepeated_sint32s.protobuf_unittest.TestAllTypes.repeated_sint32trepeated_sint64s.protobuf_unittest.TestAllTypes.repeated_sint64trepeated_fixed32s/protobuf_unittest.TestAllTypes.repeated_fixed32trepeated_fixed64s/protobuf_unittest.TestAllTypes.repeated_fixed64trepeated_sfixed32s0protobuf_unittest.TestAllTypes.repeated_sfixed32trepeated_sfixed64s0protobuf_unittest.TestAllTypes.repeated_sfixed64trepeated_floats-protobuf_unittest.TestAllTypes.repeated_floattrepeated_doubles.protobuf_unittest.TestAllTypes.repeated_doublet
repeated_bools,protobuf_unittest.TestAllTypes.repeated_booltrepeated_strings.protobuf_unittest.TestAllTypes.repeated_stringtrepeated_bytess-protobuf_unittest.TestAllTypes.repeated_bytest
repeatedgroups,protobuf_unittest.TestAllTypes.repeatedgrouptrepeated_nested_messages6protobuf_unittest.TestAllTypes.repeated_nested_messagetrepeated_foreign_messages7protobuf_unittest.TestAllTypes.repeated_foreign_messagetrepeated_import_messages6protobuf_unittest.TestAllTypes.repeated_import_messagetrepeated_nested_enums3protobuf_unittest.TestAllTypes.repeated_nested_enumtrepeated_foreign_enums4protobuf_unittest.TestAllTypes.repeated_foreign_enumtrepeated_import_enums3protobuf_unittest.TestAllTypes.repeated_import_enumtrepeated_string_pieces4protobuf_unittest.TestAllTypes.repeated_string_piecet
repeated_cords,protobuf_unittest.TestAllTypes.repeated_cordtrepeated_lazy_messages4protobuf_unittest.TestAllTypes.repeated_lazy_messaget
default_int32s,protobuf_unittest.TestAllTypes.default_int32t
default_int64s,protobuf_unittest.TestAllTypes.default_int64tdefault_uint32s-protobuf_unittest.TestAllTypes.default_uint32tdefault_uint64s-protobuf_unittest.TestAllTypes.default_uint64tdefault_sint32s-protobuf_unittest.TestAllTypes.default_sint32tdefault_sint64s-protobuf_unittest.TestAllTypes.default_sint64tdefault_fixed32s.protobuf_unittest.TestAllTypes.default_fixed32tdefault_fixed64s.protobuf_unittest.TestAllTypes.default_fixed64tdefault_sfixed32s/protobuf_unittest.TestAllTypes.default_sfixed32tdefault_sfixed64s/protobuf_unittest.TestAllTypes.default_sfixed64t
default_floats,protobuf_unittest.TestAllTypes.default_floattdefault_doubles-protobuf_unittest.TestAllTypes.default_doubletdefault_bools+protobuf_unittest.TestAllTypes.default_booltdefault_strings-protobuf_unittest.TestAllTypes.default_stringt
default_bytess,protobuf_unittest.TestAllTypes.default_bytestdefault_nested_enums2protobuf_unittest.TestAllTypes.default_nested_enumtdefault_foreign_enums3protobuf_unittest.TestAllTypes.default_foreign_enumtdefault_import_enums2protobuf_unittest.TestAllTypes.default_import_enumtdefault_string_pieces3protobuf_unittest.TestAllTypes.default_string_piecetdefault_cords+protobuf_unittest.TestAllTypes.default_cordtoneof_uint32s+protobuf_unittest.TestAllTypes.oneof_uint32toneof_nested_messages3protobuf_unittest.TestAllTypes.oneof_nested_messagetoneof_strings+protobuf_unittest.TestAllTypes.oneof_stringtoneof_bytess*protobuf_unittest.TestAllTypes.oneof_bytestoneof_fields*protobuf_unittest.TestAllTypes.oneof_fieldi�tNestedTestAllTypess$protobuf_unittest.NestedTestAllTypestchilds*protobuf_unittest.NestedTestAllTypes.childtpayloads,protobuf_unittest.NestedTestAllTypes.payloadtrepeated_childs3protobuf_unittest.NestedTestAllTypes.repeated_childi�i�
tTestDeprecatedFieldss&protobuf_unittest.TestDeprecatedFieldstdeprecated_int32s7protobuf_unittest.TestDeprecatedFields.deprecated_int32si�
i�
tTestDeprecatedMessages'protobuf_unittest.TestDeprecatedMessagei�
i�
tForeignMessages protobuf_unittest.ForeignMessagetcs"protobuf_unittest.ForeignMessage.ctds"protobuf_unittest.ForeignMessage.di�
itTestReservedFieldss$protobuf_unittest.TestReservedFieldsii5tTestAllExtensionss#protobuf_unittest.TestAllExtensionsi i7iTtOptionalGroup_extensions)protobuf_unittest.OptionalGroup_extensions+protobuf_unittest.OptionalGroup_extension.aiViztRepeatedGroup_extensions)protobuf_unittest.RepeatedGroup_extensions+protobuf_unittest.RepeatedGroup_extension.ai|i�tTestNestedExtensions%protobuf_unittest.TestNestedExtensionttests*protobuf_unittest.TestNestedExtension.testi�tnested_string_extensions=protobuf_unittest.TestNestedExtension.nested_string_extensioni�i�i;tTestRequiredsprotobuf_unittest.TestRequireds protobuf_unittest.TestRequired.atdummy2s%protobuf_unittest.TestRequired.dummy2tbs protobuf_unittest.TestRequired.btdummy4s%protobuf_unittest.TestRequired.dummy4tdummy5s%protobuf_unittest.TestRequired.dummy5tdummy6s%protobuf_unittest.TestRequired.dummy6tdummy7s%protobuf_unittest.TestRequired.dummy7tdummy8s%protobuf_unittest.TestRequired.dummy8tdummy9s%protobuf_unittest.TestRequired.dummy9tdummy10s&protobuf_unittest.TestRequired.dummy10tdummy11s&protobuf_unittest.TestRequired.dummy11tdummy12s&protobuf_unittest.TestRequired.dummy12tdummy13s&protobuf_unittest.TestRequired.dummy13tdummy14s&protobuf_unittest.TestRequired.dummy14tdummy15s&protobuf_unittest.TestRequired.dummy15tdummy16s&protobuf_unittest.TestRequired.dummy16tdummy17s&protobuf_unittest.TestRequired.dummy17tdummy18s&protobuf_unittest.TestRequired.dummy18tdummy19s&protobuf_unittest.TestRequired.dummy19tdummy20s&protobuf_unittest.TestRequired.dummy20tdummy21s&protobuf_unittest.TestRequired.dummy21tdummy22s&protobuf_unittest.TestRequired.dummy22tdummy23s&protobuf_unittest.TestRequired.dummy23tdummy24s&protobuf_unittest.TestRequired.dummy24tdummy25s&protobuf_unittest.TestRequired.dummy25tdummy26s&protobuf_unittest.TestRequired.dummy26tdummy27s&protobuf_unittest.TestRequired.dummy27tdummy28s&protobuf_unittest.TestRequired.dummy28tdummy29s&protobuf_unittest.TestRequired.dummy29tdummy30s&protobuf_unittest.TestRequired.dummy30tdummy31s&protobuf_unittest.TestRequired.dummy31tdummy32s&protobuf_unittest.TestRequired.dummy32s protobuf_unittest.TestRequired.ctsingles%protobuf_unittest.TestRequired.singlei�tmultis$protobuf_unittest.TestRequired.multii�i>itTestRequiredForeigns%protobuf_unittest.TestRequiredForeigntoptional_messages6protobuf_unittest.TestRequiredForeign.optional_messagetrepeated_messages6protobuf_unittest.TestRequiredForeign.repeated_messagetdummys+protobuf_unittest.TestRequiredForeign.dummyii�tTestRequiredMessages%protobuf_unittest.TestRequiredMessages6protobuf_unittest.TestRequiredMessage.optional_messages6protobuf_unittest.TestRequiredMessage.repeated_messagetrequired_messages6protobuf_unittest.TestRequiredMessage.required_messagei�iytTestForeignNesteds#protobuf_unittest.TestForeignNestedtforeign_nesteds2protobuf_unittest.TestForeignNested.foreign_nestedi{i�tTestEmptyMessages"protobuf_unittest.TestEmptyMessagei�i�tTestEmptyMessageWithExtensionss0protobuf_unittest.TestEmptyMessageWithExtensionsi�itTestMultipleExtensionRangess-protobuf_unittest.TestMultipleExtensionRangesi/i�iiiNtTestReallyLargeTagNumbers*protobuf_unittest.TestReallyLargeTagNumbers,protobuf_unittest.TestReallyLargeTagNumber.as-protobuf_unittest.TestReallyLargeTagNumber.bbi���iPi�tTestRecursiveMessages&protobuf_unittest.TestRecursiveMessages(protobuf_unittest.TestRecursiveMessage.atis(protobuf_unittest.TestRecursiveMessage.ii�i�t
SubMessages1protobuf_unittest.TestMutualRecursionA.SubMessages3protobuf_unittest.TestMutualRecursionA.SubMessage.bioi�tSubGroups/protobuf_unittest.TestMutualRecursionA.SubGrouptsub_messages;protobuf_unittest.TestMutualRecursionA.SubGroup.sub_messagetnot_in_this_sccs?protobuf_unittest.TestMutualRecursionA.SubGroup.not_in_this_scci�i?tTestMutualRecursionAs&protobuf_unittest.TestMutualRecursionAs)protobuf_unittest.TestMutualRecursionA.bbtsubgroups/protobuf_unittest.TestMutualRecursionA.subgroupi�tTestMutualRecursionBs&protobuf_unittest.TestMutualRecursionBs(protobuf_unittest.TestMutualRecursionB.as5protobuf_unittest.TestMutualRecursionB.optional_int32iAi�s7protobuf_unittest.TestIsInitialized.SubMessage.SubGroups9protobuf_unittest.TestIsInitialized.SubMessage.SubGroup.ii[ips.protobuf_unittest.TestIsInitialized.SubMessages7protobuf_unittest.TestIsInitialized.SubMessage.subgroupitTestIsInitializeds#protobuf_unittest.TestIsInitializeds/protobuf_unittest.TestIsInitialized.sub_messagei�tFoos(protobuf_unittest.TestDupFieldNumber.Foos*protobuf_unittest.TestDupFieldNumber.Foo.aiitBars(protobuf_unittest.TestDupFieldNumber.Bars*protobuf_unittest.TestDupFieldNumber.Bar.aii&tTestDupFieldNumbers$protobuf_unittest.TestDupFieldNumbers&protobuf_unittest.TestDupFieldNumber.atfoos(protobuf_unittest.TestDupFieldNumber.footbars(protobuf_unittest.TestDupFieldNumber.baristTestEagerMessages"protobuf_unittest.TestEagerMessages.protobuf_unittest.TestEagerMessage.sub_messages(i(ittTestLazyMessages!protobuf_unittest.TestLazyMessages-protobuf_unittest.TestLazyMessage.sub_messageivi�s8protobuf_unittest.TestNestedMessageHasBits.NestedMessagetnestedmessage_repeated_int32sUprotobuf_unittest.TestNestedMessageHasBits.NestedMessage.nestedmessage_repeated_int32t%nestedmessage_repeated_foreignmessages^protobuf_unittest.TestNestedMessageHasBits.NestedMessage.nestedmessage_repeated_foreignmessagei=i�tTestNestedMessageHasBitss*protobuf_unittest.TestNestedMessageHasBitssBprotobuf_unittest.TestNestedMessageHasBits.optional_nested_messagei�tTestCamelCaseFieldNamess)protobuf_unittest.TestCamelCaseFieldNamestPrimitiveFields8protobuf_unittest.TestCamelCaseFieldNames.PrimitiveFieldtStringFields5protobuf_unittest.TestCamelCaseFieldNames.StringFieldt	EnumFields3protobuf_unittest.TestCamelCaseFieldNames.EnumFieldtMessageFields6protobuf_unittest.TestCamelCaseFieldNames.MessageFieldtStringPieceFields:protobuf_unittest.TestCamelCaseFieldNames.StringPieceFieldt	CordFields3protobuf_unittest.TestCamelCaseFieldNames.CordFieldtRepeatedPrimitiveFields@protobuf_unittest.TestCamelCaseFieldNames.RepeatedPrimitiveFieldtRepeatedStringFields=protobuf_unittest.TestCamelCaseFieldNames.RepeatedStringFieldtRepeatedEnumFields;protobuf_unittest.TestCamelCaseFieldNames.RepeatedEnumFieldtRepeatedMessageFields>protobuf_unittest.TestCamelCaseFieldNames.RepeatedMessageFieldtRepeatedStringPieceFieldsBprotobuf_unittest.TestCamelCaseFieldNames.RepeatedStringPieceFieldtRepeatedCordFields;protobuf_unittest.TestCamelCaseFieldNames.RepeatedCordFieldi�i�s2protobuf_unittest.TestFieldOrderings.NestedMessagetoos5protobuf_unittest.TestFieldOrderings.NestedMessage.oos5protobuf_unittest.TestFieldOrderings.NestedMessage.bbiQixtTestFieldOrderingss$protobuf_unittest.TestFieldOrderingst	my_strings.protobuf_unittest.TestFieldOrderings.my_stringtmy_ints+protobuf_unittest.TestFieldOrderings.my_inttmy_floats-protobuf_unittest.TestFieldOrderings.my_floats<protobuf_unittest.TestFieldOrderings.optional_nested_messagei�i�i�tTestExtremeDefaultValuess*protobuf_unittest.TestExtremeDefaultValuest
escaped_bytess8protobuf_unittest.TestExtremeDefaultValues.escaped_bytess


	\'"�tlarge_uint32s7protobuf_unittest.TestExtremeDefaultValues.large_uint32l��tlarge_uint64s7protobuf_unittest.TestExtremeDefaultValues.large_uint64l����tsmall_int32s6protobuf_unittest.TestExtremeDefaultValues.small_int32i�tsmall_int64s6protobuf_unittest.TestExtremeDefaultValues.small_int64l��������treally_small_int32s=protobuf_unittest.TestExtremeDefaultValues.really_small_int32i�treally_small_int64s=protobuf_unittest.TestExtremeDefaultValues.really_small_int64l����tutf8_strings6protobuf_unittest.TestExtremeDefaultValues.utf8_stringsሴt
zero_floats5protobuf_unittest.TestExtremeDefaultValues.zero_floatt	one_floats4protobuf_unittest.TestExtremeDefaultValues.one_floattsmall_floats6protobuf_unittest.TestExtremeDefaultValues.small_floatg�?tnegative_one_floats=protobuf_unittest.TestExtremeDefaultValues.negative_one_floattnegative_floats9protobuf_unittest.TestExtremeDefaultValues.negative_floatg��tlarge_floats6protobuf_unittest.TestExtremeDefaultValues.large_floatg�קAtsmall_negative_floats?protobuf_unittest.TestExtremeDefaultValues.small_negative_floatg`P���O�t
inf_doubles5protobuf_unittest.TestExtremeDefaultValues.inf_doubleg�tneg_inf_doubles9protobuf_unittest.TestExtremeDefaultValues.neg_inf_doubleg�t
nan_doubles5protobuf_unittest.TestExtremeDefaultValues.nan_doublet	inf_floats4protobuf_unittest.TestExtremeDefaultValues.inf_floatt
neg_inf_floats8protobuf_unittest.TestExtremeDefaultValues.neg_inf_floatt	nan_floats4protobuf_unittest.TestExtremeDefaultValues.nan_floattcpp_trigraphs7protobuf_unittest.TestExtremeDefaultValues.cpp_trigraphs? ? ?? ?? ??? ??/ ??-tstring_with_zeros;protobuf_unittest.TestExtremeDefaultValues.string_with_zeroshellotbytes_with_zeros:protobuf_unittest.TestExtremeDefaultValues.bytes_with_zerosworldtstring_piece_with_zerosAprotobuf_unittest.TestExtremeDefaultValues.string_piece_with_zerosabctcord_with_zeros9protobuf_unittest.TestExtremeDefaultValues.cord_with_zeros123treplacement_strings=protobuf_unittest.TestExtremeDefaultValues.replacement_strings
${unknown}i�i= tSparseEnumMessages#protobuf_unittest.SparseEnumMessagetsparse_enums/protobuf_unittest.SparseEnumMessage.sparse_enumi? i� t	OneStringsprotobuf_unittest.OneStringtdatas protobuf_unittest.OneString.datai� i� t
MoreStringsprotobuf_unittest.MoreStrings!protobuf_unittest.MoreString.datai� i� tOneBytessprotobuf_unittest.OneBytessprotobuf_unittest.OneBytes.datai� i� t	MoreBytessprotobuf_unittest.MoreBytess protobuf_unittest.MoreBytes.datai� i� tInt32Messagesprotobuf_unittest.Int32Messages#protobuf_unittest.Int32Message.datai� i!t
Uint32Messagesprotobuf_unittest.Uint32Messages$protobuf_unittest.Uint32Message.datai!i3!tInt64Messagesprotobuf_unittest.Int64Messages#protobuf_unittest.Int64Message.datai5!iQ!t
Uint64Messagesprotobuf_unittest.Uint64Messages$protobuf_unittest.Uint64Message.dataiS!ip!tBoolMessagesprotobuf_unittest.BoolMessages"protobuf_unittest.BoolMessage.datair!i�!tFooGroups$protobuf_unittest.TestOneof.FooGroups&protobuf_unittest.TestOneof.FooGroup.as&protobuf_unittest.TestOneof.FooGroup.bi9"iY"t	TestOneofsprotobuf_unittest.TestOneoftfoo_ints#protobuf_unittest.TestOneof.foo_intt
foo_strings&protobuf_unittest.TestOneof.foo_stringtfoo_messages'protobuf_unittest.TestOneof.foo_messagetfoogroups$protobuf_unittest.TestOneof.foogroupsprotobuf_unittest.TestOneof.fooi�!i`"s7protobuf_unittest.TestOneofBackwardsCompatible.FooGroups9protobuf_unittest.TestOneofBackwardsCompatible.FooGroup.as9protobuf_unittest.TestOneofBackwardsCompatible.FooGroup.btTestOneofBackwardsCompatibles.protobuf_unittest.TestOneofBackwardsCompatibles6protobuf_unittest.TestOneofBackwardsCompatible.foo_ints9protobuf_unittest.TestOneofBackwardsCompatible.foo_strings:protobuf_unittest.TestOneofBackwardsCompatible.foo_messages7protobuf_unittest.TestOneofBackwardsCompatible.foogroupic"iJ#s%protobuf_unittest.TestOneof2.FooGroups'protobuf_unittest.TestOneof2.FooGroup.as'protobuf_unittest.TestOneof2.FooGroup.bi�%i�%s*protobuf_unittest.TestOneof2.NestedMessagetqux_ints2protobuf_unittest.TestOneof2.NestedMessage.qux_intt	corge_ints4protobuf_unittest.TestOneof2.NestedMessage.corge_inti&i4&t
TestOneof2sprotobuf_unittest.TestOneof2s$protobuf_unittest.TestOneof2.foo_ints'protobuf_unittest.TestOneof2.foo_stringtfoo_cords%protobuf_unittest.TestOneof2.foo_cordtfoo_string_pieces-protobuf_unittest.TestOneof2.foo_string_piecet	foo_bytess&protobuf_unittest.TestOneof2.foo_bytestfoo_enums%protobuf_unittest.TestOneof2.foo_enums(protobuf_unittest.TestOneof2.foo_messages%protobuf_unittest.TestOneof2.foogrouptfoo_lazy_messages-protobuf_unittest.TestOneof2.foo_lazy_messagetbar_ints$protobuf_unittest.TestOneof2.bar_intt
bar_strings'protobuf_unittest.TestOneof2.bar_stringtSTRINGtbar_cords%protobuf_unittest.TestOneof2.bar_cordtCORDtbar_string_pieces-protobuf_unittest.TestOneof2.bar_string_piecetSPIECEt	bar_bytess&protobuf_unittest.TestOneof2.bar_bytestBYTEStbar_enums%protobuf_unittest.TestOneof2.bar_enumtbaz_ints$protobuf_unittest.TestOneof2.baz_intt
baz_strings'protobuf_unittest.TestOneof2.baz_strings protobuf_unittest.TestOneof2.foos protobuf_unittest.TestOneof2.bariM#ik&s1protobuf_unittest.TestRequiredOneof.NestedMessagetrequired_doublesAprotobuf_unittest.TestRequiredOneof.NestedMessage.required_doublei�&i'tTestRequiredOneofs#protobuf_unittest.TestRequiredOneofs+protobuf_unittest.TestRequiredOneof.foo_ints.protobuf_unittest.TestRequiredOneof.foo_strings/protobuf_unittest.TestRequiredOneof.foo_messages'protobuf_unittest.TestRequiredOneof.fooin&i&'tTestPackedTypess!protobuf_unittest.TestPackedTypestpacked_int32s.protobuf_unittest.TestPackedTypes.packed_int32tpacked_int64s.protobuf_unittest.TestPackedTypes.packed_int64t
packed_uint32s/protobuf_unittest.TestPackedTypes.packed_uint32t
packed_uint64s/protobuf_unittest.TestPackedTypes.packed_uint64t
packed_sint32s/protobuf_unittest.TestPackedTypes.packed_sint32t
packed_sint64s/protobuf_unittest.TestPackedTypes.packed_sint64tpacked_fixed32s0protobuf_unittest.TestPackedTypes.packed_fixed32tpacked_fixed64s0protobuf_unittest.TestPackedTypes.packed_fixed64tpacked_sfixed32s1protobuf_unittest.TestPackedTypes.packed_sfixed32tpacked_sfixed64s1protobuf_unittest.TestPackedTypes.packed_sfixed64tpacked_floats.protobuf_unittest.TestPackedTypes.packed_floatt
packed_doubles/protobuf_unittest.TestPackedTypes.packed_doubletpacked_bools-protobuf_unittest.TestPackedTypes.packed_booltpacked_enums-protobuf_unittest.TestPackedTypes.packed_enumi)'i�(tTestUnpackedTypess#protobuf_unittest.TestUnpackedTypestunpacked_int32s2protobuf_unittest.TestUnpackedTypes.unpacked_int32tunpacked_int64s2protobuf_unittest.TestUnpackedTypes.unpacked_int64tunpacked_uint32s3protobuf_unittest.TestUnpackedTypes.unpacked_uint32tunpacked_uint64s3protobuf_unittest.TestUnpackedTypes.unpacked_uint64tunpacked_sint32s3protobuf_unittest.TestUnpackedTypes.unpacked_sint32tunpacked_sint64s3protobuf_unittest.TestUnpackedTypes.unpacked_sint64tunpacked_fixed32s4protobuf_unittest.TestUnpackedTypes.unpacked_fixed32tunpacked_fixed64s4protobuf_unittest.TestUnpackedTypes.unpacked_fixed64tunpacked_sfixed32s5protobuf_unittest.TestUnpackedTypes.unpacked_sfixed32tunpacked_sfixed64s5protobuf_unittest.TestUnpackedTypes.unpacked_sfixed64tunpacked_floats2protobuf_unittest.TestUnpackedTypes.unpacked_floattunpacked_doubles3protobuf_unittest.TestUnpackedTypes.unpacked_doublet
unpacked_bools1protobuf_unittest.TestUnpackedTypes.unpacked_boolt
unpacked_enums1protobuf_unittest.TestUnpackedTypes.unpacked_enumi�(i�*tTestPackedExtensionss&protobuf_unittest.TestPackedExtensionsi�*i�*tTestUnpackedExtensionss(protobuf_unittest.TestUnpackedExtensionsi�*i�*tDynamicMessageTypes:protobuf_unittest.TestDynamicExtensions.DynamicMessageTypet
dynamic_fieldsHprotobuf_unittest.TestDynamicExtensions.DynamicMessageType.dynamic_fieldi4i�,i�,tTestDynamicExtensionss'protobuf_unittest.TestDynamicExtensionstscalar_extensions8protobuf_unittest.TestDynamicExtensions.scalar_extensioni�tenum_extensions6protobuf_unittest.TestDynamicExtensions.enum_extensioni�tdynamic_enum_extensions>protobuf_unittest.TestDynamicExtensions.dynamic_enum_extensioni�tmessage_extensions9protobuf_unittest.TestDynamicExtensions.message_extensioni�tdynamic_message_extensionsAprotobuf_unittest.TestDynamicExtensions.dynamic_message_extensioni�trepeated_extensions:protobuf_unittest.TestDynamicExtensions.repeated_extensioni�tpacked_extensions8protobuf_unittest.TestDynamicExtensions.packed_extensioni�i�*t#TestRepeatedScalarDifferentTagSizess5protobuf_unittest.TestRepeatedScalarDifferentTagSizessFprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_fixed32sDprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_int32sFprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_fixed64i�sDprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_int64i�sDprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_floati��sEprotobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_uint64i��i-i�-tGroup1sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1tfield1sHprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1.field1i�0i1tGroup2sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2sHprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2.field1i1iP1tRepeatedFieldsGenerators:protobuf_unittest.TestParsingMerge.RepeatedFieldsGeneratorsAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.field1tfield2sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.field2tfield3sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.field3tgroup1sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.group1tgroup2sAprotobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.group2text1s?protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.ext1text2s?protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.ext2i&/s0protobuf_unittest.TestParsingMerge.OptionalGrouptoptional_group_all_typessIprotobuf_unittest.TestParsingMerge.OptionalGroup.optional_group_all_typesiR1i�1s0protobuf_unittest.TestParsingMerge.RepeatedGrouptrepeated_group_all_typessIprotobuf_unittest.TestParsingMerge.RepeatedGroup.repeated_group_all_typesi�1i�1tTestParsingMerges"protobuf_unittest.TestParsingMergetrequired_all_typess5protobuf_unittest.TestParsingMerge.required_all_typestoptional_all_typess5protobuf_unittest.TestParsingMerge.optional_all_typestrepeated_all_typess5protobuf_unittest.TestParsingMerge.repeated_all_typess0protobuf_unittest.TestParsingMerge.optionalgroups0protobuf_unittest.TestParsingMerge.repeatedgrouptoptional_exts/protobuf_unittest.TestParsingMerge.optional_exttrepeated_exts/protobuf_unittest.TestParsingMerge.repeated_exti�-i�2tTestCommentInjectionMessages-protobuf_unittest.TestCommentInjectionMessages/protobuf_unittest.TestCommentInjectionMessage.as*/ <- Neither should this.i�2i3t
FooRequestsprotobuf_unittest.FooRequesti3i3tFooResponsesprotobuf_unittest.FooResponsei3i 3tFooClientMessages"protobuf_unittest.FooClientMessagei"3i43tFooServerMessages"protobuf_unittest.FooServerMessagei63iH3t
BarRequestsprotobuf_unittest.BarRequestiJ3iV3tBarResponsesprotobuf_unittest.BarResponseiX3ie3tTestJsonNamesprotobuf_unittest.TestJsonNametfield_name1s*protobuf_unittest.TestJsonName.field_name1t
fieldName2s)protobuf_unittest.TestJsonName.fieldName2t
FieldName3s)protobuf_unittest.TestJsonName.FieldName3t_field_name4s+protobuf_unittest.TestJsonName._field_name4tFIELD_NAME5s*protobuf_unittest.TestJsonName.FIELD_NAME5tfield_name6s*protobuf_unittest.TestJsonName.field_name6t	json_names@typeih3i�3s4protobuf_unittest.TestHugeFieldNumbers.OptionalGrouptgroup_as<protobuf_unittest.TestHugeFieldNumbers.OptionalGroup.group_aiy��i�6i�6tStringStringMapEntrys;protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntrytkeys?protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry.keytvaluesAprotobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry.values8i�6i�6tTestHugeFieldNumberss&protobuf_unittest.TestHugeFieldNumberss5protobuf_unittest.TestHugeFieldNumbers.optional_int32ip��tfixed_32s/protobuf_unittest.TestHugeFieldNumbers.fixed_32iq��s5protobuf_unittest.TestHugeFieldNumbers.repeated_int32ir��s3protobuf_unittest.TestHugeFieldNumbers.packed_int32is��t
optional_enums4protobuf_unittest.TestHugeFieldNumbers.optional_enumit��s6protobuf_unittest.TestHugeFieldNumbers.optional_stringiu��s5protobuf_unittest.TestHugeFieldNumbers.optional_bytesiv��s7protobuf_unittest.TestHugeFieldNumbers.optional_messageiw��s4protobuf_unittest.TestHugeFieldNumbers.optionalgroupix��tstring_string_maps8protobuf_unittest.TestHugeFieldNumbers.string_string_mapiz��s3protobuf_unittest.TestHugeFieldNumbers.oneof_uint32i{��toneof_test_all_typess;protobuf_unittest.TestHugeFieldNumbers.oneof_test_all_typesi|��s3protobuf_unittest.TestHugeFieldNumbers.oneof_stringi}��s2protobuf_unittest.TestHugeFieldNumbers.oneof_bytesi~��s2protobuf_unittest.TestHugeFieldNumbers.oneof_fieldi�3i�6t
DESCRIPTORt
__module__sgoogle.protobuf.unittest_pb2sB
UnittestProtoH����tTestServicesprotobuf_unittest.TestServicei8i�8tmethodss!protobuf_unittest.TestService.Footcontaining_servicet
input_typetoutput_types!protobuf_unittest.TestService.BartTestService_Stub(�tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
t_serviceRRtDefaultt_sym_dbR
t-google_dot_protobuf_dot_unittest__import__pb2t5google_dot_protobuf_dot_unittest__import__public__pb2tAttributeErrortgoogletprotobuftunittest_import_public_pb2tFileDescriptorRtEnumDescriptortNonetEnumValueDescriptort_FOREIGNENUMtRegisterEnumDescriptortEnumTypeWrapperRt
_ParseOptionstEnumOptionst_TESTENUMWITHDUPVALUER$t_TESTSPARSEENUMR*RRR R%R&R'R(R)R+R,R-R.R/R0R1t%OPTIONAL_INT32_EXTENSION_FIELD_NUMBERtFieldDescriptortFalsetTrueR2t%OPTIONAL_INT64_EXTENSION_FIELD_NUMBERR;t&OPTIONAL_UINT32_EXTENSION_FIELD_NUMBERR<t&OPTIONAL_UINT64_EXTENSION_FIELD_NUMBERR=t&OPTIONAL_SINT32_EXTENSION_FIELD_NUMBERR>t&OPTIONAL_SINT64_EXTENSION_FIELD_NUMBERR?t'OPTIONAL_FIXED32_EXTENSION_FIELD_NUMBERR@t'OPTIONAL_FIXED64_EXTENSION_FIELD_NUMBERRAt(OPTIONAL_SFIXED32_EXTENSION_FIELD_NUMBERRBt(OPTIONAL_SFIXED64_EXTENSION_FIELD_NUMBERRCt%OPTIONAL_FLOAT_EXTENSION_FIELD_NUMBERtfloatRDt&OPTIONAL_DOUBLE_EXTENSION_FIELD_NUMBERREt$OPTIONAL_BOOL_EXTENSION_FIELD_NUMBERRFt&OPTIONAL_STRING_EXTENSION_FIELD_NUMBERtdecodeRGt%OPTIONAL_BYTES_EXTENSION_FIELD_NUMBERRHt$OPTIONALGROUP_EXTENSION_FIELD_NUMBERRIt.OPTIONAL_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERRJt/OPTIONAL_FOREIGN_MESSAGE_EXTENSION_FIELD_NUMBERRKt.OPTIONAL_IMPORT_MESSAGE_EXTENSION_FIELD_NUMBERRLt+OPTIONAL_NESTED_ENUM_EXTENSION_FIELD_NUMBERRMt,OPTIONAL_FOREIGN_ENUM_EXTENSION_FIELD_NUMBERRNt+OPTIONAL_IMPORT_ENUM_EXTENSION_FIELD_NUMBERROt,OPTIONAL_STRING_PIECE_EXTENSION_FIELD_NUMBERtFieldOptionsRPt$OPTIONAL_CORD_EXTENSION_FIELD_NUMBERRQt5OPTIONAL_PUBLIC_IMPORT_MESSAGE_EXTENSION_FIELD_NUMBERRRt,OPTIONAL_LAZY_MESSAGE_EXTENSION_FIELD_NUMBERRSt%REPEATED_INT32_EXTENSION_FIELD_NUMBERRTt%REPEATED_INT64_EXTENSION_FIELD_NUMBERRUt&REPEATED_UINT32_EXTENSION_FIELD_NUMBERRVt&REPEATED_UINT64_EXTENSION_FIELD_NUMBERRWt&REPEATED_SINT32_EXTENSION_FIELD_NUMBERRXt&REPEATED_SINT64_EXTENSION_FIELD_NUMBERRYt'REPEATED_FIXED32_EXTENSION_FIELD_NUMBERRZt'REPEATED_FIXED64_EXTENSION_FIELD_NUMBERR[t(REPEATED_SFIXED32_EXTENSION_FIELD_NUMBERR\t(REPEATED_SFIXED64_EXTENSION_FIELD_NUMBERR]t%REPEATED_FLOAT_EXTENSION_FIELD_NUMBERR^t&REPEATED_DOUBLE_EXTENSION_FIELD_NUMBERR_t$REPEATED_BOOL_EXTENSION_FIELD_NUMBERR`t&REPEATED_STRING_EXTENSION_FIELD_NUMBERRat%REPEATED_BYTES_EXTENSION_FIELD_NUMBERRbt$REPEATEDGROUP_EXTENSION_FIELD_NUMBERRct.REPEATED_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERRdt/REPEATED_FOREIGN_MESSAGE_EXTENSION_FIELD_NUMBERRet.REPEATED_IMPORT_MESSAGE_EXTENSION_FIELD_NUMBERRft+REPEATED_NESTED_ENUM_EXTENSION_FIELD_NUMBERRgt,REPEATED_FOREIGN_ENUM_EXTENSION_FIELD_NUMBERRht+REPEATED_IMPORT_ENUM_EXTENSION_FIELD_NUMBERRit,REPEATED_STRING_PIECE_EXTENSION_FIELD_NUMBERRjt$REPEATED_CORD_EXTENSION_FIELD_NUMBERRkt,REPEATED_LAZY_MESSAGE_EXTENSION_FIELD_NUMBERRlt$DEFAULT_INT32_EXTENSION_FIELD_NUMBERRmt$DEFAULT_INT64_EXTENSION_FIELD_NUMBERRnt%DEFAULT_UINT32_EXTENSION_FIELD_NUMBERRot%DEFAULT_UINT64_EXTENSION_FIELD_NUMBERRpt%DEFAULT_SINT32_EXTENSION_FIELD_NUMBERRqt%DEFAULT_SINT64_EXTENSION_FIELD_NUMBERRrt&DEFAULT_FIXED32_EXTENSION_FIELD_NUMBERRst&DEFAULT_FIXED64_EXTENSION_FIELD_NUMBERRtt'DEFAULT_SFIXED32_EXTENSION_FIELD_NUMBERRut'DEFAULT_SFIXED64_EXTENSION_FIELD_NUMBERRvt$DEFAULT_FLOAT_EXTENSION_FIELD_NUMBERRwt%DEFAULT_DOUBLE_EXTENSION_FIELD_NUMBERRxt#DEFAULT_BOOL_EXTENSION_FIELD_NUMBERRyt%DEFAULT_STRING_EXTENSION_FIELD_NUMBERRzt$DEFAULT_BYTES_EXTENSION_FIELD_NUMBERR|t*DEFAULT_NESTED_ENUM_EXTENSION_FIELD_NUMBERR~t+DEFAULT_FOREIGN_ENUM_EXTENSION_FIELD_NUMBERRt*DEFAULT_IMPORT_ENUM_EXTENSION_FIELD_NUMBERR�t+DEFAULT_STRING_PIECE_EXTENSION_FIELD_NUMBERR�t#DEFAULT_CORD_EXTENSION_FIELD_NUMBERR�t#ONEOF_UINT32_EXTENSION_FIELD_NUMBERR�t+ONEOF_NESTED_MESSAGE_EXTENSION_FIELD_NUMBERR�t#ONEOF_STRING_EXTENSION_FIELD_NUMBERR�t"ONEOF_BYTES_EXTENSION_FIELD_NUMBERR�t MY_EXTENSION_STRING_FIELD_NUMBERR�tMY_EXTENSION_INT_FIELD_NUMBERR�t#PACKED_INT32_EXTENSION_FIELD_NUMBERR�t#PACKED_INT64_EXTENSION_FIELD_NUMBERR�t$PACKED_UINT32_EXTENSION_FIELD_NUMBERR�t$PACKED_UINT64_EXTENSION_FIELD_NUMBERR�t$PACKED_SINT32_EXTENSION_FIELD_NUMBERR�t$PACKED_SINT64_EXTENSION_FIELD_NUMBERR�t%PACKED_FIXED32_EXTENSION_FIELD_NUMBERR�t%PACKED_FIXED64_EXTENSION_FIELD_NUMBERR�t&PACKED_SFIXED32_EXTENSION_FIELD_NUMBERR�t&PACKED_SFIXED64_EXTENSION_FIELD_NUMBERR�t#PACKED_FLOAT_EXTENSION_FIELD_NUMBERR�t$PACKED_DOUBLE_EXTENSION_FIELD_NUMBERR�t"PACKED_BOOL_EXTENSION_FIELD_NUMBERR�t"PACKED_ENUM_EXTENSION_FIELD_NUMBERR�t%UNPACKED_INT32_EXTENSION_FIELD_NUMBERR�t%UNPACKED_INT64_EXTENSION_FIELD_NUMBERR�t&UNPACKED_UINT32_EXTENSION_FIELD_NUMBERR�t&UNPACKED_UINT64_EXTENSION_FIELD_NUMBERR�t&UNPACKED_SINT32_EXTENSION_FIELD_NUMBERR�t&UNPACKED_SINT64_EXTENSION_FIELD_NUMBERR�t'UNPACKED_FIXED32_EXTENSION_FIELD_NUMBERR�t'UNPACKED_FIXED64_EXTENSION_FIELD_NUMBERR�t(UNPACKED_SFIXED32_EXTENSION_FIELD_NUMBERR�t(UNPACKED_SFIXED64_EXTENSION_FIELD_NUMBERR�t%UNPACKED_FLOAT_EXTENSION_FIELD_NUMBERR�t&UNPACKED_DOUBLE_EXTENSION_FIELD_NUMBERR�t$UNPACKED_BOOL_EXTENSION_FIELD_NUMBERR�t$UNPACKED_ENUM_EXTENSION_FIELD_NUMBERR�tTEST_ALL_TYPES_FIELD_NUMBERR�t_TESTALLTYPES_NESTEDENUMt_TESTONEOF2_NESTEDENUMt&_TESTDYNAMICEXTENSIONS_DYNAMICENUMTYPEt
Descriptort_TESTALLTYPES_NESTEDMESSAGEt_TESTALLTYPES_OPTIONALGROUPt_TESTALLTYPES_REPEATEDGROUPtOneofDescriptort
_TESTALLTYPESt_NESTEDTESTALLTYPESt_TESTDEPRECATEDFIELDStMessageOptionst_TESTDEPRECATEDMESSAGEt_FOREIGNMESSAGEt_TESTRESERVEDFIELDSt_TESTALLEXTENSIONSt_OPTIONALGROUP_EXTENSIONt_REPEATEDGROUP_EXTENSIONt_TESTNESTEDEXTENSIONt
_TESTREQUIREDt_TESTREQUIREDFOREIGNt_TESTREQUIREDMESSAGEt_TESTFOREIGNNESTEDt_TESTEMPTYMESSAGEt_TESTEMPTYMESSAGEWITHEXTENSIONSt_TESTMULTIPLEEXTENSIONRANGESt_TESTREALLYLARGETAGNUMBERt_TESTRECURSIVEMESSAGEt _TESTMUTUALRECURSIONA_SUBMESSAGEt_TESTMUTUALRECURSIONA_SUBGROUPt_TESTMUTUALRECURSIONAt_TESTMUTUALRECURSIONBt&_TESTISINITIALIZED_SUBMESSAGE_SUBGROUPt_TESTISINITIALIZED_SUBMESSAGEt_TESTISINITIALIZEDt_TESTDUPFIELDNUMBER_FOOt_TESTDUPFIELDNUMBER_BARt_TESTDUPFIELDNUMBERt_TESTEAGERMESSAGEt_TESTLAZYMESSAGEt'_TESTNESTEDMESSAGEHASBITS_NESTEDMESSAGEt_TESTNESTEDMESSAGEHASBITSt_TESTCAMELCASEFIELDNAMESt!_TESTFIELDORDERINGS_NESTEDMESSAGEt_TESTFIELDORDERINGSt_TESTEXTREMEDEFAULTVALUESt_SPARSEENUMMESSAGEt
_ONESTRINGt_MORESTRINGt	_ONEBYTESt
_MOREBYTESt
_INT32MESSAGEt_UINT32MESSAGEt
_INT64MESSAGEt_UINT64MESSAGEt_BOOLMESSAGEt_TESTONEOF_FOOGROUPt
_TESTONEOFt&_TESTONEOFBACKWARDSCOMPATIBLE_FOOGROUPt_TESTONEOFBACKWARDSCOMPATIBLEt_TESTONEOF2_FOOGROUPt_TESTONEOF2_NESTEDMESSAGEt_TESTONEOF2t _TESTREQUIREDONEOF_NESTEDMESSAGEt_TESTREQUIREDONEOFt_TESTPACKEDTYPESt_TESTUNPACKEDTYPESt_TESTPACKEDEXTENSIONSt_TESTUNPACKEDEXTENSIONSt)_TESTDYNAMICEXTENSIONS_DYNAMICMESSAGETYPEt_TESTDYNAMICEXTENSIONSt$_TESTREPEATEDSCALARDIFFERENTTAGSIZESt0_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP1t0_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP2t)_TESTPARSINGMERGE_REPEATEDFIELDSGENERATORt_TESTPARSINGMERGE_OPTIONALGROUPt_TESTPARSINGMERGE_REPEATEDGROUPt_TESTPARSINGMERGEt_TESTCOMMENTINJECTIONMESSAGEt_FOOREQUESTt_FOORESPONSEt_FOOCLIENTMESSAGEt_FOOSERVERMESSAGEt_BARREQUESTt_BARRESPONSEt
_TESTJSONNAMEt#_TESTHUGEFIELDNUMBERS_OPTIONALGROUPt*_TESTHUGEFIELDNUMBERS_STRINGSTRINGMAPENTRYt_TESTHUGEFIELDNUMBERSR!tfields_by_nameR7t_IMPORTMESSAGER8t_IMPORTENUMt_PUBLICIMPORTMESSAGEtoneofs_by_nameR�tappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR�tRegisterMessageR�R�R�R	R
RRRRRRRRR<R@RBRDRERFRGRHRNRJRKRPRQRTRRRSRWRXR[R\RjRnR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RRtRegisterExtensionthas_optionstFileOptionst_optionstServiceDescriptortMethodDescriptort_TESTSERVICEtRegisterServiceDescriptortservices_by_nametGeneratedServiceTypetServiceR
tGeneratedServiceStubTypeR(((s@/usr/lib/python2.7/site-packages/google/protobuf/unittest_pb2.pyt<module>s-%

						
							
									
																							'	'		'																							'	'	'																			'	'							'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'							
					
					
																																	$	$		$																							$	$	$																			$	$														*																																																																												!																																																*			*															$	$					$	*																																						$	$																																																																			$	$					$			$	$																				$	$	$	$	$	$	$	$	$	$	$	$	$	*			$	$	$	$	$	$	$	$	$	$	$	$	$	*																*																																																																											$	$																																							


















































































































































































































































	
	
	

	
	




	















	
	
	

	
	



	















	
	




	

















	













	
	
	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!(((((((((	!((((((((((((((((((((((((((((((((((((((((((	!((			

PK�\)�P/=�=�protobuf/text_format.pyonu�[����
���hc
@s+dZdZddlZddlZddlZejrBeZnddlm	Z	ddl
mZddl
mZddd	d
dgZ
e	j�e	j�e	j�e	j�fZejdej�Zejd
ej�Zeejjejjg�Zeddf�ZdZdefd��YZdefd��YZ de!fd��YZ"e#e#e#e#e$e#e$de$d�	Z%d�Z&de#e#e#e#e$e#e$e$d�	Z'de#e#e#e#e$e$d�Z(de#e#e#e#e$e$d�Z)d�Z*de!fd��YZ+e#e#e$d �Z,e#e#e$d!�Z-e#e#e$d"�Z.e#e#e$d#�Z/d$e!fd%��YZ0d&�Z1d'�Z2d(�Z3d)�Z4d*e!fd+��YZ5e5Z6d,�Z7d-�Z8d.�Z9d/�Z:d0�Z;d1�Z<e#e#d2�Z=e#e#d3�Z>e#e#d4�Z?e#d5�Z@d6�ZAd7�ZBd8�ZCdS(9sbContains routines for printing protocol messages in text format.

Simple usage example:

  # Create a proto object and serialize it to a text proto string.
  message = my_proto_pb2.MyMessage(foo='bar')
  text_proto = text_format.MessageToString(message)

  # Parse a text proto string.
  message = text_format.Parse(text_proto, my_proto_pb2.MyMessage())
s kenton@google.com (Kenton Varda)i����N(t
type_checkers(t
descriptor(t
text_encodingtMessageToStringtPrintMessaget
PrintFieldtPrintFieldValuetMerges-?inf(?:inity)?f?snanf?t't"sgoogle.protobuf.AnytErrorcBseZdZRS(s'Top-level module error for text_format.(t__name__t
__module__t__doc__(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR
Ist
ParseErrorcBs2eZdZdddd�Zd�Zd�ZRS(s3Thrown in case of text parsing or tokenizing error.cCs�|dk	r[|dk	r[t|�}|dk	rF|dj|�7}ndj||�}n|dk	r�tt|�j|�ntt|�j�||_||_dS(Ns:{0}s	{0} : {1}(tNonetstrtformattsuperRt__init__t_linet_column(tselftmessagetlinetcolumntloc((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRPs	cCs|jS(N(R(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytGetLine]scCs|jS(N(R(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt	GetColumn`sN(RRR
RRRR(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRMs
	t
TextWritercBs,eZd�Zd�Zd�Zd�ZRS(cCs.tjrtj�|_ntj�|_dS(N(tsixtPY2tiotBytesIOt_writertStringIO(Rtas_utf8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRfs	cCs@tjr0t|tj�r0|jd�}q0n|jj|�S(Nsutf-8(RRt
isinstancet	text_typetencodeR"twrite(Rtval((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR(ls	cCs
|jj�S(N(R"tclose(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR*rscCs
|jj�S(N(R"tgetvalue(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR+us(RRRR(R*R+(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRds			ic

Csjt|�}
t|
|||||||||	�
}|j|�|
j�}|
j�|rf|j�S|S(s�Convert protobuf message to text format.

  Floating point values can be formatted compactly with 15 digits of
  precision (which is the most that IEEE 754 "double" can guarantee)
  using float_format='.15g'. To ensure that converting to text and back to a
  proto will result in an identical value, float_format='.17g' should be used.

  Args:
    message: The protocol buffers message.
    as_utf8: Produce text output in UTF8 format.
    as_one_line: Don't introduce newlines between fields.
    pointy_brackets: If True, use angle brackets instead of curly braces for
      nesting.
    use_index_order: If True, print fields of a proto message using the order
      defined in source code instead of the field number. By default, use the
      field number order.
    float_format: If set, use this to specify floating point number formatting
      (per the "Format Specification Mini-Language"); otherwise, str() is used.
    use_field_number: If True, print field numbers instead of names.
    descriptor_pool: A DescriptorPool used to resolve Any types.
    indent: The indent level, in terms of spaces, for pretty print.
    message_formatter: A function(message, indent, as_one_line): unicode|None
      to custom format selected sub-messages (usually based on message type).
      Use to pretty print parts of the protobuf for easier diffing.

  Returns:
    A string of the text formatted protocol buffer message.
  (Rt_PrinterRR+R*trstrip(
RR$tas_one_linetpointy_bracketstuse_index_ordertfloat_formattuse_field_numbertdescriptor_pooltindenttmessage_formattertouttprintertresult((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRys&	


cCs1|jtjjko0|jjo0|jj�jS(N(ttypeRtFieldDescriptortTYPE_MESSAGEtmessage_typethas_optionst
GetOptionst	map_entry(tfield((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_IsMapEntry�scCs8t|||||||||	|
�
}|j|�dS(N(R,R(RR6R4R$R.R/R0R1R2R3R5R7((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	c
	Cs5t||||||||	�}
|
j||�dS(s%Print a single field name/value pair.N(R,R(R@tvalueR6R4R$R.R/R0R1R5R7((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�sc
	Cs5t||||||||	�}
|
j||�dS(s0Print a single field value (not including name).N(R,R(R@RBR6R4R$R.R/R0R1R5R7((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�scCs�|dkr+ddlm}|j�}nddlm}|j�}y|j|�}Wntk
rndSX|j|�}|�S(s!Returns a protobuf message instance.

  Args:
    type_name: Fully-qualified protobuf  message type name string.
    descriptor_pool: DescriptorPool instance.

  Returns:
    A Message instance of type matching type_name, or None if the a Descriptor
    wasn't found matching type_name.
  i����(R3(tsymbol_databaseN(Rtgoogle.protobufR3tDefaultRCtFindMessageTypeByNametKeyErrortGetPrototype(t	type_nameR3tpool_modRCtdatabasetmessage_descriptorR<((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_BuildMessageFromTypeName�s
R,c
BsheZdZdeeeed	ed	d	d�	Zd�Zd�Zd�Zd�Z	d�Z
d�ZRS(
s)Text format printer for protocol message.icCs^||_||_||_||_||_||_||_||_|	|_|
|_	dS(sZInitialize the Printer.

    Floating point values can be formatted compactly with 15 digits of
    precision (which is the most that IEEE 754 "double" can guarantee)
    using float_format='.15g'. To ensure that converting to text and back to a
    proto will result in an identical value, float_format='.17g' should be used.

    Args:
      out: To record the text format result.
      indent: The indent level for pretty print.
      as_utf8: Produce text output in UTF8 format.
      as_one_line: Don't introduce newlines between fields.
      pointy_brackets: If True, use angle brackets instead of curly braces for
        nesting.
      use_index_order: If True, print fields of a proto message using the order
        defined in source code instead of the field number. By default, use the
        field number order.
      float_format: If set, use this to specify floating point number formatting
        (per the "Format Specification Mini-Language"); otherwise, str() is
        used.
      use_field_number: If True, print field numbers instead of names.
      descriptor_pool: A DescriptorPool used to resolve Any types.
      message_formatter: A function(message, indent, as_one_line): unicode|None
        to custom format selected sub-messages (usually based on message type).
        Use to pretty print parts of the protobuf for easier diffing.
    N(
R6R4R$R.R/R0R1R2R3R5(RR6R4R$R.R/R0R1R2R3R5((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s%									cCs�t|j�|j�}|r�|j|j�|jjd|jd|jf�|j	|�|jj|j
rwdnd�tStSdS(s5Serializes if message is a google.protobuf.Any field.s%s[%s]t s
N(
RMtTypeNameR3tMergeFromStringRBR6R(R4ttype_urlt_PrintMessageFieldValueR.tTruetFalse(RRtpacked_message((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_TryPrintAsAnyMessage.s$
cCsu|j||j|j�}|dkr+tS|j}|jd|j�|j|�|j|jrjdnd�tS(NRNs
(R5R4R.RRTR6R(RS(RRt	formattedR6((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_TryCustomFormatMessage;s	
cCs%|jr|j|�rdS|jjtkrA|j|�rAdS|j�}|jrl|jdd��nx�|D]�\}}t	|�r�x�t
|�D]5}|j�d|d||�}|j||�q�Wqs|j
tjjkr
x1|D]}|j||�q�Wqs|j||�qsWdS(seConvert protobuf message to text format.

    Args:
      message: The protocol buffers message.
    NtkeycSs|djS(Ni(tindex(tx((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt<lambda>StRB(R5RXt
DESCRIPTORt	full_namet_ANY_FULL_TYPE_NAMERVt
ListFieldsR0tsortRAtsortedt
GetEntryClassRtlabelRR:tLABEL_REPEATED(RRtfieldsR@RBRYtentry_submsgtelement((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRFs"	
cCsa|j}|jd|j�|jr?|jt|j��n�|jr�|jd�|jj�j	r�|j
tjj
kr�|jtjjkr�|j|jj�n|j|j�|jd�n;|j
tjjkr�|j|jj�n|j|j�|jtjjkr'|jd�n|j||�|jrP|jd�n
|jd�dS(s%Print a single field name/value pair.RNt[t]s: s
N(R6R(R4R2Rtnumbertis_extensiontcontaining_typeR>tmessage_set_wire_formatR9RR:R;RetLABEL_OPTIONALR<R_t
TYPE_GROUPtnametcpp_typetCPPTYPE_MESSAGERR.(RR@RBR6((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRds*			
	cCs�|jrd}d}nd}d}|jra|jjd|�|j|�|jj|�nZ|jjd|�|jd7_|j|�|jd8_|jjd|j|�dS(	Nt<t>t{t}s %s s %s
iRN(R/R.R6R(RR4(RRBtopenbtcloseb((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRR�s			

cCs�|j}|jtjjkr.|j|�n�|jtjjkr�|jjj	|d�}|dk	rz|j|j�q�|jt
|��n'|jtjjkr,|jd�t|tj�r�|jd�}n|}|jtjjkr�t}n	|j}|jtj||��|jd�n�|jtjjkrg|rW|jd�q�|jd�nP|jtkr�|jdk	r�|jdj|j|��n|jt
|��dS(s�Print a single field value (not including name).

    For repeated fields, the value should be a single element.

    Args:
      field: The descriptor of the field to be printed.
      value: The value of the field.
    s"sutf-8ttruetfalses{1:{0}}N(R6RsRR:RtRRtCPPTYPE_ENUMt	enum_typetvalues_by_numbertgetRR(RrRtCPPTYPE_STRINGR%RR&R'R9t
TYPE_BYTESRTR$RtCEscapetCPPTYPE_BOOLt_FLOAT_TYPESR1R(RR@RBR6t
enum_valuet	out_valuetout_as_utf8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s2		
		N(RRR
RTRRRVRXRRRRR(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR,�s &	
			!	cCs^t|t�s<tjr*|jd�}q<|jd�}nt|jd�|||d|�S(s�Parses a text representation of a protocol message into a message.

  NOTE: for historical reasons this function does not clear the input
  message. This is different from what the binary msg.ParseFrom(...) does.

  Example
    a = MyProto()
    a.repeated_field.append('test')
    b = MyProto()

    text_format.Parse(repr(a), b)
    text_format.Parse(repr(a), b) # repeated_field contains ["test", "test"]

    # Binary version:
    b.ParseFromString(a.SerializeToString()) # repeated_field is now "test"

  Caller is responsible for clearing the message as needed.

  Args:
    text: Message text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  sutf-8s
R3(R%RRtPY3tdecodeR't
ParseLinestsplit(ttextRtallow_unknown_extensiontallow_field_numberR3((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytParse�s%	cCs^t|t�s<tjr*|jd�}q<|jd�}nt|jd�|||d|�S(s^Parses a text representation of a protocol message into a message.

  Like Parse(), but allows repeated values for a non-repeated field, and uses
  the last one.

  Args:
    text: Message text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  sutf-8s
R3(R%RRR�R�R't
MergeLinesR�(R�RR�R�R3((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	cCs%t||d|�}|j||�S(sParses a text representation of a protocol message into a message.

  Args:
    lines: An iterable of lines of a message's text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  R3(t_ParserR�(tlinesRR�R�R3tparser((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	cCs%t||d|�}|j||�S(sParses a text representation of a protocol message into a message.

  Args:
    lines: An iterable of lines of a message's text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  R3(R�R�(R�RR�R�R3R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�3s	R�cBs�eZdZeedd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ed
��Zd�ZRS(
s(Text format parser for protocol message.cCs||_||_||_dS(N(R�R�R3(RR�R�R3((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRQs		cCs:t|t�s!|jd�}n|j|jd�|�S(sBParses a text representation of a protocol message into a message.sutf-8s
(R%RR�R�R�(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytParseFromStringYscCst|_|j||�|S(sBParses a text representation of a protocol message into a message.(RTt_allow_multiple_scalarst
_ParseOrMerge(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�_s	cCs|j|jd�|�S(sBMerges a text representation of a protocol message into a message.s
(t_MergeLinesR�(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRPescCst|_|j||�|S(sBMerges a text representation of a protocol message into a message.(RSR�R�(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�is	cCs3t|�}x |j�s.|j||�qWdS(s�Converts a text representation of a protocol message into a message.

    Args:
      lines: Lines of a message's text representation.
      message: A protocol buffer message to merge into.

    Raises:
      ParseError: On text parsing problems.
    N(t	TokenizertAtEndt_MergeField(RR�Rt	tokenizer((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�os
c	Cs�|j}|jd�r�|j�g}x&|jd�rO|j|j��q*Wdj|�}|js�|jd|j��n|jj	|�}|s�|j
r�d}q�|jd|��n.||jkr�|jd||jf��n|j
d�n(|j�}|jro|j�rot|tt�}|jj|d�}|r|jr|jj|�}qn�|jj|d�}|s�|jj|j�d�}|r�|jtjjkr�d}q�n|r|jtjjkr|jj|krd}n|s'|jd|j|f��n|r\|jr�|jr�|j |jj�}|dk	r�||jkr�|jd|j||jj|jf��q�n|j!tjj"kr�|jd	�|j#}n|j
d	�|j$}|j%tjj&krI|jd�rIxMtrE||||�|jd�r5Pn|j
d
�qWqf||||�n
t'|�|jd
�s�|jd�ndS(
s�Merges a single protocol message field into a message.

    Args:
      tokenizer: A tokenizer to parse the field name and values.
      message: A protocol message to record the data.

    Raises:
      ParseError: In case of text parsing problems.
    Rjt.s+Message type "%s" does not have extensions.s�Extension "%s" not registered. Did you import the _pb2 module which defines it? If you are trying to place the extension in the MessageSet field of another message that is in an Any or MessageSet field, that message's _pb2 module must be imported as wells1Extension "%s" does not extend message type "%s".Rks*Message type "%s" has no field named "%s".sbField "%s" is specified along with field "%s", another member of oneof "%s" for message type "%s".t:t,t;N((R^t
TryConsumetConsumeIdentifiertappendtjoint
is_extendabletParseErrorPreviousTokenR_t
Extensionst_FindExtensionByNameR�RRntConsumetConsumeIdentifierOrNumberR�tisdigittParseIntegerRStfields_by_numberR�t_FindExtensionByNumbertfields_by_nametlowerR9RR:RqR<RrR�tcontaining_oneoft
WhichOneofRsRtt_MergeMessageFieldt_MergeScalarFieldReRft_SkipFieldContents(	RR�RRLRrR@Rltwhich_oneoftmerger((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�}s�
				
	

		
cCs�|j�g}|jd�|j|j��|jd�|j|j��|jd�|j�g}x&|jd�r�|j|j��qnWdj|�dj|�fS(sBConsumes a google.protobuf.Any type URL and returns the type name.R�t/(R�R�R�R�R�(RR�tprefixRr((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_ConsumeAnyTypeUrl�s


cCs�t|�}|jd�r$d}n|jd�d}|jjtkr�|jd�r�|j|�\}}|jd�|jd�|jd�r�d}n|jd�d}t||j�}	|	s�t	d|��nxH|j|�s'|j
�r|jd	|f��n|j||	�q�W|j
tjjkrXt||j�j�}
nt||j�}
|
j|	d
|�n�|j
tjjkr�|jr�|j|j�}q(|r�t||j�j��}q(t||j�j�}n5|jr|j|}nt||j�}|j�xH|j|�sr|j
�r_|jd	|f��n|j||�q+W|r�|jjdj}|tjjkr�t||j�|j}
|
j|j�q�|jt||j�|j<ndS(
s"Merges a single scalar field into a message.

    Args:
      tokenizer: A tokenizer to parse the field value.
      message: The message of which field is a member.
      field: The descriptor of the field to be merged.

    Raises:
      ParseError: In case of text parsing problems.
    RuRvRwRxRjRkR�s$Type %s not found in descriptor poolsExpected "%s".ttype_url_prefixRBN(RAR�R�R<R_R`R�RMR3RR�R�R�ReRR:RftgetattrRrtaddtPackRmR�RdtSetInParentR�RsRtRYt	MergeFromRB(RR�RR@tis_map_entryt	end_tokenR�tpacked_type_nametexpanded_any_end_tokentexpanded_any_sub_messagetany_messagetsub_messaget
value_cpptypeRB((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��sb	


	

	
		
cCs%|j}t|d�o$|jdkS(Ntsyntaxtproto3(R^thasattrR�(RRL((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_IsProto3SyntaxAs	cCs�|j}d}|jtjjtjjtjjfkrHt|�}no|jtjj	tjj
tjjfkr�t|�}n6|jtjj
tjjfkr�t|�}n|jtjjtjjfkr�t|�}n�|jtjjtjjfkr|j�}n�|jtjjkr5|j�}n�|jtjjkrY|j�}n^|jtjjkr}|j�}n:|jtjjkr�|j|�}ntd|j��|jtjj kr|j!r�|j"|j#|�q�t$||j%�j#|�n�|j&|�}|j!ru|j're|re|j(|�re|j)d|j*j+|j+f��q�||j"|<nZ|j'r�|r�|j,|j%�r�|j)d|j*j+|j%f��nt-||j%|�dS(sHMerges a single scalar field into a message.

    Args:
      tokenizer: A tokenizer to parse the field value.
      message: A protocol message to record the data.
      field: The descriptor of the field to be merged.

    Raises:
      ParseError: In case of text parsing problems.
      RuntimeError: On runtime errors.
    sUnknown field type %ds;Message type "%s" should not have multiple "%s" extensions.s7Message type "%s" should not have multiple "%s" fields.N(.R�RR9RR:t
TYPE_INT32tTYPE_SINT32t
TYPE_SFIXED32t
_ConsumeInt32t
TYPE_INT64tTYPE_SINT64t
TYPE_SFIXED64t
_ConsumeInt64tTYPE_UINT32tTYPE_FIXED32t_ConsumeUint32tTYPE_UINT64tTYPE_FIXED64t_ConsumeUint64t
TYPE_FLOATtTYPE_DOUBLEtConsumeFloatt	TYPE_BOOLtConsumeBooltTYPE_STRINGt
ConsumeStringR�tConsumeByteStringt	TYPE_ENUMtConsumeEnumtRuntimeErrorReRfRmR�R�R�RrR�R�tHasExtensionR�R^R_tHasFieldtsetattr(RR�RR@t_RBtcan_check_presence((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Gs\					N(RRR
RTRRR�R�RPR�R�R�R�R�tstaticmethodR�R�(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Ns						m		HcCsJ|jd�r<|jd�r<|jd�r<t|�n
t|�dS(s}Skips over contents (value or message) of a field.

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  R�RwRuN(R�t	LookingAtt_SkipFieldValuet_SkipFieldMessage(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s
cCs�|jd�rI|j�x|jd�r8|j�qW|jd�n
|j�t|�|jd�s||jd�ndS(s�Skips over a complete field (name and value/message).

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  RjR�RkR�R�N(R�R�R�R�(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt
_SkipField�s


cCsm|jd�rd}n|jd�d}x.|jd�r[|jd�r[t|�q.W|j|�dS(sfSkips over a field message.

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  RuRvRwRxN(R�R�R�R�(R�t	delimiter((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	
#cCsq|j�r#x|j�rqWdS|j�rmt|�rmt|�rm|j�rmtd|j��ndS(s�Skips over a field value.

  Args:
    tokenizer: A tokenizer to parse the field name and values.

  Raises:
    ParseError: In case an invalid field value is found.
  NsInvalid field value: (tTryConsumeByteStringtTryConsumeIdentifiert_TryConsumeInt64t_TryConsumeUint64tTryConsumeFloatRttoken(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s

R�cBs�eZdZejd�Zejdej�Zejdej�Zejdj	ddgge
D]Zdjde�^qa��Z
ejd	�Zejd
�Zed�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zed�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,RS(&s�Protocol buffer text representation tokenizer.

  This class handles the lower level string parsing by splitting it into
  meaningful tokens.

  It was directly ported from the Java protocol buffer API.
  s\s+s	(\s*#.*$)s(\s|(#.*$))+t|s[a-zA-Z_][0-9a-zA-Z_+-]*s#([0-9+-]|(\.[0-9]))[0-9a-zA-Z_.+-]*s!{qt}([^{qt}\n\\]|\\.)*({qt}|\\?$)tqts
[^\d\W]\w*s\w+cCs�d|_d|_d|_d|_d|_t|�|_d|_d|_	d|_
t|_||_
|rx|jp~|j|_|j�|j�dS(Nii����R](t	_positionRRRt_token_startR�titert_linest
_current_linet_previous_linet_previous_columnRSt_more_linest_skip_commentst_WHITESPACE_OR_COMMENTt_WHITESPACEt_whitespace_patternt_SkipWhitespacet	NextToken(RR�t
skip_comments((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s										
cCs
|j|kS(N(R�(RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�scCs|jS(s^Checks the end of the text was reached.

    Returns:
      True iff the end was reached.
    (R�(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�
scCsxxqt|j�|jkrsyt|j�|_Wn$tk
rWd|_t|_dSX|jd7_d|_qWdS(NR]ii(	tlenR�RtnextR�t
StopIterationRTRR(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_PopLines
		cCsdx]tr_|j�|jj|j|j�}|s8Pnt|jd��}|j|7_qWdS(Ni(RSRRtmatchR�RRtgroup(RRtlength((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRs	
cCs!|j|kr|j�tStS(s�Tries to consume a given piece of text.

    Args:
      token: Text to consume.

    Returns:
      True iff the text was consumed.
    (R�RRSRT(RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�'s	
cCs)|j|�s%|jd|��ndS(s�Consumes a piece of text.

    Args:
      token: Text to consume.

    Raises:
      ParseError: If the text couldn't be consumed.
    sExpected "%s".N(R�R(RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�5s	cCs;|j}|jj|�s-|jd��n|j�|S(NsExpected comment.(R�t_COMMENTRRR(RR8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytConsumeCommentAs
	
cCsS|jdko|jdk}|j}|j�}|j|koF|}||fS(sCConsumes a comment, returns a 2-tuple (trailing bool, comment str).i(RRR�R(Rtjust_startedtbefore_parsingtcommentttrailing((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytConsumeCommentOrTrailingCommentHs	cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Xs


cCs;|j}|jj|�s-|jd��n|j�|S(s�Consumes protocol message field identifier.

    Returns:
      Identifier string.

    Raises:
      ParseError: If an identifier couldn't be consumed.
    sExpected identifier.(R�t_IDENTIFIERRRR(RR8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�_s
		
cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytTryConsumeIdentifierOrNumberns


cCs?|j}|jj|�s1|jd|��n|j�|S(s�Consumes protocol message field identifier.

    Returns:
      Identifier string.

    Raises:
      ParseError: If an identifier couldn't be consumed.
    s&Expected identifier or number, got %s.(R�t_IDENTIFIER_OR_NUMBERRRR(RR8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�us
		
cCs+y|j�tSWntk
r&tSXdS(N(tConsumeIntegerRSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytTryConsumeInteger�s


cCsRyt|jd|�}Wn(tk
rC}|jt|���nX|j�|S(s�Consumes an integer number.

    Args:
      is_long: True if the value should be returned as a long integer.
    Returns:
      The integer parsed.

    Raises:
      ParseError: If an integer couldn't be consumed.
    tis_long(t_ParseAbstractIntegerR�t
ValueErrorRRR(RRR8te((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s
cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s


cCsLyt|j�}Wn(tk
r=}|jt|���nX|j�|S(s�Consumes an floating point number.

    Returns:
      The number parsed.

    Raises:
      ParseError: If a floating point number couldn't be consumed.
    (t
ParseFloatR�RRRR(RR8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	
cCsLyt|j�}Wn(tk
r=}|jt|���nX|j�|S(s�Consumes a boolean value.

    Returns:
      The bool parsed.

    Raises:
      ParseError: If a boolean value couldn't be consumed.
    (t	ParseBoolR�RRRR(RR8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	
cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s


cCsI|j�}ytj|d�SWn"tk
rD}|j|��nXdS(s�Consumes a string value.

    Returns:
      The string parsed.

    Raises:
      ParseError: If a string value couldn't be consumed.
    sutf-8N(R�RR&tUnicodeDecodeErrort_StringParseError(Rt	the_bytesR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s
	cCsR|j�g}x3|jrD|jdtkrD|j|j��qWdj|�S(s�Consumes a byte array value.

    Returns:
      The array parsed (as a string).

    Raises:
      ParseError: If a byte array value couldn't be consumed.
    iR](t_ConsumeSingleByteStringR�t_QUOTESR�R�(Rtthe_list((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	cCs�|j}t|�dks+|dtkrD|jd|f��nt|�dksj|d|dkr�|jd|f��nytj|dd!�}Wn(tk
r�}|jt|���nX|j�|S(sOConsume one token of a string literal.

    String literals (whether bytes or text) can come in multiple adjacent
    tokens which are automatically concatenated, like in C or Python.  This
    method only consumes one token.

    Returns:
      The token parsed.
    Raises:
      ParseError: When the wrong format data is found.
    iisExpected string but found: %rii����sString missing ending quote: %r(	R�RR%RRt	CUnescapeRRR(RR�R8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR$�s	"&
cCsOyt||j�}Wn(tk
r@}|jt|���nX|j�|S(N(t	ParseEnumR�RRRR(RR@R8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s
cCst||jd|jd�S(s�Creates and *returns* a ParseError for the previously read token.

    Args:
      message: A message to set for the exception.

    Returns:
      A ParseError instance.
    i(RR�R�(RR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	cCst||jd|jd�S(s9Creates and *returns* a ParseError for the current token.i(RRR(RR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRscCs|jdt|��S(NsCouldn't parse string: (RR(RR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR"scCs�|j|_|j|_|jt|j�7_|j�|jsPd|_dS|jj	|j
|j�}|r�|jr�|jj	|j
|j�}n|r�|j
d�}||_n|j
|j|_dS(s Reads the next meaningful token.R]Ni(RR�RR�RR�RRt_TOKENRR�RRR
(RRR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRs
		(-RRR
tretcompileRt	MULTILINERRR�R%tmarkRR)RRRSRR�R�RRR�R�RRR�R�RR�RRTRR�R�R�R�R�R�R$R�R�RR"R(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��sJ,																									cCst|dtdt�S(s�Consumes a signed 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If a signed 32bit integer couldn't be consumed.
  t	is_signedR(t_ConsumeIntegerRSRT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�8scCst|dtdt�S(s�Consumes an unsigned 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an unsigned 32bit integer couldn't be consumed.
  R.R(R/RT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�GscCs+yt|�tSWntk
r&tSXdS(N(R�RSRRT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Vs


cCst|dtdt�S(s�Consumes a signed 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If a signed 32bit integer couldn't be consumed.
  R.R(R/RS(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�^scCs+yt|�tSWntk
r&tSXdS(N(R�RSRRT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�ms


cCst|dtdt�S(s�Consumes an unsigned 64bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an unsigned 64bit integer couldn't be consumed.
  R.R(R/RTRS(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�uscCs7yt|d|d|�tSWntk
r2tSXdS(NR.R(R/RSRRT(R�R.R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_TryConsumeInteger�s

cCsXyt|jd|d|�}Wn(tk
rI}|jt|���nX|j�|S(sUConsumes an integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.
    is_signed: True if a signed integer must be parsed.
    is_long: True if a long integer must be parsed.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an integer with given characteristics couldn't be consumed.
  R.R(R�R�RRRR(R�R.RR8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR/�s
cCsAt|d|�}tdt|�t|�}|j|�|S(sParses an integer.

  Args:
    text: The text to parse.
    is_signed: True if a signed integer must be parsed.
    is_long: True if a long integer must be parsed.

  Returns:
    The integer value.

  Raises:
    ValueError: Thrown Iff the text is not a valid integer.
  Ri(Rt_INTEGER_CHECKERStintt
CheckValue(R�R.RR8tchecker((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s
cCsLy$|rt|d�St|d�SWn!tk
rGtd|��nXdS(sParses an integer without checking size/signedness.

  Args:
    text: The text to parse.
    is_long: True if the value should be returned as a long integer.

  Returns:
    The integer value.

  Raises:
    ValueError: Thrown Iff the text is not a valid integer.
  isCouldn't parse integer: %sN(tlongR2R(R�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s

cCs�yt|�SWn�tk
r�tj|�rT|ddkrGtd�Std�Sq�tj|�rmtd�Syt|jd��SWq�tk
r�td|��q�XnXdS(	s�Parse a floating point number.

  Args:
    text: Text to parse.

  Returns:
    The number parsed.

  Raises:
    ValueError: If a floating point number couldn't be parsed.
  it-s-inftinftnantfsCouldn't parse float: %sN(tfloatRt_FLOAT_INFINITYRt
_FLOAT_NANR-(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s




cCs0|dkrtS|dkr tStd	��d
S(
s�Parse a boolean value.

  Args:
    text: Text to parse.

  Returns:
    Boolean values parsed

  Raises:
    ValueError: If text is not a valid boolean.
  R{ttt1RSR|R9t0RTsExpected "true" or "false".N(R{R=R>RS(R|R9R?RT(RSRTR(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR �s
cCs�|j}yt|d�}WnNtk
rl|jj|d�}|dkr�td|j|f��q�niXt|jd�r�|jj	dkr�|Sn|j
j|d�}|dkr�td|j|f��n|jS(s&Parse an enum value.

  The value can be specified by a number (the enum value), or by
  a string literal (the enum name).

  Args:
    field: Enum field descriptor.
    value: String value.

  Returns:
    Enum value number.

  Raises:
    ValueError: If the enum value could not be parsed.
  is%Enum type "%s" has no value named %s.R�R�s+Enum type "%s" has no value with number %d.N(R~R2Rtvalues_by_nameR�RR_R�tfileR�RRl(R@RBtenum_descriptorRlR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR(s 	
(DR
t
__author__R R*RR�R2R5tgoogle.protobuf.internalRRDRRt__all__tUint32ValueCheckertInt32ValueCheckertUint64ValueCheckertInt64ValueCheckerR1R+t
IGNORECASER;R<t	frozensetR:t
CPPTYPE_FLOATtCPPTYPE_DOUBLER�R%R`t	ExceptionR
RtobjectRRTRRRARRRRMR,R�RR�R�R�R�R�R�R�R�t
_TokenizerR�R�R�R�R�R�R0R/R�RRR R((((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt<module>)s�						)	

	�/#�@				�V							 	PK�\H
S���protobuf/descriptor.pyonu�[����
���hc@s�dZdZddlZddlmZeZej�dkr}ddlZddl	Z	ddl
mZeede�Znde
fd	��YZd
efd��YZer�defd
��YZneZdeje�fd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZdefd��YZd efd!��YZd"�Zd#�Zd$�Zd%�Z d&e!dd'�Z#dS((s�Descriptors essentially contain exactly the information found in a .proto
file, in types that make this information accessible in Python.
s#robinson@google.com (Will Robinson)i����N(tapi_implementationtcpp(t_messaget_USE_C_DESCRIPTORStErrorcBseZdZRS(sBase error for this module.(t__name__t
__module__t__doc__(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR2stTypeTransformationErrorcBseZdZRS(sHError transforming between python proto type and corresponding C++ type.(RRR(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR6stDescriptorMetaclasscBseZd�ZRS(cCs6tt|�j|�rtSt||j�r2tStS(N(tsuperR	t__instancecheck__tTruet
isinstancet_C_DESCRIPTOR_CLASStFalse(tclstobj((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR@s
(RRR(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR	?stDescriptorBasecBs8eZdZerdZnd�Zd�Zd�ZRS(s�Descriptors base class.

  This class is the base of all descriptor classes. It provides common options
  related functionality.

  Attributes:
    has_options:  True if the descriptor has non-default options.  Usually it
        is not necessary to read this -- just call GetOptions() which will
        happily return the default instance.  However, it's sometimes useful
        for efficiency, and also useful inside the protobuf implementation to
        avoid some bootstrapping issues.
  cCs%||_||_|dk	|_dS(s�Initialize the descriptor given its options message and the name of the
    class of the options message. The name of the class is required in case
    the options message is None and has to be created.
    N(t_optionst_options_class_nametNonethas_options(tselftoptionstoptions_class_name((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt__init___s		cCs%||_||_|dk	|_dS(s�Sets the descriptor's options

    This function is used in generated proto2 files to update descriptor
    options. It must not be used outside proto2.
    N(RRRR(RRR((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt_SetOptionsjs		cCsp|jr|jSddlm}yt||j�}Wn$tk
r\td|j��nX|�|_|jS(s�Retrieves descriptor options.

    This method returns the options set or creates the default options for the
    descriptor.
    i����(tdescriptor_pb2sUnknown options class name %s!(Rtgoogle.protobufRtgetattrRtAttributeErrortRuntimeError(RRt
options_class((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt
GetOptionsvs	
((RRRRRRRR"(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRKs
			t_NestedDescriptorBasecBs&eZdZddd�Zd�ZRS(s0Common class for descriptors that can be nested.c		CsStt|�j||�||_||_||_||_||_||_dS(sCConstructor.

    Args:
      options: Protocol message options or None
        to use default message options.
      options_class_name: (str) The class name of the above options.

      name: (str) Name of this protocol message type.
      full_name: (str) Fully-qualified name of this protocol message type,
        which will include protocol "package" name and the name of any
        enclosing types.
      file: (FileDescriptor) Reference to file info.
      containing_type: if provided, this is a nested descriptor, with this
        descriptor as parent, otherwise None.
      serialized_start: The start index (inclusive) in block in the
        file.serialized_pb that describes this descriptor.
      serialized_end: The end index (exclusive) in block in the
        file.serialized_pb that describes this descriptor.
    N(	R
R#Rtnamet	full_nametfiletcontaining_typet_serialized_startt_serialized_end(	RRRR$R%R&R'tserialized_starttserialized_end((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s
					cCs`|jdk	rP|jdk	rP|jdk	rP|j|jj|j|j!�ntd��dS(s�Copies this to the matching proto in descriptor_pb2.

    Args:
      proto: An empty proto instance from descriptor_pb2.

    Raises:
      Error: If self couldnt be serialized, due to to few constructor arguments.
    s*Descriptor does not contain serialization.N(R&RR(R)tParseFromStringt
serialized_pbR(Rtproto((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pytCopyToProto�s	N(RRRRRR/(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR#�s!t
Descriptorc	Bs�eZdZer?ejZdeddddddd�Z	ndeddddddd�Z
ed��Zd�Z
d�ZRS(si	Descriptor for a protocol message type.

  A Descriptor instance has the following attributes:

    name: (str) Name of this protocol message type.
    full_name: (str) Fully-qualified name of this protocol message type,
      which will include protocol "package" name and the name of any
      enclosing types.

    containing_type: (Descriptor) Reference to the descriptor of the
      type containing us, or None if this is top-level.

    fields: (list of FieldDescriptors) Field descriptors for all
      fields in this type.
    fields_by_number: (dict int -> FieldDescriptor) Same FieldDescriptor
      objects as in |fields|, but indexed by "number" attribute in each
      FieldDescriptor.
    fields_by_name: (dict str -> FieldDescriptor) Same FieldDescriptor
      objects as in |fields|, but indexed by "name" attribute in each
      FieldDescriptor.
    fields_by_camelcase_name: (dict str -> FieldDescriptor) Same
      FieldDescriptor objects as in |fields|, but indexed by
      "camelcase_name" attribute in each FieldDescriptor.

    nested_types: (list of Descriptors) Descriptor references
      for all protocol message types nested within this one.
    nested_types_by_name: (dict str -> Descriptor) Same Descriptor
      objects as in |nested_types|, but indexed by "name" attribute
      in each Descriptor.

    enum_types: (list of EnumDescriptors) EnumDescriptor references
      for all enums contained within this type.
    enum_types_by_name: (dict str ->EnumDescriptor) Same EnumDescriptor
      objects as in |enum_types|, but indexed by "name" attribute
      in each EnumDescriptor.
    enum_values_by_name: (dict str -> EnumValueDescriptor) Dict mapping
      from enum value name to EnumValueDescriptor for that value.

    extensions: (list of FieldDescriptor) All extensions defined directly
      within this message type (NOT within a nested type).
    extensions_by_name: (dict, string -> FieldDescriptor) Same FieldDescriptor
      objects as |extensions|, but indexed by "name" attribute of each
      FieldDescriptor.

    is_extendable:  Does this type define any extension ranges?

    oneofs: (list of OneofDescriptor) The list of descriptors for oneof fields
      in this message.
    oneofs_by_name: (dict str -> OneofDescriptor) Same objects as in |oneofs|,
      but indexed by "name" attribute.

    file: (FileDescriptor) Reference to file descriptor.
  cCstjj�tjj|�S(N(RtMessaget_CheckCalledFromGeneratedFiletdefault_pooltFindMessageTypeByName(RR$R%tfilenameR'tfieldstnested_typest
enum_typest
extensionsRt
is_extendabletextension_rangestoneofsR&R*R+tsyntax((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt__new__�s
cCs�tt|�j|	d|||
|d|d|�||_x|jD]}||_qDWtd�|D��|_td�|D��|_d|_	||_
x|D]}||_q�Wtd�|D��|_||_x|jD]}||_q�Wtd�|D��|_
td�|D��|_||_x|jD]}||_q9Wtd	�|D��|_|
|_||_|dk	r�|ng|_td
�|jD��|_x|jD]}||_q�W|p�d|_dS(
s�Arguments to __init__() are as described in the description
    of Descriptor fields above.

    Note that filename is an obsolete argument, that is not used anymore.
    Please use file.name to access this as an attribute.
    tMessageOptionsR*R+css|]}|j|fVqdS(N(tnumber(t.0tf((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>scss|]}|j|fVqdS(N(R$(RARB((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>scss|]}|j|fVqdS(N(R$(RAtt((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>%scss|]}|j|fVqdS(N(R$(RARC((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>*scss.|]$}|jD]}|j|fVqqdS(N(tvaluesR$(RARCtv((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>,scss|]}|j|fVqdS(N(R$(RARB((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>1scss|]}|j|fVqdS(N(R$(RAto((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>5stproto2N(R
R0RR6R'tdicttfields_by_numbertfields_by_nameRt_fields_by_camelcase_nameR7tnested_types_by_nameR8tenum_types_by_nametenum_values_by_nameR9textension_scopetextensions_by_nameR:R;R<toneofs_by_nameR=(RR$R%R5R'R6R7R8R9RR:R;R<R&R*R+R=tfieldtnested_typet	enum_typet	extensiontoneof((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRs>	
		

	
	
		
cCs5|jdkr.td�|jD��|_n|jS(Ncss|]}|j|fVqdS(N(tcamelcase_name(RARB((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>>s(RKRRHR6(R((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pytfields_by_camelcase_name:scCs|j|j|jS(ssReturns the string name of an enum value.

    This is just a small helper method to simplify a common operation.

    Args:
      enum: string name of the Enum.
      value: int, value of the enum.

    Returns:
      string name of the enum value.

    Raises:
      KeyError if either the Enum doesn't exist or the value is not a valid
        value for the enum.
    (RMtvalues_by_numberR$(Rtenumtvalue((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt
EnumValueNameAscCstt|�j|�dS(svCopies this to a descriptor_pb2.DescriptorProto.

    Args:
      proto: An empty descriptor_pb2.DescriptorProto.
    N(R
R0R/(RR.((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR/SsN(RRRRRR0RRRR>RtpropertyRXR\R/(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR0�s6					0	tFieldDescriptorcBs�eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd	Zd
Zd
Z iee6ee6ee6ee6ee6ee6ee6ee6ee6ee6ee6ee6ee	6ee6ee6ee
6ee
6ee6Z!dZ"dZ#dZ$dZ%dZ&dZ'dZ(e)r�e*j+Z,de.dddd�Z/nde.dddd�Z0e1d��Z2e3d��Z4RS(s	Descriptor for a single field in a .proto file.

  A FieldDescriptor instance has the following attributes:

    name: (str) Name of this field, exactly as it appears in .proto.
    full_name: (str) Name of this field, including containing scope.  This is
      particularly relevant for extensions.
    camelcase_name: (str) Camelcase name of this field.
    index: (int) Dense, 0-indexed index giving the order that this
      field textually appears within its message in the .proto file.
    number: (int) Tag number declared for this field in the .proto file.

    type: (One of the TYPE_* constants below) Declared type.
    cpp_type: (One of the CPPTYPE_* constants below) C++ type used to
      represent this field.

    label: (One of the LABEL_* constants below) Tells whether this
      field is optional, required, or repeated.
    has_default_value: (bool) True if this field has a default value defined,
      otherwise false.
    default_value: (Varies) Default value of this field.  Only
      meaningful for non-repeated scalar fields.  Repeated fields
      should always set this to [], and non-repeated composite
      fields should always set this to None.

    containing_type: (Descriptor) Descriptor of the protocol message
      type that contains this field.  Set by the Descriptor constructor
      if we're passed into one.
      Somewhat confusingly, for extension fields, this is the
      descriptor of the EXTENDED message, not the descriptor
      of the message containing this field.  (See is_extension and
      extension_scope below).
    message_type: (Descriptor) If a composite field, a descriptor
      of the message type contained in this field.  Otherwise, this is None.
    enum_type: (EnumDescriptor) If this field contains an enum, a
      descriptor of that enum.  Otherwise, this is None.

    is_extension: True iff this describes an extension field.
    extension_scope: (Descriptor) Only meaningful if is_extension is True.
      Gives the message that immediately contains this extension field.
      Will be None iff we're a top-level (file-level) extension field.

    options: (descriptor_pb2.FieldOptions) Protocol message field options or
      None to use default field options.

    containing_oneof: (OneofDescriptor) If the field is a member of a oneof
      union, contains its descriptor. Otherwise, None.

    file: (FileDescriptor) Reference to file descriptor.
  iiiiiiiii	i
iii
iiiiiii8JiNcCs7tjj�|r#tjj|�Stjj|�SdS(N(RR1R2R3tFindExtensionByNametFindFieldByName(RR$R%tindexR@ttypetcpp_typetlabelt
default_valuetmessage_typeRTR'tis_extensionRORthas_default_valuetcontaining_oneoft	json_nameR&((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>�s
cCs.tt|�j|d�||_||_||_d|_|dkr[t|�|_	n	||_	||_
||_||_||_
||_||_||_||_|	|_|
|_||_|
|_||_tj�dkr!|r	tjj|�|_q*tjj|�|_n	d|_dS(sThe arguments are as described in the description of FieldDescriptor
    attributes above.

    Note that containing_type may be None, and may be set later if necessary
    (to deal with circular references between message types, for example).
    Likewise for extension_scope.
    tFieldOptionsRN(R
R^RR$R%R&Rt_camelcase_namet_ToJsonNameRjRaR@RbRcRdRhReR'RfRTRgRORiRtTypeRR3R_t_cdescriptorR`(RR$R%RaR@RbRcRdReRfRTR'RgRORRhRiRjR&((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s4																		cCs+|jdkr$t|j�|_n|jS(N(RlRt_ToCamelCaseR$(R((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRW!scCs7ytj|SWn!tk
r2td|��nXdS(s�Converts from a Python proto type to a C++ Proto Type.

    The Python ProtocolBuffer classes specify both the 'Python' datatype and the
    'C++' datatype - and they're not the same. This helper method should
    translate from one to another.

    Args:
      proto_type: the Python proto type (descriptor.FieldDescriptor.TYPE_*)
    Returns:
      descriptor.FieldDescriptor.CPPTYPE_*, the C++ type.
    Raises:
      TypeTransformationError: when the Python proto type isn't known.
    sUnknown proto_type: %sN(R^t_PYTHON_TO_CPP_PROTO_TYPE_MAPtKeyErrorR(t
proto_type((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pytProtoTypeToCppProtoType's
i i���N(5RRRtTYPE_DOUBLEt
TYPE_FLOATt
TYPE_INT64tTYPE_UINT64t
TYPE_INT32tTYPE_FIXED64tTYPE_FIXED32t	TYPE_BOOLtTYPE_STRINGt
TYPE_GROUPtTYPE_MESSAGEt
TYPE_BYTEStTYPE_UINT32t	TYPE_ENUMt
TYPE_SFIXED32t
TYPE_SFIXED64tTYPE_SINT32tTYPE_SINT64tMAX_TYPEt
CPPTYPE_INT32t
CPPTYPE_INT64tCPPTYPE_UINT32tCPPTYPE_UINT64tCPPTYPE_DOUBLEt
CPPTYPE_FLOATtCPPTYPE_BOOLtCPPTYPE_ENUMtCPPTYPE_STRINGtCPPTYPE_MESSAGEtMAX_CPPTYPERqtLABEL_OPTIONALtLABEL_REQUIREDtLABEL_REPEATEDt	MAX_LABELtMAX_FIELD_NUMBERtFIRST_RESERVED_FIELD_NUMBERtLAST_RESERVED_FIELD_NUMBERRRR^RRRR>RR]RWtstaticmethodRt(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR^hs�3
				&tEnumDescriptorcBsYeZdZer6ejZdddddd�Zndddddd�Z	d�Z
RS(s�Descriptor for an enum defined in a .proto file.

  An EnumDescriptor instance has the following attributes:

    name: (str) Name of the enum type.
    full_name: (str) Full name of the type, including package name
      and any enclosing type(s).

    values: (list of EnumValueDescriptors) List of the values
      in this enum.
    values_by_name: (dict str -> EnumValueDescriptor) Same as |values|,
      but indexed by the "name" field of each EnumValueDescriptor.
    values_by_number: (dict int -> EnumValueDescriptor) Same as |values|,
      but indexed by the "number" field of each EnumValueDescriptor.
    containing_type: (Descriptor) Descriptor of the immediate containing
      type of this enum, or None if this is an enum defined at the
      top level in a .proto file.  Set by Descriptor's constructor
      if we're passed into one.
    file: (FileDescriptor) Reference to file descriptor.
    options: (descriptor_pb2.EnumOptions) Enum options message or
      None to use default enum options.
  c

Cstjj�tjj|�S(N(RR1R2R3tFindEnumTypeByName(
RR$R%R5RDR'RR&R*R+((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>Xs
c
Cs�tt|�j|d||||d|d|	�||_x|jD]}
||
_qDWtd�|D��|_td�|D��|_dS(s�Arguments are as described in the attribute description above.

    Note that filename is an obsolete argument, that is not used anymore.
    Please use file.name to access this as an attribute.
    tEnumOptionsR*R+css|]}|j|fVqdS(N(R$(RARE((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>nscss|]}|j|fVqdS(N(R@(RARE((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>osN(R
R�RRDRbRHtvalues_by_nameRY(RR$R%R5RDR'RR&R*R+R[((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR^s	
cCstt|�j|�dS(s~Copies this to a descriptor_pb2.EnumDescriptorProto.

    Args:
      proto: An empty descriptor_pb2.EnumDescriptorProto.
    N(R
R�R/(RR.((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR/qsN(RRRRRR�RRR>RR/(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�<s			tEnumValueDescriptorcBs>eZdZer-ejZddd�Znddd�Z	RS(s,Descriptor for a single value within an enum.

    name: (str) Name of this value.
    index: (int) Dense, 0-indexed index giving the order that this
      value appears textually within its enum in the .proto file.
    number: (int) Actual number assigned to this enum value.
    type: (EnumDescriptor) EnumDescriptor to which this value
      belongs.  Set by EnumDescriptor's constructor if we're
      passed into one.
    options: (descriptor_pb2.EnumValueOptions) Enum value options message or
      None to use default enum value options options.
  cCstjj�dS(N(RR1R2R(RR$RaR@RbR((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>�s
cCsAtt|�j|d�||_||_||_||_dS(s>Arguments are as described in the attribute description above.tEnumValueOptionsN(R
R�RR$RaR@Rb(RR$RaR@RbR((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s
			N(
RRRRRR�RRR>R(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�{s

	tOneofDescriptorcBs8eZdZer*ejZdd�Zndd�Z	RS(s	Descriptor for a oneof field.

    name: (str) Name of the oneof field.
    full_name: (str) Full name of the oneof field, including package name.
    index: (int) 0-based index giving the order of the oneof field inside
      its containing type.
    containing_type: (Descriptor) Descriptor of the protocol message
      type that contains this field.  Set by the Descriptor constructor
      if we're passed into one.
    fields: (list of FieldDescriptor) The list of field descriptors this
      oneof can contain.
  cCstjj�tjj|�S(N(RR1R2R3tFindOneofByName(RR$R%RaR'R6R((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>�s
cCsJtt|�j|d�||_||_||_||_||_dS(s>Arguments are as described in the attribute description above.tOneofOptionsN(R
R�RR$R%RaR'R6(RR$R%RaR'R6R((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s				N(
RRRRRR�RRR>R(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR��s
	tServiceDescriptorcBs\eZdZer3ejZddddd�Znddddd�Z	d�Z
d�ZRS(s�Descriptor for a service.

    name: (str) Name of the service.
    full_name: (str) Full name of the service, including package name.
    index: (int) 0-indexed index giving the order that this services
      definition appears withing the .proto file.
    methods: (list of MethodDescriptor) List of methods provided by this
      service.
    methods_by_name: (dict str -> MethodDescriptor) Same MethodDescriptor
      objects as in |methods_by_name|, but indexed by "name" attribute in each
      MethodDescriptor.
    options: (descriptor_pb2.ServiceOptions) Service options message or
      None to use default service options.
    file: (FileDescriptor) Reference to file info.
  c		Cstjj�tjj|�S(N(RR1R2R3tFindServiceByName(	RR$R%RatmethodsRR&R*R+((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>�s
c	
Cs}tt|�j|d|||dd|d|�||_||_td�|D��|_x|jD]}	||	_qfWdS(NtServiceOptionsR*R+css|]}|j|fVqdS(N(R$(RAtm((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pys	<genexpr>�s(	R
R�RRRaR�RHtmethods_by_nametcontaining_service(
RR$R%RaR�RR&R*R+tmethod((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s		cCs|jj|d�S(s>Searches for the specified method, and returns its descriptor.N(R�tgetR(RR$((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pytFindMethodByName�scCstt|�j|�dS(s�Copies this to a descriptor_pb2.ServiceDescriptorProto.

    Args:
      proto: An empty descriptor_pb2.ServiceDescriptorProto.
    N(R
R�R/(RR.((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR/�sN(RRRRRR�RRR>RR�R/(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR��s		tMethodDescriptorcBs8eZdZer*ejZdd�Zndd�Z	RS(sDescriptor for a method in a service.

  name: (str) Name of the method within the service.
  full_name: (str) Full name of method.
  index: (int) 0-indexed index of the method inside the service.
  containing_service: (ServiceDescriptor) The service that contains this
    method.
  input_type: The descriptor of the message that this method accepts.
  output_type: The descriptor of the message that this method returns.
  options: (descriptor_pb2.MethodOptions) Method options message or
    None to use default method options.
  cCstjj�tjj|�S(N(RR1R2R3R�(RR$R%RaR�t
input_typetoutput_typeR((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>s
cCsStt|�j|d�||_||_||_||_||_||_dS(s�The arguments are as described in the description of MethodDescriptor
    attributes above.

    Note that containing_service may be None, and may be set later if necessary.
    t
MethodOptionsN(	R
R�RR$R%RaR�R�R�(RR$R%RaR�R�R�R((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRs					N(
RRRRRR�RRR>R(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR��s

	tFileDescriptorcBs_eZdZer9ejZddddddd�Znddddddd�Z	d�Z
RS(s;Descriptor for a file. Mimics the descriptor_pb2.FileDescriptorProto.

  Note that enum_types_by_name, extensions_by_name, and dependencies
  fields are only set by the message_factory module, and not by the
  generated proto code.

  name: name of file, relative to root of source tree.
  package: name of the package
  syntax: string indicating syntax of the file (can be "proto2" or "proto3")
  serialized_pb: (str) Byte string of serialized
    descriptor_pb2.FileDescriptorProto.
  dependencies: List of other FileDescriptors this FileDescriptor depends on.
  public_dependencies: A list of FileDescriptors, subset of the dependencies
    above, which were declared as "public".
  message_types_by_name: Dict of message names of their descriptors.
  enum_types_by_name: Dict of enum names and their descriptors.
  extensions_by_name: Dict of extension names and their descriptors.
  services_by_name: Dict of services names and their descriptors.
  pool: the DescriptorPool this descriptor belongs to.  When not passed to the
    constructor, the global default pool is used.
  c		Cs0|rtjj|�Stt|�j|�SdS(N(RR3tAddSerializedFileR
R�R>(	RR$tpackageRR-tdependenciestpublic_dependenciesR=tpool((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR>5sc	
Cs�tt|�j|d�|dkrDddlm}	|	j�}n||_i|_||_	||_
|pqd|_||_i|_
i|_i|_|p�g|_|p�g|_tj�dkr�|jdk	r�tjj|j�ndS(sConstructor.tFileOptionsi����(tdescriptor_poolRGRN(R
R�RRRR�tDefaultR�tmessage_types_by_nameR$R�R=R-RMRPtservices_by_nameR�R�RRnRR3R�(
RR$R�RR-R�R�R=R�R�((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRAs$								cCs|j|j�dS(s~Copies this to a descriptor_pb2.FileDescriptorProto.

    Args:
      proto: An empty descriptor_pb2.FileDescriptorProto.
    N(R,R-(RR.((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR/[sN(RRRRRR�RRR>RR/(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR�s	
cCs|j|�|S(s�Parses serialized options.

  This helper function is used to parse serialized options in generated
  proto2 files. It must not be used outside proto2.
  (R,(tmessagetstring((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt
_ParseOptionsds
cCs�t}g}xX|D]P}|dkr7|rct}qcq|rY|j|j��t}q||7}qW|r�|dj�r�|dj�|d<ndj|�S(s+Converts name to camel-case and returns it.t_it(RRtappendtuppertisuppertlowertjoin(R$tcapitalize_nexttresulttc((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRpns
	cCs|jd�r|jSdSdS(sCReturns the value of the field `options`, or None if it is not set.RN(tHasFieldRR(tdescriptor_proto((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt_OptionsOrNone�scCskt}g}xO|D]G}|dkr.t}q|rP|j|j��t}q||7}qWdj|�S(s*Converts name to Json name and returns it.R�R�(RRR�R�R�(R$R�R�R�((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyRm�s
		R�cCs�tj�dkr�|r�ddlm}|j�}|jj�j|�tt	j
��}|r�tjj
|jdd�|d�|_||_n
|d|_tjj|�tjj|j�}tr�|j|jSn|jg}|r|jd|�ni}	x�|jD]u}
dj
||
jg�}t|
j|dgt|
j�D]$\}}
t|
j||
j�^qR�}||	|<qWi}x[|jD]P}dj
||jg�}t |ddj
|�d	t!d
|�}|||<q�Wg}x9|j"D].}dj
||jg�}d}d}|j#rA|j#}nd}|j$d�r�|j%}dj
|||j&d�dg�}||kr�||}q�||	kr�|	|}q�nt'|j||jd|j|j(t'j)|j(�|j*d||dt!dd
t+|�dt!d|�
}|j,|�qWdj
|�}t-|j|dd|t.|j/��t.|	j/��gd
t+|��S(sMake a protobuf Descriptor given a DescriptorProto protobuf.

  Handles nested descriptors. Note that this is limited to the scope of defining
  a message inside of another message. Composite fields can currently only be
  resolved if the message is defined in the same scope as the field.

  Args:
    desc_proto: The descriptor_pb2.DescriptorProto protobuf message.
    package: Optional package name for the new message Descriptor (string).
    build_file_if_cpp: Update the C++ descriptor pool if api matches.
                       Set to False on recursion, so no duplicates are created.
    syntax: The syntax/semantics that should be used.  Set to "proto3" to get
            proto3 field presence semantics.
  Returns:
    A Descriptor for protobuf messages.
  Ri����(Rt.t/s.protoiR�tbuild_file_if_cppR=t	type_nameiRRhRjN(0RRnRRtFileDescriptorProtoRftaddt	MergeFromtstrtuuidtuuid4tostpathR�treplaceR$R�RR3tAddtFindFileByNameRR�tinsertRTR�Rt	enumerateR[R�R@RStMakeDescriptorRRRRjR�R�trfindR^RbRtRdR�R�R0tlistRD(t
desc_protoR�R�R=Rtfile_descriptor_protot
proto_nameR�tfull_message_nameR8t
enum_protoR%tiitenum_valt	enum_descR7tnested_prototnested_descR6tfield_protoRjR�tfull_type_nameRRt	desc_name((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyR��sz
:					
	$($Rt
__author__tsixtgoogle.protobuf.internalRRRRnR�R�tgoogle.protobuf.pyextRRt	ExceptionRRRbR	twith_metaclassRR#R0R^R�R�R�R�R�R�R�RpR�RmRRR�(((s>/usr/lib/python2.7/site-packages/google/protobuf/descriptor.pyt<module>!s<	=8��?#!5'I	
			PK�\=�=��� protobuf/unittest_import_pb2.pycnu�[����
���hc-@s1ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZdd
lTejddddddded�dejgdejg�Zejdddddddedejddddd d!d"dd#d�ejdd$dd%d d&d"dd#d�ejdd'dd(d d)d"dd#d�gd*dd"dd+d,d-d.�	Zeje�eje�Zejdd/dd0dddedejdd1ddd dd"dd#d�ejdd2dd%d d%d"dd#d�ejdd3dd(d d(d"dd#d�gd*dd"dd+d4d-d5�	Zeje�eje�Zd!Zd&Z d)Z!dZ"d%Z#d(Z$ej%dd6dd7ddded*dd8ej&dd9dd:ddd d%d#d;d<d%d=d%d>e'd?dd@ddAdd*ddBe'dCdd"dde�gdDgdEgdFgd"ddGe'dddHgdIgd+dJd-dK�Z(e(ej)d6<eej*d<eej*d/<ej+e�ej,d6e	j-fe.dLe(dMdN��Z/ej0e/�e1e_2ej3ej4�edO��e_5dS(Pi����NiicCs|S(N((tx((sG/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sG/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_import_public_pb2(t*tnames%google/protobuf/unittest_import.prototpackagetprotobuf_unittest_importtsyntaxtproto2t
serialized_pbs
%google/protobuf/unittest_import.protoprotobuf_unittest_import,google/protobuf/unittest_import_public.proto"

ImportMessage	
d (*<

ImportEnum

IMPORT_FOO

IMPORT_BAR

IMPORT_BAZ	*1
ImportEnumForMap
UNKNOWN
FOO
BARB
com.google.protobuf.testH�Ptdependenciestpublic_dependenciest
ImportEnumt	full_names#protobuf_unittest_import.ImportEnumtfilenametfiletvaluest
IMPORT_FOOtindextnumberitoptionsttypet
IMPORT_BARiit
IMPORT_BAZii	tcontaining_typetserialized_starti�tserialized_endi�tImportEnumForMaps)protobuf_unittest_import.ImportEnumForMaptUNKNOWNtFOOtBARi�i�t
ImportMessages&protobuf_unittest_import.ImportMessagetfieldstds(protobuf_unittest_import.ImportMessage.ditcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsiqi�t
DESCRIPTORt
__module__s#google.protobuf.unittest_import_pb2s
com.google.protobuf.testH�(6tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt5google_dot_protobuf_dot_unittest__import__public__pb2t*google.protobuf.unittest_import_public_pb2tFileDescriptorR9tEnumDescriptortNonetEnumValueDescriptort_IMPORTENUMtRegisterEnumDescriptortEnumTypeWrapperRt_IMPORTENUMFORMAPR$RRR R%R&R't
DescriptortFieldDescriptortFalset_IMPORTMESSAGEtmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR(tRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((sG/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_pb2.pyt<module>s�%
						
					
			




	PK�\ӄ���protobuf/struct_pb2.pyonu�[����
���hc2@s�
ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�Zejdd
ddddded��Zejdddddddedejdddddddddd�gddddd d!d"d#�	Zeje�eje�ZdZejdd$dd%dddeddd&ejdd'dd(dddd)dd*d+d*d,d)d-ed.ed/�jd0�d1dd2dddd3ed4dddde�ejdd5dd6dd)dd7dd8d+d9d,d)d-ed.dd1dd2dddd3ed4dddde�gd:gd;gd<gdejej �ed=��d>eddd?gd@gd dAd"dB�Z!ejddCddDdddeddd&ejdd&ddEdddd)dd8d+d9d,dd-ed.gd1dd2dddd3ed4dddde�gd:gd;e!gd<gddd>eddd?gd@gd dFd"dB�Z"ejddGddHdddeddd&ejddIddJdddd)ddKd+dLd,d)d-ed.dd1dd2dddd3ed4dddde�ejddMddNdd)dd7dd)d+dOd,d)d-ed.e#d�d1dd2dddd3ed4dddde�ejddPddQdd7dddd*d+d*d,d)d-ed.ed/�jd0�d1dd2dddd3ed4dddde�ejddRddSddddTddLd+dUd,d)d-ed.ed1dd2dddd3ed4dddde�ejddVddWddTddOdd8d+d9d,d)d-ed.dd1dd2dddd3ed4dddde�ejddXddYddOddZdd8d+d9d,d)d-ed.dd1dd2dddd3ed4dddde�gd:gd;gd<gddd>eddd?gd@ej$dd[dd\ddddd&g�gd d]d"d^�Z%ejdd_dd`dddeddd&ejddddadddd)dd8d+d9d,dd-ed.gd1dd2dddd3ed4dddde�gd:gd;gd<gddd>eddd?gd@gd dbd"dc�Z&e%e!j'd5_(e"e!_)e!e"j'd&_(ee%j'dI_*e"e%j'dV_(e&e%j'dX_(e%j+d[j,j-e%j'dI�e%j+d[e%j'dI_.e%j+d[j,j-e%j'dM�e%j+d[e%j'dM_.e%j+d[j,j-e%j'dP�e%j+d[e%j'dP_.e%j+d[j,j-e%j'dR�e%j+d[e%j'dR_.e%j+d[j,j-e%j'dV�e%j+d[e%j'dV_.e%j+d[j,j-e%j'dX�e%j+d[e%j'dX_.e%e&j'd_(e"ej/dC<e%ej/dG<e&ej/d_<eej0d<ej1e�ej2dCe	j3fe4d$ej2d$e	j3fe4dde!dedf��dde"dedf��Z5ej6e5�ej6e5j7�ej2dGe	j3fe4dde%dedf��Z8ej6e8�ej2d_e	j3fe4dde&dedf��Z9ej6e9�e:e_;ejej<�edg��e_=e:e!_;ejej �ed=��e!_=dS(hi����NiicCs|S(N((tx((s>/usr/lib/python2.7/site-packages/google/protobuf/struct_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s>/usr/lib/python2.7/site-packages/google/protobuf/struct_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/struct.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/struct.protogoogle.protobuf"�
Struct3
fields (2#.google.protobuf.Struct.FieldsEntryE
FieldsEntry
key (	%
value (2.google.protobuf.Value:8"�
Value0

null_value (2.google.protobuf.NullValueH
number_value (H
string_value (	H

bool_value (H/
struct_value (2.google.protobuf.StructH0

list_value (2.google.protobuf.ListValueHB
kind"3
	ListValue&
values (2.google.protobuf.Value*
	NullValue

NULL_VALUEB�
com.google.protobufBStructProtoPZ1github.com/golang/protobuf/ptypes/struct;structpb��GPB�Google.Protobuf.WellKnownTypesbproto3t	NullValuet	full_namesgoogle.protobuf.NullValuetfilenametfiletvaluest
NULL_VALUEtindextnumbertoptionsttypetcontaining_typetserialized_starti�tserialized_endi�tFieldsEntrys"google.protobuf.Struct.FieldsEntrytfieldstkeys&google.protobuf.Struct.FieldsEntry.keyii	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetvalues(google.protobuf.Struct.FieldsEntry.valueiii
t
extensionstnested_typest
enum_typess8t
is_extendabletextension_rangestoneofsiqi�tStructsgoogle.protobuf.Structsgoogle.protobuf.Struct.fieldsi2tValuesgoogle.protobuf.Valuet
null_values google.protobuf.Value.null_valueiitnumber_values"google.protobuf.Value.number_valueitstring_values"google.protobuf.Value.string_valuet
bool_values google.protobuf.Value.bool_valueiitstruct_values"google.protobuf.Value.struct_valuet
list_values google.protobuf.Value.list_valueitkindsgoogle.protobuf.Value.kindi�i�t	ListValuesgoogle.protobuf.ListValues google.protobuf.ListValue.valuesi�i�t
DESCRIPTORt
__module__sgoogle.protobuf.struct_pb2s�
com.google.protobufBStructProtoPZ1github.com/golang/protobuf/ptypes/struct;structpb��GPB�Google.Protobuf.WellKnownTypes(>tsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbtFileDescriptorR9tEnumDescriptortNonetEnumValueDescriptort
_NULLVALUEtRegisterEnumDescriptortEnumTypeWrapperRRt
DescriptortFieldDescriptortFalsetdecodet
_ParseOptionstMessageOptionst_STRUCT_FIELDSENTRYt_STRUCTtfloattOneofDescriptort_VALUEt
_LISTVALUEtfields_by_nameR$RR%toneofs_by_nameRtappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR/tRegisterMessageRR0R8tTruethas_optionstFileOptionst_options(((s>/usr/lib/python2.7/site-packages/google/protobuf/struct_pb2.pyt<module>s�%				
																					







	!	PK�\���8�8�%protobuf/test_messages_proto2_pb2.pyonu�[����
���hc�@s�YddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�Zejdd
ddddded��Zejdddddddedejdddddddddd�ejdddd dd dddd�ejdd!dd"dd"dddd�gd#dddd$d%d&d'�	Zeje�eje�ZdZd Zd"Zd(Zejdd)dd*dddd(dd+d,d d-d d.ed/dd0dd1dd#dd2e d3dddde�Z!ejdd4dd5dddedejdd6dddddddd�ejdd7dd dd dddd�ejdd8dd"dd"dddd�ejdd9dddddddd�gd#dddd$d:d&d;�	Z"eje"�ej#dd<dd=ddded#dd>ejdd?dd@dddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddAddBdd dd"ddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdddHedddIgdJgd$dKd&dL�Z$ej#ddMddNddded#dd>ejddOddPdddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQddRdd dd"dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dTd&dU�Z'ej#ddVddWddded#dd>ejddOddXdddd ddd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQddYdd dd"ddd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dZd&d[�Z(ej#dd\dd]ddded#dd>ejddOdd^dddd dd_d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd`dd dd"dd_d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dad&db�Z)ej#ddcdddddded#dd>ejddOddedddd ddfd,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQddgdd dd"ddfd,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dhd&di�Z*ej#ddjddkddded#dd>ejddOddldddd ddmd,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQddndd dd"ddmd,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dod&dp�Z+ej#ddqddrddded#dd>ejddOddsdddd ddtd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQddudd dd"ddtd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$dvd&dw�Z,ej#ddxddyddded#dd>ejddOddzdddd dd{d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd|dd dd"dd{d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d}d&d~�Z-ej#dddd�ddded#dd>ejddOdd�dddd dd�d,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z.ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z/ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z0ej#dd�dd�ddded#dd>ejddOdd�dddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd"d,d�d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z2ej#dd�dd�ddded#dd>ejddOdd�dddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd d,d+d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z3ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d{d-d d.ed/ed0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d{d-d d.ed/ed0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z4ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z6ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d�d-d d.ed/ed��d0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z7ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"ddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z8ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"ddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z9ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d�d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z:ej#dd�dd�ddded#dd>ejddOdd�dddd dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejddQdd�dd dd"dd�d,d�d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdej%ej&�edS��dHedddIgdJgd$d�d&d��Z;ej#dd�dd�ddded#dd>ejdd�dd�dddd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd dd�dd_d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdddHedddIgdJgd$d�d&d��Z<ej#dd�dd�ddded#dd>gdEgdFgdGgdej%ej&�ed���dHe dddIdgdJgd$d�d&d��Z=ej#dd�dd�ddded#dd>ejdd�dd�dddd�dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�gdEejdd�dd�dddd�ddCd,dDd-d d.ed/dd0dd1dd#dd2e d3dddde�gdFgdGgdddHedddIgdJgd$d�d&d��Z>ej#dd�dd�ddded#dd>ejdd�dd�dddd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEejdd�dd�dddd�ddCd,dDd-d d.ed/dd0dd1dd#dd2e d3dddde�gdFgdGgdddHedddIgdJgd$d�d&d��Z?ej#dd�dd�ddded#dd>ejdd�dd�dddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd dd"ddd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd"dddd_d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�ddddfddfd,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�ddfdd+ddmd,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd+dd�ddtd,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd�dd{dd{d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd{dd�dd�d,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd�dd�dd�d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd�ddDdd�d,d"d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddd	ddDddCdd"d,d�d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�ejdd
ddddCdd�dd d,d+d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�ejdddd
dd�dd_dd�d,d{d-d d.ed/ed0dd1dd#dd2ed3dddde�ejdddddd_dd�dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejdddddd�dd�dd�d,d�d-d d.ed/ed��d0dd1dd#dd2ed3dddde�ejdddddd�ddtddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd�ddddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�ejddddddmdddd�d,d�d-d d.ed/dd0dd1dd#dd2ed3dddde�ejddddddtdddd�d,d�d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddddddd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3ddej%ej@�ed ��de�ejdd!dd"dd#dd�dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3ddej%ej@�ed���de�ejdd$dd%dddd&ddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd'dd(dddd)dd+d,d d-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd*dd+dd,dd-ddd,d"d-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd.dd/dddd0dd_d,dd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd1dd2dd�dd3ddfd,dfd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd4dd5dd6dd7ddmd,d d-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd8dd9dd&dd:ddtd,d"d-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd;dd<dd=dd>dd{d,dd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd?dd@ddAddBdd�d,dfd-dd.ed/gd0dd1dd#dd2ed3dddde�ejddCddDddEddFdd�d,d d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddGddHdd)ddIdd�d,d"d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddJddKdd-ddLdd"d,d�d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddMddNdd0ddOdd d,d+d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddPddQdd3ddRdd�d,d{d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddSddTdd7ddUdd�d,d�d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddVddWdd:ddXdd�d,d�d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddYddZdd>dd[ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd\dd]ddBdd^ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd_dd`ddFddadd�d,d�d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddbddcddIddddd�d,d�d-dd.ed/gd0dd1dd#dd2ed3dddde�ejddeddfddLddgdd�d,d�d-dd.ed/gd0dd1dd#dd2ed3ddej%ej@�ed ��de�ejddhddiddOddjdd�d,d�d-dd.ed/gd0dd1dd#dd2ed3ddej%ej@�ed���de�ejddkddlddRddmddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejddnddoddUddpddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejddqddrddXddsddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejddtdduddvddwddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejddxddyddzdd{ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd|dd}dd[dd~ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdddd�dd^dd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddadd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddddd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddgdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddjdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddmdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddpdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddsdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�ddwdd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�dd{dd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�dd~dd�ddCd,dDd-dd.ed/gd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd_d,dd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�ddCd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd�d,d�d-d d.ed/ed��j5d��d0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd�d,d�d-d d.ed/ed��d0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd�d,d{d-d d.ed/ed0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�ddfd,dfd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd"d,d�d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd d,d+d-d d.ed/e1d�d0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd�d,d�d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�ddDd,dDd-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dd�dd�dd�dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdd�dddddddd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddddddd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�ejdddddd	dd
dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gZdEgdFe$e'e(e)e*e+e,e-e.e/e0e2e3e4e6e7e8e9e:e;e<e=e>e?gdGe"gdddHe dddIdgdJejAddddddd#dd>g�gd$d�d&d
�ZBej#ddddddded#dd>ejdddddddd dd+d,d d-d d.ed/dd0dd1dd#dd2ed3dddde�gdEgdFgdGgdddHedddIgdJgd$dd&d�ZCeBe$jDdA_EeBe$_FeBe'_FeBe(_FeBe)_FeBe*_FeBe+_FeBe,_FeBe-_FeBe._FeBe/_FeBe0_FeBe2_FeBe3_FeBe4_FeBe6_FeBe7_Fe$e8jDdQ_EeBe8_FeCe9jDdQ_EeBe9_Fe"e:jDdQ_GeBe:_Fee;jDdQ_GeBe;_FeBe<_FeBe=_FeBe>_FeBe?_Fe$eBjDd_EeCeBjDd_Ee"eBjDd_GeeBjDd_GeBeBjDd$_Ee$eBjDdY_EeCeBjDd\_Ee"eBjDd__GeeBjDdb_Ge'eBjDdk_Ee(eBjDdn_Ee)eBjDdq_Ee*eBjDdt_Ee+eBjDdx_Ee,eBjDd|_Ee-eBjDd_Ee.eBjDd�_Ee/eBjDd�_Ee0eBjDd�_Ee2eBjDd�_Ee3eBjDd�_Ee4eBjDd�_Ee6eBjDd�_Ee7eBjDd�_Ee8eBjDd�_Ee9eBjDd�_Ee:eBjDd�_Ee;eBjDd�_Ee$eBjDd�_Ee"eBjDd�_Ge<eBjDd�_EeBe"_FeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBjHdjIjJeBjDd��eBjHdeBjDd�_KeBejLd�<eCejLd<eejMd<e!ejNd)<ejOe�ejPd�e	jQfeRd<ejPd<e	jQfeRde$dd��dMejPdMe	jQfeRde'dd��dVejPdVe	jQfeRde(dd��d\ejPd\e	jQfeRde)dd��dcejPdce	jQfeRde*dd��djejPdje	jQfeRde+dd��dqejPdqe	jQfeRde,dd��dxejPdxe	jQfeRde-dd��dejPde	jQfeRde.dd��d�ejPd�e	jQfeRde/dd��d�ejPd�e	jQfeRde0dd��d�ejPd�e	jQfeRde2dd��d�ejPd�e	jQfeRde3dd��d�ejPd�e	jQfeRde4dd��d�ejPd�e	jQfeRde6dd��d�ejPd�e	jQfeRde7dd��d�ejPd�e	jQfeRde8dd��d�ejPd�e	jQfeRde9dd��d�ejPd�e	jQfeRde:dd��d�ejPd�e	jQfeRde;dd��d�ejPd�e	jQfeRde<dd��d�ejPd�e	jQfeRde=dd��d�ejPd�e	jQfeRde>dd��d�ejPd�e	jQfeRde?dd��deBdd��ZSejTeS�ejTeSjU�ejTeSjV�ejTeSjW�ejTeSjX�ejTeSjY�ejTeSjZ�ejTeSj[�ejTeSj\�ejTeSj]�ejTeSj^�ejTeSj_�ejTeSj`�ejTeSja�ejTeSjb�ejTeSjc�ejTeSjd�ejTeSje�ejTeSjf�ejTeSjg�ejTeSjh�ejTeSji�ejTeSjj�ejTeSjk�ejTeSjl�ejPde	jQfeRdeCdd��ZmejTem�eSjne!�e>e>jNd�_EeSjjjne>jNd��e?e?jNd�_EeSjjjne?jNd��e e_oej%ejp�ed��e_qe e'_oej%ej&�edS��e'_qe e(_oej%ej&�edS��e(_qe e)_oej%ej&�edS��e)_qe e*_oej%ej&�edS��e*_qe e+_oej%ej&�edS��e+_qe e,_oej%ej&�edS��e,_qe e-_oej%ej&�edS��e-_qe e._oej%ej&�edS��e._qe e/_oej%ej&�edS��e/_qe e0_oej%ej&�edS��e0_qe e2_oej%ej&�edS��e2_qe e3_oej%ej&�edS��e3_qe e4_oej%ej&�edS��e4_qe e6_oej%ej&�edS��e6_qe e7_oej%ej&�edS��e7_qe e8_oej%ej&�edS��e8_qe e9_oej%ej&�edS��e9_qe e:_oej%ej&�edS��e:_qe e;_oej%ej&�edS��e;_qe e=_oej%ej&�ed���e=_qe eBjDd_oej%ej@�ed ��eBjDd_qe eBjDd!_oej%ej@�ed���eBjDd!_qe eBjDde_oej%ej@�ed ��eBjDde_qe eBjDdh_oej%ej@�ed���eBjDdh_qdS(i����NiicCs|S(N((tx((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto2_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto2_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames*google/protobuf/test_messages_proto2.prototpackagesprotobuf_test_messages.proto2tsyntaxtproto2t
serialized_pbs�
*google/protobuf/test_messages_proto2.protoprotobuf_test_messages.proto2"�2
TestAllTypesProto2
optional_int32 (
optional_int64 (
optional_uint32 (

optional_uint64 (
optional_sint32 (
optional_sint64 (
optional_fixed32 (
optional_fixed64 (
optional_sfixed32	 (
optional_sfixed64
 (
optional_float (
optional_double (

optional_bool
 (
optional_string (	
optional_bytes (`
optional_nested_message (2?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessageU
optional_foreign_message (23.protobuf_test_messages.proto2.ForeignMessageProto2Z
optional_nested_enum (2<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnumO
optional_foreign_enum (20.protobuf_test_messages.proto2.ForeignEnumProto2!
optional_string_piece (	B

optional_cord (	BL
recursive_message (21.protobuf_test_messages.proto2.TestAllTypesProto2
repeated_int32 (
repeated_int64  (
repeated_uint32! (

repeated_uint64" (
repeated_sint32# (
repeated_sint64$ (
repeated_fixed32% (
repeated_fixed64& (
repeated_sfixed32' (
repeated_sfixed64( (
repeated_float) (
repeated_double* (

repeated_bool+ (
repeated_string, (	
repeated_bytes- (`
repeated_nested_message0 (2?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessageU
repeated_foreign_message1 (23.protobuf_test_messages.proto2.ForeignMessageProto2Z
repeated_nested_enum3 (2<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnumO
repeated_foreign_enum4 (20.protobuf_test_messages.proto2.ForeignEnumProto2!
repeated_string_piece6 (	B

repeated_cord7 (	B]
map_int32_int328 (2D.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry]
map_int64_int649 (2D.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entrya
map_uint32_uint32: (2F.protobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entrya
map_uint64_uint64; (2F.protobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entrya
map_sint32_sint32< (2F.protobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entrya
map_sint64_sint64= (2F.protobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entrye
map_fixed32_fixed32> (2H.protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entrye
map_fixed64_fixed64? (2H.protobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entryi
map_sfixed32_sfixed32@ (2J.protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entryi
map_sfixed64_sfixed64A (2J.protobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry]
map_int32_floatB (2D.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry_
map_int32_doubleC (2E.protobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntryY

map_bool_boolD (2B.protobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntrya
map_string_stringE (2F.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry_
map_string_bytesF (2E.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntryp
map_string_nested_messageG (2M.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntryr
map_string_foreign_messageH (2N.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntryj
map_string_nested_enumI (2J.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntryl
map_string_foreign_enumJ (2K.protobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry
oneof_uint32o (
H_
oneof_nested_messagep (2?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessageH
oneof_stringq (	H
oneof_bytesr (H

oneof_bools (H
oneof_uint64t (H
oneof_floatu (H
oneof_doublev (HR

oneof_enumw (2<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnumHE
data� (
26.protobuf_test_messages.proto2.TestAllTypesProto2.Data

fieldname1� (
field_name2� (
_field_name3� (

field__name4_� (
field0name5� (

field_0_name6� (

fieldName7� (

FieldName8� (
field_Name9� (
Field_Name10� (
FIELD_NAME11� (
FIELD_name12� (
__field_name13� (
__Field_name14� (

field__name15� (

field__Name16� (
field_name17__� (
Field_name18__� (b

NestedMessage	
a (F
corecursive (21.protobuf_test_messages.proto2.TestAllTypesProto24
MapInt32Int32Entry
key (
value (:84
MapInt64Int64Entry
key (
value (:86
MapUint32Uint32Entry
key (

value (
:86
MapUint64Uint64Entry
key (
value (:86
MapSint32Sint32Entry
key (
value (:86
MapSint64Sint64Entry
key (
value (:88
MapFixed32Fixed32Entry
key (
value (:88
MapFixed64Fixed64Entry
key (
value (:8:
MapSfixed32Sfixed32Entry
key (
value (:8:
MapSfixed64Sfixed64Entry
key (
value (:84
MapInt32FloatEntry
key (
value (:85
MapInt32DoubleEntry
key (
value (:82
MapBoolBoolEntry
key (
value (:86
MapStringStringEntry
key (	
value (	:85
MapStringBytesEntry
key (	
value (:8~
MapStringNestedMessageEntry
key (	N
value (2?.protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage:8s
MapStringForeignMessageEntry
key (	B
value (23.protobuf_test_messages.proto2.ForeignMessageProto2:8x
MapStringNestedEnumEntry
key (	K
value (2<.protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnum:8m
MapStringForeignEnumEntry
key (	?
value (20.protobuf_test_messages.proto2.ForeignEnumProto2:83
Data
group_int32� (
group_uint32� (
!
MessageSetCorrect*����:�
MessageSetCorrectExtension1
str (	2�
message_set_extensionC.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect��^ (2M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1�
MessageSetCorrectExtension2	
i	 (2�
message_set_extensionC.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrect��� (2M.protobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2"9

NestedEnum
FOO
BAR
BAZ
NEG���������*x�B
oneof_field"!
ForeignMessageProto2	
c (*F
ForeignEnumProto2
FOREIGN_FOO
FOREIGN_BAR
FOREIGN_BAZ:J
extension_int321.protobuf_test_messages.proto2.TestAllTypesProto2x (B/
(com.google.protobuf_test_messages.proto2H�tForeignEnumProto2t	full_names/protobuf_test_messages.proto2.ForeignEnumProto2tfilenametfiletvaluestFOREIGN_FOOtindextnumbertoptionsttypetFOREIGN_BARitFOREIGN_BAZitcontaining_typetserialized_starti�tserialized_endiixtextension_int32s-protobuf_test_messages.proto2.extension_int32itcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
NestedEnums;protobuf_test_messages.proto2.TestAllTypesProto2.NestedEnumtFOOtBARtBAZtNEGi]i�t
NestedMessages>protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessagetfieldstas@protobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage.atcorecursivesJprotobuf_test_messages.proto2.TestAllTypesProto2.NestedMessage.corecursiveii
t
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsi�itMapInt32Int32EntrysCprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32EntrytkeysGprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry.keytvaluesIprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32Int32Entry.values8iiNtMapInt64Int64EntrysCprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64EntrysGprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry.keysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt64Int64Entry.valueiPi�tMapUint32Uint32EntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry.keyi
sKprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint32Uint32Entry.valuei�i�tMapUint64Uint64EntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry.keyisKprotobuf_test_messages.proto2.TestAllTypesProto2.MapUint64Uint64Entry.valuei�i�tMapSint32Sint32EntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry.keyisKprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint32Sint32Entry.valuei�i,tMapSint64Sint64EntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry.keyisKprotobuf_test_messages.proto2.TestAllTypesProto2.MapSint64Sint64Entry.valuei.idtMapFixed32Fixed32EntrysGprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32EntrysKprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry.keyisMprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed32Fixed32Entry.valueifi�tMapFixed64Fixed64EntrysGprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64EntrysKprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry.keyisMprotobuf_test_messages.proto2.TestAllTypesProto2.MapFixed64Fixed64Entry.valuei�i�tMapSfixed32Sfixed32EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32EntrysMprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry.keyisOprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed32Sfixed32Entry.valuei�itMapSfixed64Sfixed64EntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64EntrysMprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry.keyisOprotobuf_test_messages.proto2.TestAllTypesProto2.MapSfixed64Sfixed64Entry.valueiiPtMapInt32FloatEntrysCprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntrysGprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry.keysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32FloatEntry.valueiRi�tMapInt32DoubleEntrysDprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntrysHprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry.keysJprotobuf_test_messages.proto2.TestAllTypesProto2.MapInt32DoubleEntry.valuei�i�tMapBoolBoolEntrysAprotobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry.keyisGprotobuf_test_messages.proto2.TestAllTypesProto2.MapBoolBoolEntry.valuei�i�tMapStringStringEntrysEprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry.keyi	Rsutf-8sKprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringStringEntry.valuei�i)tMapStringBytesEntrysDprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntrysHprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry.keysJprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringBytesEntry.valueii+i`tMapStringNestedMessageEntrysLprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntrysPprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry.keysRprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedMessageEntry.valueibi�tMapStringForeignMessageEntrysMprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntrysQprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.keysSprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignMessageEntry.valuei�iUtMapStringNestedEnumEntrysIprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntrysMprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.keysOprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringNestedEnumEntry.valueiiWi�tMapStringForeignEnumEntrysJprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntrysNprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.keysPprotobuf_test_messages.proto2.TestAllTypesProto2.MapStringForeignEnumEntry.valuei�i>tDatas5protobuf_test_messages.proto2.TestAllTypesProto2.Datatgroup_int32sAprotobuf_test_messages.proto2.TestAllTypesProto2.Data.group_int32i�tgroup_uint32sBprotobuf_test_messages.proto2.TestAllTypesProto2.Data.group_uint32i�i@istMessageSetCorrectsBprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectsi���iui�tMessageSetCorrectExtension1sLprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1tstrsPprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.stritmessage_set_extensionsbprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension1.message_set_extensioni��i�iytMessageSetCorrectExtension2sLprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2tisNprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.isbprotobuf_test_messages.proto2.TestAllTypesProto2.MessageSetCorrectExtension2.message_set_extensioni�?i|i[tTestAllTypesProto2s0protobuf_test_messages.proto2.TestAllTypesProto2toptional_int32s?protobuf_test_messages.proto2.TestAllTypesProto2.optional_int32toptional_int64s?protobuf_test_messages.proto2.TestAllTypesProto2.optional_int64toptional_uint32s@protobuf_test_messages.proto2.TestAllTypesProto2.optional_uint32toptional_uint64s@protobuf_test_messages.proto2.TestAllTypesProto2.optional_uint64toptional_sint32s@protobuf_test_messages.proto2.TestAllTypesProto2.optional_sint32toptional_sint64s@protobuf_test_messages.proto2.TestAllTypesProto2.optional_sint64toptional_fixed32sAprotobuf_test_messages.proto2.TestAllTypesProto2.optional_fixed32toptional_fixed64sAprotobuf_test_messages.proto2.TestAllTypesProto2.optional_fixed64toptional_sfixed32sBprotobuf_test_messages.proto2.TestAllTypesProto2.optional_sfixed32toptional_sfixed64sBprotobuf_test_messages.proto2.TestAllTypesProto2.optional_sfixed64toptional_floats?protobuf_test_messages.proto2.TestAllTypesProto2.optional_floattoptional_doubles@protobuf_test_messages.proto2.TestAllTypesProto2.optional_doublet
optional_bools>protobuf_test_messages.proto2.TestAllTypesProto2.optional_booltoptional_strings@protobuf_test_messages.proto2.TestAllTypesProto2.optional_stringtoptional_bytess?protobuf_test_messages.proto2.TestAllTypesProto2.optional_bytestoptional_nested_messagesHprotobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_messagetoptional_foreign_messagesIprotobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_messageitoptional_nested_enumsEprotobuf_test_messages.proto2.TestAllTypesProto2.optional_nested_enumitoptional_foreign_enumsFprotobuf_test_messages.proto2.TestAllTypesProto2.optional_foreign_enumitoptional_string_piecesFprotobuf_test_messages.proto2.TestAllTypesProto2.optional_string_pieceist
optional_cords>protobuf_test_messages.proto2.TestAllTypesProto2.optional_corditrecursive_messagesBprotobuf_test_messages.proto2.TestAllTypesProto2.recursive_messageitrepeated_int32s?protobuf_test_messages.proto2.TestAllTypesProto2.repeated_int32itrepeated_int64s?protobuf_test_messages.proto2.TestAllTypesProto2.repeated_int64ii trepeated_uint32s@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_uint32i!trepeated_uint64s@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_uint64i"trepeated_sint32s@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_sint32ii#trepeated_sint64s@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_sint64i$trepeated_fixed32sAprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_fixed32ii%trepeated_fixed64sAprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_fixed64ii&trepeated_sfixed32sBprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_sfixed32ii'trepeated_sfixed64sBprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_sfixed64i(trepeated_floats?protobuf_test_messages.proto2.TestAllTypesProto2.repeated_floati)trepeated_doubles@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_doublei*t
repeated_bools>protobuf_test_messages.proto2.TestAllTypesProto2.repeated_booli+trepeated_strings@protobuf_test_messages.proto2.TestAllTypesProto2.repeated_stringi,trepeated_bytess?protobuf_test_messages.proto2.TestAllTypesProto2.repeated_bytesi-trepeated_nested_messagesHprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_messagei0trepeated_foreign_messagesIprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_messagei1trepeated_nested_enumsEprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_nested_enumi3trepeated_foreign_enumsFprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_foreign_enumi4trepeated_string_piecesFprotobuf_test_messages.proto2.TestAllTypesProto2.repeated_string_piecei6t
repeated_cords>protobuf_test_messages.proto2.TestAllTypesProto2.repeated_cordi7tmap_int32_int32s@protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_int32i8tmap_int64_int64s@protobuf_test_messages.proto2.TestAllTypesProto2.map_int64_int64i9tmap_uint32_uint32sBprotobuf_test_messages.proto2.TestAllTypesProto2.map_uint32_uint32i:tmap_uint64_uint64sBprotobuf_test_messages.proto2.TestAllTypesProto2.map_uint64_uint64i.i;tmap_sint32_sint32sBprotobuf_test_messages.proto2.TestAllTypesProto2.map_sint32_sint32i/i<tmap_sint64_sint64sBprotobuf_test_messages.proto2.TestAllTypesProto2.map_sint64_sint64i=tmap_fixed32_fixed32sDprotobuf_test_messages.proto2.TestAllTypesProto2.map_fixed32_fixed32i>tmap_fixed64_fixed64sDprotobuf_test_messages.proto2.TestAllTypesProto2.map_fixed64_fixed64i2i?tmap_sfixed32_sfixed32sFprotobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed32_sfixed32i@tmap_sfixed64_sfixed64sFprotobuf_test_messages.proto2.TestAllTypesProto2.map_sfixed64_sfixed64iAtmap_int32_floats@protobuf_test_messages.proto2.TestAllTypesProto2.map_int32_floati5iBtmap_int32_doublesAprotobuf_test_messages.proto2.TestAllTypesProto2.map_int32_doubleiCt
map_bool_bools>protobuf_test_messages.proto2.TestAllTypesProto2.map_bool_booliDtmap_string_stringsBprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_stringiEtmap_string_bytessAprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_bytesiFtmap_string_nested_messagesJprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_messageiGtmap_string_foreign_messagesKprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_messageiHtmap_string_nested_enumsGprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_nested_enumiItmap_string_foreign_enumsHprotobuf_test_messages.proto2.TestAllTypesProto2.map_string_foreign_enumiJtoneof_uint32s=protobuf_test_messages.proto2.TestAllTypesProto2.oneof_uint32iotoneof_nested_messagesEprotobuf_test_messages.proto2.TestAllTypesProto2.oneof_nested_messageiptoneof_strings=protobuf_test_messages.proto2.TestAllTypesProto2.oneof_stringiqtoneof_bytess<protobuf_test_messages.proto2.TestAllTypesProto2.oneof_bytesirt
oneof_bools;protobuf_test_messages.proto2.TestAllTypesProto2.oneof_boolistoneof_uint64s=protobuf_test_messages.proto2.TestAllTypesProto2.oneof_uint64ittoneof_floats<protobuf_test_messages.proto2.TestAllTypesProto2.oneof_floatiutoneof_doubles=protobuf_test_messages.proto2.TestAllTypesProto2.oneof_doubleivt
oneof_enums;protobuf_test_messages.proto2.TestAllTypesProto2.oneof_enumiwtdatas5protobuf_test_messages.proto2.TestAllTypesProto2.datai�t
fieldname1s;protobuf_test_messages.proto2.TestAllTypesProto2.fieldname1i�tfield_name2s<protobuf_test_messages.proto2.TestAllTypesProto2.field_name2i�t_field_name3s=protobuf_test_messages.proto2.TestAllTypesProto2._field_name3i�t
field__name4_s>protobuf_test_messages.proto2.TestAllTypesProto2.field__name4_iKi�tfield0name5s<protobuf_test_messages.proto2.TestAllTypesProto2.field0name5iLi�t
field_0_name6s>protobuf_test_messages.proto2.TestAllTypesProto2.field_0_name6iMi�t
fieldName7s;protobuf_test_messages.proto2.TestAllTypesProto2.fieldName7iNi�t
FieldName8s;protobuf_test_messages.proto2.TestAllTypesProto2.FieldName8iOi�tfield_Name9s<protobuf_test_messages.proto2.TestAllTypesProto2.field_Name9iPi�tField_Name10s=protobuf_test_messages.proto2.TestAllTypesProto2.Field_Name10iQi�tFIELD_NAME11s=protobuf_test_messages.proto2.TestAllTypesProto2.FIELD_NAME11iRi�tFIELD_name12s=protobuf_test_messages.proto2.TestAllTypesProto2.FIELD_name12iSi�t__field_name13s?protobuf_test_messages.proto2.TestAllTypesProto2.__field_name13iTi�t__Field_name14s?protobuf_test_messages.proto2.TestAllTypesProto2.__Field_name14iUi�t
field__name15s>protobuf_test_messages.proto2.TestAllTypesProto2.field__name15iVi�t
field__Name16s>protobuf_test_messages.proto2.TestAllTypesProto2.field__Name16iWi�tfield_name17__s?protobuf_test_messages.proto2.TestAllTypesProto2.field_name17__iXi�tField_name18__s?protobuf_test_messages.proto2.TestAllTypesProto2.Field_name18__iYi�toneof_fields<protobuf_test_messages.proto2.TestAllTypesProto2.oneof_fieldi�tForeignMessageProto2s2protobuf_test_messages.proto2.ForeignMessageProto2tcs4protobuf_test_messages.proto2.ForeignMessageProto2.ci�i�t
DESCRIPTORt
__module__s(google.protobuf.test_messages_proto2_pb2s/
(com.google.protobuf_test_messages.proto2H�(ii���(ixi�(rtsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbtFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_FOREIGNENUMPROTO2tRegisterEnumDescriptortEnumTypeWrapperRRRRtEXTENSION_INT32_FIELD_NUMBERtFieldDescriptortFalsetTrueRt_TESTALLTYPESPROTO2_NESTEDENUMt
Descriptort!_TESTALLTYPESPROTO2_NESTEDMESSAGEt
_ParseOptionstMessageOptionst&_TESTALLTYPESPROTO2_MAPINT32INT32ENTRYt&_TESTALLTYPESPROTO2_MAPINT64INT64ENTRYt(_TESTALLTYPESPROTO2_MAPUINT32UINT32ENTRYt(_TESTALLTYPESPROTO2_MAPUINT64UINT64ENTRYt(_TESTALLTYPESPROTO2_MAPSINT32SINT32ENTRYt(_TESTALLTYPESPROTO2_MAPSINT64SINT64ENTRYt*_TESTALLTYPESPROTO2_MAPFIXED32FIXED32ENTRYt*_TESTALLTYPESPROTO2_MAPFIXED64FIXED64ENTRYt,_TESTALLTYPESPROTO2_MAPSFIXED32SFIXED32ENTRYt,_TESTALLTYPESPROTO2_MAPSFIXED64SFIXED64ENTRYtfloatt&_TESTALLTYPESPROTO2_MAPINT32FLOATENTRYt'_TESTALLTYPESPROTO2_MAPINT32DOUBLEENTRYt$_TESTALLTYPESPROTO2_MAPBOOLBOOLENTRYtdecodet(_TESTALLTYPESPROTO2_MAPSTRINGSTRINGENTRYt'_TESTALLTYPESPROTO2_MAPSTRINGBYTESENTRYt/_TESTALLTYPESPROTO2_MAPSTRINGNESTEDMESSAGEENTRYt0_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNMESSAGEENTRYt,_TESTALLTYPESPROTO2_MAPSTRINGNESTEDENUMENTRYt-_TESTALLTYPESPROTO2_MAPSTRINGFOREIGNENUMENTRYt_TESTALLTYPESPROTO2_DATAt%_TESTALLTYPESPROTO2_MESSAGESETCORRECTt/_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION1t/_TESTALLTYPESPROTO2_MESSAGESETCORRECTEXTENSION2tFieldOptionstOneofDescriptort_TESTALLTYPESPROTO2t_FOREIGNMESSAGEPROTO2tfields_by_nameR$RR%toneofs_by_nameR.tappendtcontaining_oneoftmessage_types_by_nametenum_types_by_nametextensions_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRUtRegisterMessageR-R7R:R;R<R=R>R?R@RARBRCRDRERFRGRHRIRJRKRLRORPRSR�tRegisterExtensionthas_optionstFileOptionst_options(((sL/usr/lib/python2.7/site-packages/google/protobuf/test_messages_proto2_pb2.pyt<module>sJ
%						
							
																																																																																																																				$	$																					$	$																																															N																																







	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!(((PK�\�KI�
�
protobuf/field_mask_pb2.pycnu�[����
���hc-@sddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!d d"dd#ed$gd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d1d2d3�Zeejd<eje�e	jdejfed4ed5d6��Zeje�ee_ejej �ed7��e_!dS(8i����NiicCs|S(N((tx((sB/usr/lib/python2.7/site-packages/google/protobuf/field_mask_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sB/usr/lib/python2.7/site-packages/google/protobuf/field_mask_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames google/protobuf/field_mask.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
 google/protobuf/field_mask.protogoogle.protobuf"
	FieldMask
paths (	B�
com.google.protobufBFieldMaskProtoPZ9google.golang.org/genproto/protobuf/field_mask;field_mask�GPB�Google.Protobuf.WellKnownTypesbproto3t	FieldMaskt	full_namesgoogle.protobuf.FieldMasktfilenametfiletcontaining_typetfieldstpathssgoogle.protobuf.FieldMask.pathstindextnumberittypei	tcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti5tserialized_endiOt
DESCRIPTORt
__module__sgoogle.protobuf.field_mask_pb2s�
com.google.protobufBFieldMaskProtoPZ9google.golang.org/genproto/protobuf/field_mask;field_mask�GPB�Google.Protobuf.WellKnownTypes("tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR*t
DescriptortNonetFieldDescriptortFalset
_FIELDMASKtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((sB/usr/lib/python2.7/site-packages/google/protobuf/field_mask_pb2.pyt<module>sV%				


	PK�\�`
,
,
protobuf/proto_builder.pycnu�[����
���hc@s�dZyddlmZWn!ek
r=ddlmZnXddlZddlZddlmZddlm	Z	d�Z
ddd�Zd�Z
dS(	sDynamic Protobuf class creator.i����(tOrderedDictN(tdescriptor_pb2(tmessage_factorycCs%|jj|�}|j|�}|S(s8Get a proto class from the MessageFactory by name.

  Args:
    factory: a MessageFactory instance.
    full_name: str, the fully qualified name of the proto type.
  Returns:
    A class, for the type identified by full_name.
  Raises:
    KeyError, if the proto is not found in the factory's descriptor pool.
  (tpooltFindMessageTypeByNametGetPrototype(tfactoryt	full_nametproto_descriptort	proto_cls((sA/usr/lib/python2.7/site-packages/google/protobuf/proto_builder.pyt_GetMessageFromFactory,sc
CsNtjd|�}|dk	rLyt||�}|SWqLtk
rHqLXn|j�}t|t�svt|�}nt	j
�}xF|D]>\}}|j|jd��|jt
|�jd��q�W|j�d}	|dkr%d|j�}yt||�}|SWq%tk
r!q%Xn|jjt|	||��t||�S(s�Create a Protobuf class whose fields are basic types.

  Note: this doesn't validate field names!

  Args:
    fields: dict of {name: field_type} mappings for each field in the proto. If
        this is an OrderedDict the order will be maintained, otherwise the
        fields will be sorted by name.
    full_name: optional str, the fully-qualified name of the proto type.
    pool: optional DescriptorPool instance.
  Returns:
    a class, the new protobuf class with a FileDescriptor.
  Rsutf-8s.protos6net.proto2.python.public.proto_builder.AnonymousProto_N(RtMessageFactorytNoneR
tKeyErrortitemst
isinstanceRtsortedthashlibtsha1tupdatetencodetstrt	hexdigestRtAddt_MakeFileDescriptorProto(
tfieldsRRRR	tfield_itemstfields_hashtf_nametf_typetproto_file_name((sA/usr/lib/python2.7/site-packages/google/protobuf/proto_builder.pytMakeSimpleProtoClass<s4
 

	cCs�|jdd�\}}tj�}tjj|jdd�|�|_||_|j	j
�}||_x\t|d�D]K\}\}}	|jj
�}
||
_||
_
tjj|
_|	|
_qyW|S(sAPopulate FileDescriptorProto for MessageFactory's DescriptorPool.t.it/(trsplitRtFileDescriptorPrototostpathtjointreplacetnametpackagetmessage_typetaddt	enumeratetfieldtnumbertFieldDescriptorPrototLABEL_OPTIONALtlabelttype(RRRR)R(t
file_protot
desc_prototf_numberRRtfield_proto((sA/usr/lib/python2.7/site-packages/google/protobuf/proto_builder.pyRts$		"		
(t__doc__tcollectionsRtImportErrortordereddictRR$tgoogle.protobufRRR
RRR(((sA/usr/lib/python2.7/site-packages/google/protobuf/proto_builder.pyt<module>s
	8PK�\+,;��<�<protobuf/unittest_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import service as _service
from google.protobuf import service_reflection
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import unittest_import_pb2 as google_dot_protobuf_dot_unittest__import__pb2
try:
  google_dot_protobuf_dot_unittest__import__public__pb2 = google_dot_protobuf_dot_unittest__import__pb2.google_dot_protobuf_dot_unittest__import__public__pb2
except AttributeError:
  google_dot_protobuf_dot_unittest__import__public__pb2 = google_dot_protobuf_dot_unittest__import__pb2.google.protobuf.unittest_import_public_pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest.proto',
  package='protobuf_unittest',
  syntax='proto2',
  serialized_pb=_b('\n\x1egoogle/protobuf/unittest.proto\x12\x11protobuf_unittest\x1a%google/protobuf/unittest_import.proto\"\xed\x18\n\x0cTestAllTypes\x12\x16\n\x0eoptional_int32\x18\x01 \x01(\x05\x12\x16\n\x0eoptional_int64\x18\x02 \x01(\x03\x12\x17\n\x0foptional_uint32\x18\x03 \x01(\r\x12\x17\n\x0foptional_uint64\x18\x04 \x01(\x04\x12\x17\n\x0foptional_sint32\x18\x05 \x01(\x11\x12\x17\n\x0foptional_sint64\x18\x06 \x01(\x12\x12\x18\n\x10optional_fixed32\x18\x07 \x01(\x07\x12\x18\n\x10optional_fixed64\x18\x08 \x01(\x06\x12\x19\n\x11optional_sfixed32\x18\t \x01(\x0f\x12\x19\n\x11optional_sfixed64\x18\n \x01(\x10\x12\x16\n\x0eoptional_float\x18\x0b \x01(\x02\x12\x17\n\x0foptional_double\x18\x0c \x01(\x01\x12\x15\n\roptional_bool\x18\r \x01(\x08\x12\x17\n\x0foptional_string\x18\x0e \x01(\t\x12\x16\n\x0eoptional_bytes\x18\x0f \x01(\x0c\x12\x44\n\roptionalgroup\x18\x10 \x01(\n2-.protobuf_unittest.TestAllTypes.OptionalGroup\x12N\n\x17optional_nested_message\x18\x12 \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage\x12\x43\n\x18optional_foreign_message\x18\x13 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage\x12H\n\x17optional_import_message\x18\x14 \x01(\x0b\x32\'.protobuf_unittest_import.ImportMessage\x12H\n\x14optional_nested_enum\x18\x15 \x01(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum\x12=\n\x15optional_foreign_enum\x18\x16 \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12\x42\n\x14optional_import_enum\x18\x17 \x01(\x0e\x32$.protobuf_unittest_import.ImportEnum\x12!\n\x15optional_string_piece\x18\x18 \x01(\tB\x02\x08\x02\x12\x19\n\roptional_cord\x18\x19 \x01(\tB\x02\x08\x01\x12U\n\x1eoptional_public_import_message\x18\x1a \x01(\x0b\x32-.protobuf_unittest_import.PublicImportMessage\x12P\n\x15optional_lazy_message\x18\x1b \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessageB\x02(\x01\x12\x16\n\x0erepeated_int32\x18\x1f \x03(\x05\x12\x16\n\x0erepeated_int64\x18  \x03(\x03\x12\x17\n\x0frepeated_uint32\x18! \x03(\r\x12\x17\n\x0frepeated_uint64\x18\" \x03(\x04\x12\x17\n\x0frepeated_sint32\x18# \x03(\x11\x12\x17\n\x0frepeated_sint64\x18$ \x03(\x12\x12\x18\n\x10repeated_fixed32\x18% \x03(\x07\x12\x18\n\x10repeated_fixed64\x18& \x03(\x06\x12\x19\n\x11repeated_sfixed32\x18\' \x03(\x0f\x12\x19\n\x11repeated_sfixed64\x18( \x03(\x10\x12\x16\n\x0erepeated_float\x18) \x03(\x02\x12\x17\n\x0frepeated_double\x18* \x03(\x01\x12\x15\n\rrepeated_bool\x18+ \x03(\x08\x12\x17\n\x0frepeated_string\x18, \x03(\t\x12\x16\n\x0erepeated_bytes\x18- \x03(\x0c\x12\x44\n\rrepeatedgroup\x18. \x03(\n2-.protobuf_unittest.TestAllTypes.RepeatedGroup\x12N\n\x17repeated_nested_message\x18\x30 \x03(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage\x12\x43\n\x18repeated_foreign_message\x18\x31 \x03(\x0b\x32!.protobuf_unittest.ForeignMessage\x12H\n\x17repeated_import_message\x18\x32 \x03(\x0b\x32\'.protobuf_unittest_import.ImportMessage\x12H\n\x14repeated_nested_enum\x18\x33 \x03(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum\x12=\n\x15repeated_foreign_enum\x18\x34 \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12\x42\n\x14repeated_import_enum\x18\x35 \x03(\x0e\x32$.protobuf_unittest_import.ImportEnum\x12!\n\x15repeated_string_piece\x18\x36 \x03(\tB\x02\x08\x02\x12\x19\n\rrepeated_cord\x18\x37 \x03(\tB\x02\x08\x01\x12P\n\x15repeated_lazy_message\x18\x39 \x03(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessageB\x02(\x01\x12\x19\n\rdefault_int32\x18= \x01(\x05:\x02\x34\x31\x12\x19\n\rdefault_int64\x18> \x01(\x03:\x02\x34\x32\x12\x1a\n\x0e\x64\x65\x66\x61ult_uint32\x18? \x01(\r:\x02\x34\x33\x12\x1a\n\x0e\x64\x65\x66\x61ult_uint64\x18@ \x01(\x04:\x02\x34\x34\x12\x1b\n\x0e\x64\x65\x66\x61ult_sint32\x18\x41 \x01(\x11:\x03-45\x12\x1a\n\x0e\x64\x65\x66\x61ult_sint64\x18\x42 \x01(\x12:\x02\x34\x36\x12\x1b\n\x0f\x64\x65\x66\x61ult_fixed32\x18\x43 \x01(\x07:\x02\x34\x37\x12\x1b\n\x0f\x64\x65\x66\x61ult_fixed64\x18\x44 \x01(\x06:\x02\x34\x38\x12\x1c\n\x10\x64\x65\x66\x61ult_sfixed32\x18\x45 \x01(\x0f:\x02\x34\x39\x12\x1d\n\x10\x64\x65\x66\x61ult_sfixed64\x18\x46 \x01(\x10:\x03-50\x12\x1b\n\rdefault_float\x18G \x01(\x02:\x04\x35\x31.5\x12\x1d\n\x0e\x64\x65\x66\x61ult_double\x18H \x01(\x01:\x05\x35\x32\x30\x30\x30\x12\x1a\n\x0c\x64\x65\x66\x61ult_bool\x18I \x01(\x08:\x04true\x12\x1d\n\x0e\x64\x65\x66\x61ult_string\x18J \x01(\t:\x05hello\x12\x1c\n\rdefault_bytes\x18K \x01(\x0c:\x05world\x12L\n\x13\x64\x65\x66\x61ult_nested_enum\x18Q \x01(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum:\x03\x42\x41R\x12I\n\x14\x64\x65\x66\x61ult_foreign_enum\x18R \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum:\x0b\x46OREIGN_BAR\x12M\n\x13\x64\x65\x66\x61ult_import_enum\x18S \x01(\x0e\x32$.protobuf_unittest_import.ImportEnum:\nIMPORT_BAR\x12%\n\x14\x64\x65\x66\x61ult_string_piece\x18T \x01(\t:\x03\x61\x62\x63\x42\x02\x08\x02\x12\x1d\n\x0c\x64\x65\x66\x61ult_cord\x18U \x01(\t:\x03\x31\x32\x33\x42\x02\x08\x01\x12\x16\n\x0coneof_uint32\x18o \x01(\rH\x00\x12M\n\x14oneof_nested_message\x18p \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessageH\x00\x12\x16\n\x0coneof_string\x18q \x01(\tH\x00\x12\x15\n\x0boneof_bytes\x18r \x01(\x0cH\x00\x1a\x1b\n\rNestedMessage\x12\n\n\x02\x62\x62\x18\x01 \x01(\x05\x1a\x1a\n\rOptionalGroup\x12\t\n\x01\x61\x18\x11 \x01(\x05\x1a\x1a\n\rRepeatedGroup\x12\t\n\x01\x61\x18/ \x01(\x05\"9\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02\x12\x07\n\x03\x42\x41Z\x10\x03\x12\x10\n\x03NEG\x10\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\x42\r\n\x0boneof_field\"\xbb\x01\n\x12NestedTestAllTypes\x12\x34\n\x05\x63hild\x18\x01 \x01(\x0b\x32%.protobuf_unittest.NestedTestAllTypes\x12\x30\n\x07payload\x18\x02 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12=\n\x0erepeated_child\x18\x03 \x03(\x0b\x32%.protobuf_unittest.NestedTestAllTypes\"4\n\x14TestDeprecatedFields\x12\x1c\n\x10\x64\x65precated_int32\x18\x01 \x01(\x05\x42\x02\x18\x01\"\x1b\n\x15TestDeprecatedMessage:\x02\x18\x01\"&\n\x0e\x46oreignMessage\x12\t\n\x01\x63\x18\x01 \x01(\x05\x12\t\n\x01\x64\x18\x02 \x01(\x05\"0\n\x12TestReservedFieldsJ\x04\x08\x02\x10\x03J\x04\x08\x0f\x10\x10J\x04\x08\t\x10\x0cR\x03\x62\x61rR\x03\x62\x61z\"\x1d\n\x11TestAllExtensions*\x08\x08\x01\x10\x80\x80\x80\x80\x02\"$\n\x17OptionalGroup_extension\x12\t\n\x01\x61\x18\x11 \x01(\x05\"$\n\x17RepeatedGroup_extension\x12\t\n\x01\x61\x18/ \x01(\x05\"\x98\x01\n\x13TestNestedExtension29\n\x04test\x12$.protobuf_unittest.TestAllExtensions\x18\xea\x07 \x01(\t:\x04test2F\n\x17nested_string_extension\x12$.protobuf_unittest.TestAllExtensions\x18\xeb\x07 \x01(\t\"\xd5\x05\n\x0cTestRequired\x12\t\n\x01\x61\x18\x01 \x02(\x05\x12\x0e\n\x06\x64ummy2\x18\x02 \x01(\x05\x12\t\n\x01\x62\x18\x03 \x02(\x05\x12\x0e\n\x06\x64ummy4\x18\x04 \x01(\x05\x12\x0e\n\x06\x64ummy5\x18\x05 \x01(\x05\x12\x0e\n\x06\x64ummy6\x18\x06 \x01(\x05\x12\x0e\n\x06\x64ummy7\x18\x07 \x01(\x05\x12\x0e\n\x06\x64ummy8\x18\x08 \x01(\x05\x12\x0e\n\x06\x64ummy9\x18\t \x01(\x05\x12\x0f\n\x07\x64ummy10\x18\n \x01(\x05\x12\x0f\n\x07\x64ummy11\x18\x0b \x01(\x05\x12\x0f\n\x07\x64ummy12\x18\x0c \x01(\x05\x12\x0f\n\x07\x64ummy13\x18\r \x01(\x05\x12\x0f\n\x07\x64ummy14\x18\x0e \x01(\x05\x12\x0f\n\x07\x64ummy15\x18\x0f \x01(\x05\x12\x0f\n\x07\x64ummy16\x18\x10 \x01(\x05\x12\x0f\n\x07\x64ummy17\x18\x11 \x01(\x05\x12\x0f\n\x07\x64ummy18\x18\x12 \x01(\x05\x12\x0f\n\x07\x64ummy19\x18\x13 \x01(\x05\x12\x0f\n\x07\x64ummy20\x18\x14 \x01(\x05\x12\x0f\n\x07\x64ummy21\x18\x15 \x01(\x05\x12\x0f\n\x07\x64ummy22\x18\x16 \x01(\x05\x12\x0f\n\x07\x64ummy23\x18\x17 \x01(\x05\x12\x0f\n\x07\x64ummy24\x18\x18 \x01(\x05\x12\x0f\n\x07\x64ummy25\x18\x19 \x01(\x05\x12\x0f\n\x07\x64ummy26\x18\x1a \x01(\x05\x12\x0f\n\x07\x64ummy27\x18\x1b \x01(\x05\x12\x0f\n\x07\x64ummy28\x18\x1c \x01(\x05\x12\x0f\n\x07\x64ummy29\x18\x1d \x01(\x05\x12\x0f\n\x07\x64ummy30\x18\x1e \x01(\x05\x12\x0f\n\x07\x64ummy31\x18\x1f \x01(\x05\x12\x0f\n\x07\x64ummy32\x18  \x01(\x05\x12\t\n\x01\x63\x18! \x02(\x05\x32V\n\x06single\x12$.protobuf_unittest.TestAllExtensions\x18\xe8\x07 \x01(\x0b\x32\x1f.protobuf_unittest.TestRequired2U\n\x05multi\x12$.protobuf_unittest.TestAllExtensions\x18\xe9\x07 \x03(\x0b\x32\x1f.protobuf_unittest.TestRequired\"\x9a\x01\n\x13TestRequiredForeign\x12\x39\n\x10optional_message\x18\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestRequired\x12\x39\n\x10repeated_message\x18\x02 \x03(\x0b\x32\x1f.protobuf_unittest.TestRequired\x12\r\n\x05\x64ummy\x18\x03 \x01(\x05\"\xc6\x01\n\x13TestRequiredMessage\x12\x39\n\x10optional_message\x18\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestRequired\x12\x39\n\x10repeated_message\x18\x02 \x03(\x0b\x32\x1f.protobuf_unittest.TestRequired\x12\x39\n\x10required_message\x18\x03 \x02(\x0b\x32\x1f.protobuf_unittest.TestRequired\"Z\n\x11TestForeignNested\x12\x45\n\x0e\x66oreign_nested\x18\x01 \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage\"\x12\n\x10TestEmptyMessage\"*\n\x1eTestEmptyMessageWithExtensions*\x08\x08\x01\x10\x80\x80\x80\x80\x02\"7\n\x1bTestMultipleExtensionRanges*\x04\x08*\x10+*\x06\x08\xaf \x10\x94!*\n\x08\x80\x80\x04\x10\x80\x80\x80\x80\x02\"4\n\x18TestReallyLargeTagNumber\x12\t\n\x01\x61\x18\x01 \x01(\x05\x12\r\n\x02\x62\x62\x18\xff\xff\xff\x7f \x01(\x05\"U\n\x14TestRecursiveMessage\x12\x32\n\x01\x61\x18\x01 \x01(\x0b\x32\'.protobuf_unittest.TestRecursiveMessage\x12\t\n\x01i\x18\x02 \x01(\x05\"\xe1\x02\n\x14TestMutualRecursionA\x12\x33\n\x02\x62\x62\x18\x01 \x01(\x0b\x32\'.protobuf_unittest.TestMutualRecursionB\x12\x42\n\x08subgroup\x18\x02 \x01(\n20.protobuf_unittest.TestMutualRecursionA.SubGroup\x1a@\n\nSubMessage\x12\x32\n\x01\x62\x18\x01 \x01(\x0b\x32\'.protobuf_unittest.TestMutualRecursionB\x1a\x8d\x01\n\x08SubGroup\x12G\n\x0bsub_message\x18\x03 \x01(\x0b\x32\x32.protobuf_unittest.TestMutualRecursionA.SubMessage\x12\x38\n\x0fnot_in_this_scc\x18\x04 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\"b\n\x14TestMutualRecursionB\x12\x32\n\x01\x61\x18\x01 \x01(\x0b\x32\'.protobuf_unittest.TestMutualRecursionA\x12\x16\n\x0eoptional_int32\x18\x02 \x01(\x05\"\xca\x01\n\x11TestIsInitialized\x12\x44\n\x0bsub_message\x18\x01 \x01(\x0b\x32/.protobuf_unittest.TestIsInitialized.SubMessage\x1ao\n\nSubMessage\x12J\n\x08subgroup\x18\x01 \x01(\n28.protobuf_unittest.TestIsInitialized.SubMessage.SubGroup\x1a\x15\n\x08SubGroup\x12\t\n\x01i\x18\x02 \x02(\x05\"\xb3\x01\n\x12TestDupFieldNumber\x12\t\n\x01\x61\x18\x01 \x01(\x05\x12\x36\n\x03\x66oo\x18\x02 \x01(\n2).protobuf_unittest.TestDupFieldNumber.Foo\x12\x36\n\x03\x62\x61r\x18\x03 \x01(\n2).protobuf_unittest.TestDupFieldNumber.Bar\x1a\x10\n\x03\x46oo\x12\t\n\x01\x61\x18\x01 \x01(\x05\x1a\x10\n\x03\x42\x61r\x12\t\n\x01\x61\x18\x01 \x01(\x05\"L\n\x10TestEagerMessage\x12\x38\n\x0bsub_message\x18\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypesB\x02(\x00\"K\n\x0fTestLazyMessage\x12\x38\n\x0bsub_message\x18\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypesB\x02(\x01\"\x80\x02\n\x18TestNestedMessageHasBits\x12Z\n\x17optional_nested_message\x18\x01 \x01(\x0b\x32\x39.protobuf_unittest.TestNestedMessageHasBits.NestedMessage\x1a\x87\x01\n\rNestedMessage\x12$\n\x1cnestedmessage_repeated_int32\x18\x01 \x03(\x05\x12P\n%nestedmessage_repeated_foreignmessage\x18\x02 \x03(\x0b\x32!.protobuf_unittest.ForeignMessage\"\xe5\x03\n\x17TestCamelCaseFieldNames\x12\x16\n\x0ePrimitiveField\x18\x01 \x01(\x05\x12\x13\n\x0bStringField\x18\x02 \x01(\t\x12\x31\n\tEnumField\x18\x03 \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12\x37\n\x0cMessageField\x18\x04 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage\x12\x1c\n\x10StringPieceField\x18\x05 \x01(\tB\x02\x08\x02\x12\x15\n\tCordField\x18\x06 \x01(\tB\x02\x08\x01\x12\x1e\n\x16RepeatedPrimitiveField\x18\x07 \x03(\x05\x12\x1b\n\x13RepeatedStringField\x18\x08 \x03(\t\x12\x39\n\x11RepeatedEnumField\x18\t \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12?\n\x14RepeatedMessageField\x18\n \x03(\x0b\x32!.protobuf_unittest.ForeignMessage\x12$\n\x18RepeatedStringPieceField\x18\x0b \x03(\tB\x02\x08\x02\x12\x1d\n\x11RepeatedCordField\x18\x0c \x03(\tB\x02\x08\x01\"\xd5\x01\n\x12TestFieldOrderings\x12\x11\n\tmy_string\x18\x0b \x01(\t\x12\x0e\n\x06my_int\x18\x01 \x01(\x03\x12\x10\n\x08my_float\x18\x65 \x01(\x02\x12U\n\x17optional_nested_message\x18\xc8\x01 \x01(\x0b\x32\x33.protobuf_unittest.TestFieldOrderings.NestedMessage\x1a\'\n\rNestedMessage\x12\n\n\x02oo\x18\x02 \x01(\x03\x12\n\n\x02\x62\x62\x18\x01 \x01(\x05*\x04\x08\x02\x10\x0b*\x04\x08\x0c\x10\x65\"\xb6\x07\n\x18TestExtremeDefaultValues\x12?\n\rescaped_bytes\x18\x01 \x01(\x0c:(\\000\\001\\007\\010\\014\\n\\r\\t\\013\\\\\\\'\\\"\\376\x12 \n\x0clarge_uint32\x18\x02 \x01(\r:\n4294967295\x12*\n\x0clarge_uint64\x18\x03 \x01(\x04:\x14\x31\x38\x34\x34\x36\x37\x34\x34\x30\x37\x33\x37\x30\x39\x35\x35\x31\x36\x31\x35\x12 \n\x0bsmall_int32\x18\x04 \x01(\x05:\x0b-2147483647\x12)\n\x0bsmall_int64\x18\x05 \x01(\x03:\x14-9223372036854775807\x12\'\n\x12really_small_int32\x18\x15 \x01(\x05:\x0b-2147483648\x12\x30\n\x12really_small_int64\x18\x16 \x01(\x03:\x14-9223372036854775808\x12\x18\n\x0butf8_string\x18\x06 \x01(\t:\x03\xe1\x88\xb4\x12\x15\n\nzero_float\x18\x07 \x01(\x02:\x01\x30\x12\x14\n\tone_float\x18\x08 \x01(\x02:\x01\x31\x12\x18\n\x0bsmall_float\x18\t \x01(\x02:\x03\x31.5\x12\x1e\n\x12negative_one_float\x18\n \x01(\x02:\x02-1\x12\x1c\n\x0enegative_float\x18\x0b \x01(\x02:\x04-1.5\x12\x1a\n\x0blarge_float\x18\x0c \x01(\x02:\x05\x32\x65+08\x12$\n\x14small_negative_float\x18\r \x01(\x02:\x06-8e-28\x12\x17\n\ninf_double\x18\x0e \x01(\x01:\x03inf\x12\x1c\n\x0eneg_inf_double\x18\x0f \x01(\x01:\x04-inf\x12\x17\n\nnan_double\x18\x10 \x01(\x01:\x03nan\x12\x16\n\tinf_float\x18\x11 \x01(\x02:\x03inf\x12\x1b\n\rneg_inf_float\x18\x12 \x01(\x02:\x04-inf\x12\x16\n\tnan_float\x18\x13 \x01(\x02:\x03nan\x12+\n\x0c\x63pp_trigraph\x18\x14 \x01(\t:\x15? ? ?? ?? ??? ??/ ??-\x12 \n\x10string_with_zero\x18\x17 \x01(\t:\x06hel\x00lo\x12\"\n\x0f\x62ytes_with_zero\x18\x18 \x01(\x0c:\twor\\000ld\x12(\n\x16string_piece_with_zero\x18\x19 \x01(\t:\x04\x61\x62\x00\x63\x42\x02\x08\x02\x12 \n\x0e\x63ord_with_zero\x18\x1a \x01(\t:\x04\x31\x32\x00\x33\x42\x02\x08\x01\x12&\n\x12replacement_string\x18\x1b \x01(\t:\n${unknown}\"K\n\x11SparseEnumMessage\x12\x36\n\x0bsparse_enum\x18\x01 \x01(\x0e\x32!.protobuf_unittest.TestSparseEnum\"\x19\n\tOneString\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\t\"\x1a\n\nMoreString\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\t\"\x18\n\x08OneBytes\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x19\n\tMoreBytes\x12\x0c\n\x04\x64\x61ta\x18\x01 \x03(\x0c\"\x1c\n\x0cInt32Message\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x05\"\x1d\n\rUint32Message\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\r\"\x1c\n\x0cInt64Message\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x03\"\x1d\n\rUint64Message\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x04\"\x1b\n\x0b\x42oolMessage\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x08\"\xd0\x01\n\tTestOneof\x12\x11\n\x07\x66oo_int\x18\x01 \x01(\x05H\x00\x12\x14\n\nfoo_string\x18\x02 \x01(\tH\x00\x12\x36\n\x0b\x66oo_message\x18\x03 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypesH\x00\x12\x39\n\x08\x66oogroup\x18\x04 \x01(\n2%.protobuf_unittest.TestOneof.FooGroupH\x00\x1a \n\x08\x46ooGroup\x12\t\n\x01\x61\x18\x05 \x01(\x05\x12\t\n\x01\x62\x18\x06 \x01(\tB\x05\n\x03\x66oo\"\xe7\x01\n\x1cTestOneofBackwardsCompatible\x12\x0f\n\x07\x66oo_int\x18\x01 \x01(\x05\x12\x12\n\nfoo_string\x18\x02 \x01(\t\x12\x34\n\x0b\x66oo_message\x18\x03 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12J\n\x08\x66oogroup\x18\x04 \x01(\n28.protobuf_unittest.TestOneofBackwardsCompatible.FooGroup\x1a \n\x08\x46ooGroup\x12\t\n\x01\x61\x18\x05 \x01(\x05\x12\t\n\x01\x62\x18\x06 \x01(\t\"\x9e\x06\n\nTestOneof2\x12\x11\n\x07\x66oo_int\x18\x01 \x01(\x05H\x00\x12\x14\n\nfoo_string\x18\x02 \x01(\tH\x00\x12\x16\n\x08\x66oo_cord\x18\x03 \x01(\tB\x02\x08\x01H\x00\x12\x1e\n\x10\x66oo_string_piece\x18\x04 \x01(\tB\x02\x08\x02H\x00\x12\x13\n\tfoo_bytes\x18\x05 \x01(\x0cH\x00\x12<\n\x08\x66oo_enum\x18\x06 \x01(\x0e\x32(.protobuf_unittest.TestOneof2.NestedEnumH\x00\x12\x42\n\x0b\x66oo_message\x18\x07 \x01(\x0b\x32+.protobuf_unittest.TestOneof2.NestedMessageH\x00\x12:\n\x08\x66oogroup\x18\x08 \x01(\n2&.protobuf_unittest.TestOneof2.FooGroupH\x00\x12K\n\x10\x66oo_lazy_message\x18\x0b \x01(\x0b\x32+.protobuf_unittest.TestOneof2.NestedMessageB\x02(\x01H\x00\x12\x14\n\x07\x62\x61r_int\x18\x0c \x01(\x05:\x01\x35H\x01\x12\x1c\n\nbar_string\x18\r \x01(\t:\x06STRINGH\x01\x12\x1c\n\x08\x62\x61r_cord\x18\x0e \x01(\t:\x04\x43ORDB\x02\x08\x01H\x01\x12&\n\x10\x62\x61r_string_piece\x18\x0f \x01(\t:\x06SPIECEB\x02\x08\x02H\x01\x12\x1a\n\tbar_bytes\x18\x10 \x01(\x0c:\x05\x42YTESH\x01\x12\x41\n\x08\x62\x61r_enum\x18\x11 \x01(\x0e\x32(.protobuf_unittest.TestOneof2.NestedEnum:\x03\x42\x41RH\x01\x12\x0f\n\x07\x62\x61z_int\x18\x12 \x01(\x05\x12\x17\n\nbaz_string\x18\x13 \x01(\t:\x03\x42\x41Z\x1a \n\x08\x46ooGroup\x12\t\n\x01\x61\x18\t \x01(\x05\x12\t\n\x01\x62\x18\n \x01(\t\x1a\x33\n\rNestedMessage\x12\x0f\n\x07qux_int\x18\x01 \x01(\x03\x12\x11\n\tcorge_int\x18\x02 \x03(\x05\"\'\n\nNestedEnum\x12\x07\n\x03\x46OO\x10\x01\x12\x07\n\x03\x42\x41R\x10\x02\x12\x07\n\x03\x42\x41Z\x10\x03\x42\x05\n\x03\x66ooB\x05\n\x03\x62\x61r\"\xb8\x01\n\x11TestRequiredOneof\x12\x11\n\x07\x66oo_int\x18\x01 \x01(\x05H\x00\x12\x14\n\nfoo_string\x18\x02 \x01(\tH\x00\x12I\n\x0b\x66oo_message\x18\x03 \x01(\x0b\x32\x32.protobuf_unittest.TestRequiredOneof.NestedMessageH\x00\x1a(\n\rNestedMessage\x12\x17\n\x0frequired_double\x18\x01 \x02(\x01\x42\x05\n\x03\x66oo\"\xaa\x03\n\x0fTestPackedTypes\x12\x18\n\x0cpacked_int32\x18Z \x03(\x05\x42\x02\x10\x01\x12\x18\n\x0cpacked_int64\x18[ \x03(\x03\x42\x02\x10\x01\x12\x19\n\rpacked_uint32\x18\\ \x03(\rB\x02\x10\x01\x12\x19\n\rpacked_uint64\x18] \x03(\x04\x42\x02\x10\x01\x12\x19\n\rpacked_sint32\x18^ \x03(\x11\x42\x02\x10\x01\x12\x19\n\rpacked_sint64\x18_ \x03(\x12\x42\x02\x10\x01\x12\x1a\n\x0epacked_fixed32\x18` \x03(\x07\x42\x02\x10\x01\x12\x1a\n\x0epacked_fixed64\x18\x61 \x03(\x06\x42\x02\x10\x01\x12\x1b\n\x0fpacked_sfixed32\x18\x62 \x03(\x0f\x42\x02\x10\x01\x12\x1b\n\x0fpacked_sfixed64\x18\x63 \x03(\x10\x42\x02\x10\x01\x12\x18\n\x0cpacked_float\x18\x64 \x03(\x02\x42\x02\x10\x01\x12\x19\n\rpacked_double\x18\x65 \x03(\x01\x42\x02\x10\x01\x12\x17\n\x0bpacked_bool\x18\x66 \x03(\x08\x42\x02\x10\x01\x12\x37\n\x0bpacked_enum\x18g \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnumB\x02\x10\x01\"\xc8\x03\n\x11TestUnpackedTypes\x12\x1a\n\x0eunpacked_int32\x18Z \x03(\x05\x42\x02\x10\x00\x12\x1a\n\x0eunpacked_int64\x18[ \x03(\x03\x42\x02\x10\x00\x12\x1b\n\x0funpacked_uint32\x18\\ \x03(\rB\x02\x10\x00\x12\x1b\n\x0funpacked_uint64\x18] \x03(\x04\x42\x02\x10\x00\x12\x1b\n\x0funpacked_sint32\x18^ \x03(\x11\x42\x02\x10\x00\x12\x1b\n\x0funpacked_sint64\x18_ \x03(\x12\x42\x02\x10\x00\x12\x1c\n\x10unpacked_fixed32\x18` \x03(\x07\x42\x02\x10\x00\x12\x1c\n\x10unpacked_fixed64\x18\x61 \x03(\x06\x42\x02\x10\x00\x12\x1d\n\x11unpacked_sfixed32\x18\x62 \x03(\x0f\x42\x02\x10\x00\x12\x1d\n\x11unpacked_sfixed64\x18\x63 \x03(\x10\x42\x02\x10\x00\x12\x1a\n\x0eunpacked_float\x18\x64 \x03(\x02\x42\x02\x10\x00\x12\x1b\n\x0funpacked_double\x18\x65 \x03(\x01\x42\x02\x10\x00\x12\x19\n\runpacked_bool\x18\x66 \x03(\x08\x42\x02\x10\x00\x12\x39\n\runpacked_enum\x18g \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnumB\x02\x10\x00\" \n\x14TestPackedExtensions*\x08\x08\x01\x10\x80\x80\x80\x80\x02\"\"\n\x16TestUnpackedExtensions*\x08\x08\x01\x10\x80\x80\x80\x80\x02\"\x99\x04\n\x15TestDynamicExtensions\x12\x19\n\x10scalar_extension\x18\xd0\x0f \x01(\x07\x12\x37\n\x0e\x65num_extension\x18\xd1\x0f \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12Y\n\x16\x64ynamic_enum_extension\x18\xd2\x0f \x01(\x0e\x32\x38.protobuf_unittest.TestDynamicExtensions.DynamicEnumType\x12=\n\x11message_extension\x18\xd3\x0f \x01(\x0b\x32!.protobuf_unittest.ForeignMessage\x12_\n\x19\x64ynamic_message_extension\x18\xd4\x0f \x01(\x0b\x32;.protobuf_unittest.TestDynamicExtensions.DynamicMessageType\x12\x1b\n\x12repeated_extension\x18\xd5\x0f \x03(\t\x12\x1d\n\x10packed_extension\x18\xd6\x0f \x03(\x11\x42\x02\x10\x01\x1a,\n\x12\x44ynamicMessageType\x12\x16\n\rdynamic_field\x18\xb4\x10 \x01(\x05\"G\n\x0f\x44ynamicEnumType\x12\x10\n\x0b\x44YNAMIC_FOO\x10\x98\x11\x12\x10\n\x0b\x44YNAMIC_BAR\x10\x99\x11\x12\x10\n\x0b\x44YNAMIC_BAZ\x10\x9a\x11\"\xc0\x01\n#TestRepeatedScalarDifferentTagSizes\x12\x18\n\x10repeated_fixed32\x18\x0c \x03(\x07\x12\x16\n\x0erepeated_int32\x18\r \x03(\x05\x12\x19\n\x10repeated_fixed64\x18\xfe\x0f \x03(\x06\x12\x17\n\x0erepeated_int64\x18\xff\x0f \x03(\x03\x12\x18\n\x0erepeated_float\x18\xfe\xff\x0f \x03(\x02\x12\x19\n\x0frepeated_uint64\x18\xff\xff\x0f \x03(\x04\"\xf7\t\n\x10TestParsingMerge\x12;\n\x12required_all_types\x18\x01 \x02(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12;\n\x12optional_all_types\x18\x02 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12;\n\x12repeated_all_types\x18\x03 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12H\n\roptionalgroup\x18\n \x01(\n21.protobuf_unittest.TestParsingMerge.OptionalGroup\x12H\n\rrepeatedgroup\x18\x14 \x03(\n21.protobuf_unittest.TestParsingMerge.RepeatedGroup\x1a\xaa\x04\n\x17RepeatedFieldsGenerator\x12/\n\x06\x66ield1\x18\x01 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12/\n\x06\x66ield2\x18\x02 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12/\n\x06\x66ield3\x18\x03 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12R\n\x06group1\x18\n \x03(\n2B.protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1\x12R\n\x06group2\x18\x14 \x03(\n2B.protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2\x12.\n\x04\x65xt1\x18\xe8\x07 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x12.\n\x04\x65xt2\x18\xe9\x07 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x1a\x39\n\x06Group1\x12/\n\x06\x66ield1\x18\x0b \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x1a\x39\n\x06Group2\x12/\n\x06\x66ield1\x18\x15 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x1aR\n\rOptionalGroup\x12\x41\n\x18optional_group_all_types\x18\x0b \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\x1aR\n\rRepeatedGroup\x12\x41\n\x18repeated_group_all_types\x18\x15 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x32[\n\x0coptional_ext\x12#.protobuf_unittest.TestParsingMerge\x18\xe8\x07 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypes2[\n\x0crepeated_ext\x12#.protobuf_unittest.TestParsingMerge\x18\xe9\x07 \x03(\x0b\x32\x1f.protobuf_unittest.TestAllTypes\"D\n\x1bTestCommentInjectionMessage\x12%\n\x01\x61\x18\x01 \x01(\t:\x1a*/ <- Neither should this.\"\x0c\n\nFooRequest\"\r\n\x0b\x46ooResponse\"\x12\n\x10\x46ooClientMessage\"\x12\n\x10\x46ooServerMessage\"\x0c\n\nBarRequest\"\r\n\x0b\x42\x61rResponse\"\x92\x01\n\x0cTestJsonName\x12\x13\n\x0b\x66ield_name1\x18\x01 \x01(\x05\x12\x12\n\nfieldName2\x18\x02 \x01(\x05\x12\x12\n\nFieldName3\x18\x03 \x01(\x05\x12\x14\n\x0c_field_name4\x18\x04 \x01(\x05\x12\x13\n\x0b\x46IELD_NAME5\x18\x05 \x01(\x05\x12\x1a\n\x0b\x66ield_name6\x18\x06 \x01(\x05R\x05@type\"\xfd\x05\n\x14TestHugeFieldNumbers\x12\x1a\n\x0eoptional_int32\x18\xf0\xf8\xff\xff\x01 \x01(\x05\x12\x14\n\x08\x66ixed_32\x18\xf1\xf8\xff\xff\x01 \x01(\x05\x12\x1e\n\x0erepeated_int32\x18\xf2\xf8\xff\xff\x01 \x03(\x05\x42\x02\x10\x00\x12\x1c\n\x0cpacked_int32\x18\xf3\xf8\xff\xff\x01 \x03(\x05\x42\x02\x10\x01\x12\x39\n\roptional_enum\x18\xf4\xf8\xff\xff\x01 \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum\x12\x1b\n\x0foptional_string\x18\xf5\xf8\xff\xff\x01 \x01(\t\x12\x1a\n\x0eoptional_bytes\x18\xf6\xf8\xff\xff\x01 \x01(\x0c\x12?\n\x10optional_message\x18\xf7\xf8\xff\xff\x01 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage\x12P\n\roptionalgroup\x18\xf8\xf8\xff\xff\x01 \x01(\n25.protobuf_unittest.TestHugeFieldNumbers.OptionalGroup\x12[\n\x11string_string_map\x18\xfa\xf8\xff\xff\x01 \x03(\x0b\x32<.protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry\x12\x1a\n\x0coneof_uint32\x18\xfb\xf8\xff\xff\x01 \x01(\rH\x00\x12\x43\n\x14oneof_test_all_types\x18\xfc\xf8\xff\xff\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypesH\x00\x12\x1a\n\x0coneof_string\x18\xfd\xf8\xff\xff\x01 \x01(\tH\x00\x12\x19\n\x0boneof_bytes\x18\xfe\xf8\xff\xff\x01 \x01(\x0cH\x00\x1a$\n\rOptionalGroup\x12\x13\n\x07group_a\x18\xf9\xf8\xff\xff\x01 \x01(\x05\x1a\x36\n\x14StringStringMapEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*\x0c\x08\xe0\xaa\xff\xff\x01\x10\xf0\xf8\xff\xff\x01\x42\r\n\x0boneof_field*@\n\x0b\x46oreignEnum\x12\x0f\n\x0b\x46OREIGN_FOO\x10\x04\x12\x0f\n\x0b\x46OREIGN_BAR\x10\x05\x12\x0f\n\x0b\x46OREIGN_BAZ\x10\x06*K\n\x14TestEnumWithDupValue\x12\x08\n\x04\x46OO1\x10\x01\x12\x08\n\x04\x42\x41R1\x10\x02\x12\x07\n\x03\x42\x41Z\x10\x03\x12\x08\n\x04\x46OO2\x10\x01\x12\x08\n\x04\x42\x41R2\x10\x02\x1a\x02\x10\x01*\x89\x01\n\x0eTestSparseEnum\x12\x0c\n\x08SPARSE_A\x10{\x12\x0e\n\x08SPARSE_B\x10\xa6\xe7\x03\x12\x0f\n\x08SPARSE_C\x10\xb2\xb1\x80\x06\x12\x15\n\x08SPARSE_D\x10\xf1\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x15\n\x08SPARSE_E\x10\xb4\xde\xfc\xff\xff\xff\xff\xff\xff\x01\x12\x0c\n\x08SPARSE_F\x10\x00\x12\x0c\n\x08SPARSE_G\x10\x02\x32\x99\x01\n\x0bTestService\x12\x44\n\x03\x46oo\x12\x1d.protobuf_unittest.FooRequest\x1a\x1e.protobuf_unittest.FooResponse\x12\x44\n\x03\x42\x61r\x12\x1d.protobuf_unittest.BarRequest\x1a\x1e.protobuf_unittest.BarResponse:F\n\x18optional_int32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x01 \x01(\x05:F\n\x18optional_int64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x02 \x01(\x03:G\n\x19optional_uint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x03 \x01(\r:G\n\x19optional_uint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x04 \x01(\x04:G\n\x19optional_sint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x05 \x01(\x11:G\n\x19optional_sint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x06 \x01(\x12:H\n\x1aoptional_fixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x07 \x01(\x07:H\n\x1aoptional_fixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x08 \x01(\x06:I\n\x1boptional_sfixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\t \x01(\x0f:I\n\x1boptional_sfixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\n \x01(\x10:F\n\x18optional_float_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x0b \x01(\x02:G\n\x19optional_double_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x0c \x01(\x01:E\n\x17optional_bool_extension\x12$.protobuf_unittest.TestAllExtensions\x18\r \x01(\x08:G\n\x19optional_string_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x0e \x01(\t:F\n\x18optional_bytes_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x0f \x01(\x0c:q\n\x17optionalgroup_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x10 \x01(\n2*.protobuf_unittest.OptionalGroup_extension:~\n!optional_nested_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x12 \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage:s\n\"optional_foreign_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x13 \x01(\x0b\x32!.protobuf_unittest.ForeignMessage:x\n!optional_import_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x14 \x01(\x0b\x32\'.protobuf_unittest_import.ImportMessage:x\n\x1eoptional_nested_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x15 \x01(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum:m\n\x1foptional_foreign_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x16 \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum:r\n\x1eoptional_import_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x17 \x01(\x0e\x32$.protobuf_unittest_import.ImportEnum:Q\n\x1foptional_string_piece_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x18 \x01(\tB\x02\x08\x02:I\n\x17optional_cord_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x19 \x01(\tB\x02\x08\x01:\x85\x01\n(optional_public_import_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x1a \x01(\x0b\x32-.protobuf_unittest_import.PublicImportMessage:\x80\x01\n\x1foptional_lazy_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x1b \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessageB\x02(\x01:F\n\x18repeated_int32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x1f \x03(\x05:F\n\x18repeated_int64_extension\x12$.protobuf_unittest.TestAllExtensions\x18  \x03(\x03:G\n\x19repeated_uint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18! \x03(\r:G\n\x19repeated_uint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\" \x03(\x04:G\n\x19repeated_sint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18# \x03(\x11:G\n\x19repeated_sint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18$ \x03(\x12:H\n\x1arepeated_fixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18% \x03(\x07:H\n\x1arepeated_fixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18& \x03(\x06:I\n\x1brepeated_sfixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\' \x03(\x0f:I\n\x1brepeated_sfixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18( \x03(\x10:F\n\x18repeated_float_extension\x12$.protobuf_unittest.TestAllExtensions\x18) \x03(\x02:G\n\x19repeated_double_extension\x12$.protobuf_unittest.TestAllExtensions\x18* \x03(\x01:E\n\x17repeated_bool_extension\x12$.protobuf_unittest.TestAllExtensions\x18+ \x03(\x08:G\n\x19repeated_string_extension\x12$.protobuf_unittest.TestAllExtensions\x18, \x03(\t:F\n\x18repeated_bytes_extension\x12$.protobuf_unittest.TestAllExtensions\x18- \x03(\x0c:q\n\x17repeatedgroup_extension\x12$.protobuf_unittest.TestAllExtensions\x18. \x03(\n2*.protobuf_unittest.RepeatedGroup_extension:~\n!repeated_nested_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x30 \x03(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage:s\n\"repeated_foreign_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x31 \x03(\x0b\x32!.protobuf_unittest.ForeignMessage:x\n!repeated_import_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x32 \x03(\x0b\x32\'.protobuf_unittest_import.ImportMessage:x\n\x1erepeated_nested_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x33 \x03(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum:m\n\x1frepeated_foreign_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x34 \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnum:r\n\x1erepeated_import_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x35 \x03(\x0e\x32$.protobuf_unittest_import.ImportEnum:Q\n\x1frepeated_string_piece_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x36 \x03(\tB\x02\x08\x02:I\n\x17repeated_cord_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x37 \x03(\tB\x02\x08\x01:\x80\x01\n\x1frepeated_lazy_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x39 \x03(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessageB\x02(\x01:I\n\x17\x64\x65\x66\x61ult_int32_extension\x12$.protobuf_unittest.TestAllExtensions\x18= \x01(\x05:\x02\x34\x31:I\n\x17\x64\x65\x66\x61ult_int64_extension\x12$.protobuf_unittest.TestAllExtensions\x18> \x01(\x03:\x02\x34\x32:J\n\x18\x64\x65\x66\x61ult_uint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18? \x01(\r:\x02\x34\x33:J\n\x18\x64\x65\x66\x61ult_uint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18@ \x01(\x04:\x02\x34\x34:K\n\x18\x64\x65\x66\x61ult_sint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x41 \x01(\x11:\x03-45:J\n\x18\x64\x65\x66\x61ult_sint64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x42 \x01(\x12:\x02\x34\x36:K\n\x19\x64\x65\x66\x61ult_fixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x43 \x01(\x07:\x02\x34\x37:K\n\x19\x64\x65\x66\x61ult_fixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x44 \x01(\x06:\x02\x34\x38:L\n\x1a\x64\x65\x66\x61ult_sfixed32_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x45 \x01(\x0f:\x02\x34\x39:M\n\x1a\x64\x65\x66\x61ult_sfixed64_extension\x12$.protobuf_unittest.TestAllExtensions\x18\x46 \x01(\x10:\x03-50:K\n\x17\x64\x65\x66\x61ult_float_extension\x12$.protobuf_unittest.TestAllExtensions\x18G \x01(\x02:\x04\x35\x31.5:M\n\x18\x64\x65\x66\x61ult_double_extension\x12$.protobuf_unittest.TestAllExtensions\x18H \x01(\x01:\x05\x35\x32\x30\x30\x30:J\n\x16\x64\x65\x66\x61ult_bool_extension\x12$.protobuf_unittest.TestAllExtensions\x18I \x01(\x08:\x04true:M\n\x18\x64\x65\x66\x61ult_string_extension\x12$.protobuf_unittest.TestAllExtensions\x18J \x01(\t:\x05hello:L\n\x17\x64\x65\x66\x61ult_bytes_extension\x12$.protobuf_unittest.TestAllExtensions\x18K \x01(\x0c:\x05world:|\n\x1d\x64\x65\x66\x61ult_nested_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18Q \x01(\x0e\x32*.protobuf_unittest.TestAllTypes.NestedEnum:\x03\x42\x41R:y\n\x1e\x64\x65\x66\x61ult_foreign_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18R \x01(\x0e\x32\x1e.protobuf_unittest.ForeignEnum:\x0b\x46OREIGN_BAR:}\n\x1d\x64\x65\x66\x61ult_import_enum_extension\x12$.protobuf_unittest.TestAllExtensions\x18S \x01(\x0e\x32$.protobuf_unittest_import.ImportEnum:\nIMPORT_BAR:U\n\x1e\x64\x65\x66\x61ult_string_piece_extension\x12$.protobuf_unittest.TestAllExtensions\x18T \x01(\t:\x03\x61\x62\x63\x42\x02\x08\x02:M\n\x16\x64\x65\x66\x61ult_cord_extension\x12$.protobuf_unittest.TestAllExtensions\x18U \x01(\t:\x03\x31\x32\x33\x42\x02\x08\x01:D\n\x16oneof_uint32_extension\x12$.protobuf_unittest.TestAllExtensions\x18o \x01(\r:{\n\x1eoneof_nested_message_extension\x12$.protobuf_unittest.TestAllExtensions\x18p \x01(\x0b\x32-.protobuf_unittest.TestAllTypes.NestedMessage:D\n\x16oneof_string_extension\x12$.protobuf_unittest.TestAllExtensions\x18q \x01(\t:C\n\x15oneof_bytes_extension\x12$.protobuf_unittest.TestAllExtensions\x18r \x01(\x0c:B\n\x13my_extension_string\x12%.protobuf_unittest.TestFieldOrderings\x18\x32 \x01(\t:?\n\x10my_extension_int\x12%.protobuf_unittest.TestFieldOrderings\x18\x05 \x01(\x05:K\n\x16packed_int32_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18Z \x03(\x05\x42\x02\x10\x01:K\n\x16packed_int64_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18[ \x03(\x03\x42\x02\x10\x01:L\n\x17packed_uint32_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\\ \x03(\rB\x02\x10\x01:L\n\x17packed_uint64_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18] \x03(\x04\x42\x02\x10\x01:L\n\x17packed_sint32_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18^ \x03(\x11\x42\x02\x10\x01:L\n\x17packed_sint64_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18_ \x03(\x12\x42\x02\x10\x01:M\n\x18packed_fixed32_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18` \x03(\x07\x42\x02\x10\x01:M\n\x18packed_fixed64_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x61 \x03(\x06\x42\x02\x10\x01:N\n\x19packed_sfixed32_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x62 \x03(\x0f\x42\x02\x10\x01:N\n\x19packed_sfixed64_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x63 \x03(\x10\x42\x02\x10\x01:K\n\x16packed_float_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x64 \x03(\x02\x42\x02\x10\x01:L\n\x17packed_double_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x65 \x03(\x01\x42\x02\x10\x01:J\n\x15packed_bool_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18\x66 \x03(\x08\x42\x02\x10\x01:j\n\x15packed_enum_extension\x12\'.protobuf_unittest.TestPackedExtensions\x18g \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnumB\x02\x10\x01:O\n\x18unpacked_int32_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18Z \x03(\x05\x42\x02\x10\x00:O\n\x18unpacked_int64_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18[ \x03(\x03\x42\x02\x10\x00:P\n\x19unpacked_uint32_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\\ \x03(\rB\x02\x10\x00:P\n\x19unpacked_uint64_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18] \x03(\x04\x42\x02\x10\x00:P\n\x19unpacked_sint32_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18^ \x03(\x11\x42\x02\x10\x00:P\n\x19unpacked_sint64_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18_ \x03(\x12\x42\x02\x10\x00:Q\n\x1aunpacked_fixed32_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18` \x03(\x07\x42\x02\x10\x00:Q\n\x1aunpacked_fixed64_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x61 \x03(\x06\x42\x02\x10\x00:R\n\x1bunpacked_sfixed32_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x62 \x03(\x0f\x42\x02\x10\x00:R\n\x1bunpacked_sfixed64_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x63 \x03(\x10\x42\x02\x10\x00:O\n\x18unpacked_float_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x64 \x03(\x02\x42\x02\x10\x00:P\n\x19unpacked_double_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x65 \x03(\x01\x42\x02\x10\x00:N\n\x17unpacked_bool_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18\x66 \x03(\x08\x42\x02\x10\x00:n\n\x17unpacked_enum_extension\x12).protobuf_unittest.TestUnpackedExtensions\x18g \x03(\x0e\x32\x1e.protobuf_unittest.ForeignEnumB\x02\x10\x00:d\n\x0etest_all_types\x12\'.protobuf_unittest.TestHugeFieldNumbers\x18\xe0\xaa\xff\xff\x01 \x01(\x0b\x32\x1f.protobuf_unittest.TestAllTypesB\x1d\x42\rUnittestProtoH\x01\x80\x01\x01\x88\x01\x01\x90\x01\x01\xf8\x01\x01')
  ,
  dependencies=[google_dot_protobuf_dot_unittest__import__pb2.DESCRIPTOR,])

_FOREIGNENUM = _descriptor.EnumDescriptor(
  name='ForeignEnum',
  full_name='protobuf_unittest.ForeignEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_FOO', index=0, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_BAR', index=1, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOREIGN_BAZ', index=2, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=14076,
  serialized_end=14140,
)
_sym_db.RegisterEnumDescriptor(_FOREIGNENUM)

ForeignEnum = enum_type_wrapper.EnumTypeWrapper(_FOREIGNENUM)
_TESTENUMWITHDUPVALUE = _descriptor.EnumDescriptor(
  name='TestEnumWithDupValue',
  full_name='protobuf_unittest.TestEnumWithDupValue',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOO1', index=0, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR1', index=1, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAZ', index=2, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOO2', index=3, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR2', index=4, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=_descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\020\001')),
  serialized_start=14142,
  serialized_end=14217,
)
_sym_db.RegisterEnumDescriptor(_TESTENUMWITHDUPVALUE)

TestEnumWithDupValue = enum_type_wrapper.EnumTypeWrapper(_TESTENUMWITHDUPVALUE)
_TESTSPARSEENUM = _descriptor.EnumDescriptor(
  name='TestSparseEnum',
  full_name='protobuf_unittest.TestSparseEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='SPARSE_A', index=0, number=123,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SPARSE_B', index=1, number=62374,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SPARSE_C', index=2, number=12589234,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SPARSE_D', index=3, number=-15,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SPARSE_E', index=4, number=-53452,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SPARSE_F', index=5, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='SPARSE_G', index=6, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=14220,
  serialized_end=14357,
)
_sym_db.RegisterEnumDescriptor(_TESTSPARSEENUM)

TestSparseEnum = enum_type_wrapper.EnumTypeWrapper(_TESTSPARSEENUM)
FOREIGN_FOO = 4
FOREIGN_BAR = 5
FOREIGN_BAZ = 6
FOO1 = 1
BAR1 = 2
BAZ = 3
FOO2 = 1
BAR2 = 2
SPARSE_A = 123
SPARSE_B = 62374
SPARSE_C = 12589234
SPARSE_D = -15
SPARSE_E = -53452
SPARSE_F = 0
SPARSE_G = 2

OPTIONAL_INT32_EXTENSION_FIELD_NUMBER = 1
optional_int32_extension = _descriptor.FieldDescriptor(
  name='optional_int32_extension', full_name='protobuf_unittest.optional_int32_extension', index=0,
  number=1, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_INT64_EXTENSION_FIELD_NUMBER = 2
optional_int64_extension = _descriptor.FieldDescriptor(
  name='optional_int64_extension', full_name='protobuf_unittest.optional_int64_extension', index=1,
  number=2, type=3, cpp_type=2, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_UINT32_EXTENSION_FIELD_NUMBER = 3
optional_uint32_extension = _descriptor.FieldDescriptor(
  name='optional_uint32_extension', full_name='protobuf_unittest.optional_uint32_extension', index=2,
  number=3, type=13, cpp_type=3, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_UINT64_EXTENSION_FIELD_NUMBER = 4
optional_uint64_extension = _descriptor.FieldDescriptor(
  name='optional_uint64_extension', full_name='protobuf_unittest.optional_uint64_extension', index=3,
  number=4, type=4, cpp_type=4, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_SINT32_EXTENSION_FIELD_NUMBER = 5
optional_sint32_extension = _descriptor.FieldDescriptor(
  name='optional_sint32_extension', full_name='protobuf_unittest.optional_sint32_extension', index=4,
  number=5, type=17, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_SINT64_EXTENSION_FIELD_NUMBER = 6
optional_sint64_extension = _descriptor.FieldDescriptor(
  name='optional_sint64_extension', full_name='protobuf_unittest.optional_sint64_extension', index=5,
  number=6, type=18, cpp_type=2, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_FIXED32_EXTENSION_FIELD_NUMBER = 7
optional_fixed32_extension = _descriptor.FieldDescriptor(
  name='optional_fixed32_extension', full_name='protobuf_unittest.optional_fixed32_extension', index=6,
  number=7, type=7, cpp_type=3, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_FIXED64_EXTENSION_FIELD_NUMBER = 8
optional_fixed64_extension = _descriptor.FieldDescriptor(
  name='optional_fixed64_extension', full_name='protobuf_unittest.optional_fixed64_extension', index=7,
  number=8, type=6, cpp_type=4, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_SFIXED32_EXTENSION_FIELD_NUMBER = 9
optional_sfixed32_extension = _descriptor.FieldDescriptor(
  name='optional_sfixed32_extension', full_name='protobuf_unittest.optional_sfixed32_extension', index=8,
  number=9, type=15, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_SFIXED64_EXTENSION_FIELD_NUMBER = 10
optional_sfixed64_extension = _descriptor.FieldDescriptor(
  name='optional_sfixed64_extension', full_name='protobuf_unittest.optional_sfixed64_extension', index=9,
  number=10, type=16, cpp_type=2, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_FLOAT_EXTENSION_FIELD_NUMBER = 11
optional_float_extension = _descriptor.FieldDescriptor(
  name='optional_float_extension', full_name='protobuf_unittest.optional_float_extension', index=10,
  number=11, type=2, cpp_type=6, label=1,
  has_default_value=False, default_value=float(0),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_DOUBLE_EXTENSION_FIELD_NUMBER = 12
optional_double_extension = _descriptor.FieldDescriptor(
  name='optional_double_extension', full_name='protobuf_unittest.optional_double_extension', index=11,
  number=12, type=1, cpp_type=5, label=1,
  has_default_value=False, default_value=float(0),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_BOOL_EXTENSION_FIELD_NUMBER = 13
optional_bool_extension = _descriptor.FieldDescriptor(
  name='optional_bool_extension', full_name='protobuf_unittest.optional_bool_extension', index=12,
  number=13, type=8, cpp_type=7, label=1,
  has_default_value=False, default_value=False,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_STRING_EXTENSION_FIELD_NUMBER = 14
optional_string_extension = _descriptor.FieldDescriptor(
  name='optional_string_extension', full_name='protobuf_unittest.optional_string_extension', index=13,
  number=14, type=9, cpp_type=9, label=1,
  has_default_value=False, default_value=_b("").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_BYTES_EXTENSION_FIELD_NUMBER = 15
optional_bytes_extension = _descriptor.FieldDescriptor(
  name='optional_bytes_extension', full_name='protobuf_unittest.optional_bytes_extension', index=14,
  number=15, type=12, cpp_type=9, label=1,
  has_default_value=False, default_value=_b(""),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONALGROUP_EXTENSION_FIELD_NUMBER = 16
optionalgroup_extension = _descriptor.FieldDescriptor(
  name='optionalgroup_extension', full_name='protobuf_unittest.optionalgroup_extension', index=15,
  number=16, type=10, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_NESTED_MESSAGE_EXTENSION_FIELD_NUMBER = 18
optional_nested_message_extension = _descriptor.FieldDescriptor(
  name='optional_nested_message_extension', full_name='protobuf_unittest.optional_nested_message_extension', index=16,
  number=18, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_FOREIGN_MESSAGE_EXTENSION_FIELD_NUMBER = 19
optional_foreign_message_extension = _descriptor.FieldDescriptor(
  name='optional_foreign_message_extension', full_name='protobuf_unittest.optional_foreign_message_extension', index=17,
  number=19, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_IMPORT_MESSAGE_EXTENSION_FIELD_NUMBER = 20
optional_import_message_extension = _descriptor.FieldDescriptor(
  name='optional_import_message_extension', full_name='protobuf_unittest.optional_import_message_extension', index=18,
  number=20, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_NESTED_ENUM_EXTENSION_FIELD_NUMBER = 21
optional_nested_enum_extension = _descriptor.FieldDescriptor(
  name='optional_nested_enum_extension', full_name='protobuf_unittest.optional_nested_enum_extension', index=19,
  number=21, type=14, cpp_type=8, label=1,
  has_default_value=False, default_value=1,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_FOREIGN_ENUM_EXTENSION_FIELD_NUMBER = 22
optional_foreign_enum_extension = _descriptor.FieldDescriptor(
  name='optional_foreign_enum_extension', full_name='protobuf_unittest.optional_foreign_enum_extension', index=20,
  number=22, type=14, cpp_type=8, label=1,
  has_default_value=False, default_value=4,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_IMPORT_ENUM_EXTENSION_FIELD_NUMBER = 23
optional_import_enum_extension = _descriptor.FieldDescriptor(
  name='optional_import_enum_extension', full_name='protobuf_unittest.optional_import_enum_extension', index=21,
  number=23, type=14, cpp_type=8, label=1,
  has_default_value=False, default_value=7,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_STRING_PIECE_EXTENSION_FIELD_NUMBER = 24
optional_string_piece_extension = _descriptor.FieldDescriptor(
  name='optional_string_piece_extension', full_name='protobuf_unittest.optional_string_piece_extension', index=22,
  number=24, type=9, cpp_type=9, label=1,
  has_default_value=False, default_value=_b("").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR)
OPTIONAL_CORD_EXTENSION_FIELD_NUMBER = 25
optional_cord_extension = _descriptor.FieldDescriptor(
  name='optional_cord_extension', full_name='protobuf_unittest.optional_cord_extension', index=23,
  number=25, type=9, cpp_type=9, label=1,
  has_default_value=False, default_value=_b("").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR)
OPTIONAL_PUBLIC_IMPORT_MESSAGE_EXTENSION_FIELD_NUMBER = 26
optional_public_import_message_extension = _descriptor.FieldDescriptor(
  name='optional_public_import_message_extension', full_name='protobuf_unittest.optional_public_import_message_extension', index=24,
  number=26, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
OPTIONAL_LAZY_MESSAGE_EXTENSION_FIELD_NUMBER = 27
optional_lazy_message_extension = _descriptor.FieldDescriptor(
  name='optional_lazy_message_extension', full_name='protobuf_unittest.optional_lazy_message_extension', index=25,
  number=27, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR)
REPEATED_INT32_EXTENSION_FIELD_NUMBER = 31
repeated_int32_extension = _descriptor.FieldDescriptor(
  name='repeated_int32_extension', full_name='protobuf_unittest.repeated_int32_extension', index=26,
  number=31, type=5, cpp_type=1, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_INT64_EXTENSION_FIELD_NUMBER = 32
repeated_int64_extension = _descriptor.FieldDescriptor(
  name='repeated_int64_extension', full_name='protobuf_unittest.repeated_int64_extension', index=27,
  number=32, type=3, cpp_type=2, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_UINT32_EXTENSION_FIELD_NUMBER = 33
repeated_uint32_extension = _descriptor.FieldDescriptor(
  name='repeated_uint32_extension', full_name='protobuf_unittest.repeated_uint32_extension', index=28,
  number=33, type=13, cpp_type=3, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_UINT64_EXTENSION_FIELD_NUMBER = 34
repeated_uint64_extension = _descriptor.FieldDescriptor(
  name='repeated_uint64_extension', full_name='protobuf_unittest.repeated_uint64_extension', index=29,
  number=34, type=4, cpp_type=4, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_SINT32_EXTENSION_FIELD_NUMBER = 35
repeated_sint32_extension = _descriptor.FieldDescriptor(
  name='repeated_sint32_extension', full_name='protobuf_unittest.repeated_sint32_extension', index=30,
  number=35, type=17, cpp_type=1, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_SINT64_EXTENSION_FIELD_NUMBER = 36
repeated_sint64_extension = _descriptor.FieldDescriptor(
  name='repeated_sint64_extension', full_name='protobuf_unittest.repeated_sint64_extension', index=31,
  number=36, type=18, cpp_type=2, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_FIXED32_EXTENSION_FIELD_NUMBER = 37
repeated_fixed32_extension = _descriptor.FieldDescriptor(
  name='repeated_fixed32_extension', full_name='protobuf_unittest.repeated_fixed32_extension', index=32,
  number=37, type=7, cpp_type=3, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_FIXED64_EXTENSION_FIELD_NUMBER = 38
repeated_fixed64_extension = _descriptor.FieldDescriptor(
  name='repeated_fixed64_extension', full_name='protobuf_unittest.repeated_fixed64_extension', index=33,
  number=38, type=6, cpp_type=4, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_SFIXED32_EXTENSION_FIELD_NUMBER = 39
repeated_sfixed32_extension = _descriptor.FieldDescriptor(
  name='repeated_sfixed32_extension', full_name='protobuf_unittest.repeated_sfixed32_extension', index=34,
  number=39, type=15, cpp_type=1, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_SFIXED64_EXTENSION_FIELD_NUMBER = 40
repeated_sfixed64_extension = _descriptor.FieldDescriptor(
  name='repeated_sfixed64_extension', full_name='protobuf_unittest.repeated_sfixed64_extension', index=35,
  number=40, type=16, cpp_type=2, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_FLOAT_EXTENSION_FIELD_NUMBER = 41
repeated_float_extension = _descriptor.FieldDescriptor(
  name='repeated_float_extension', full_name='protobuf_unittest.repeated_float_extension', index=36,
  number=41, type=2, cpp_type=6, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_DOUBLE_EXTENSION_FIELD_NUMBER = 42
repeated_double_extension = _descriptor.FieldDescriptor(
  name='repeated_double_extension', full_name='protobuf_unittest.repeated_double_extension', index=37,
  number=42, type=1, cpp_type=5, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_BOOL_EXTENSION_FIELD_NUMBER = 43
repeated_bool_extension = _descriptor.FieldDescriptor(
  name='repeated_bool_extension', full_name='protobuf_unittest.repeated_bool_extension', index=38,
  number=43, type=8, cpp_type=7, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_STRING_EXTENSION_FIELD_NUMBER = 44
repeated_string_extension = _descriptor.FieldDescriptor(
  name='repeated_string_extension', full_name='protobuf_unittest.repeated_string_extension', index=39,
  number=44, type=9, cpp_type=9, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_BYTES_EXTENSION_FIELD_NUMBER = 45
repeated_bytes_extension = _descriptor.FieldDescriptor(
  name='repeated_bytes_extension', full_name='protobuf_unittest.repeated_bytes_extension', index=40,
  number=45, type=12, cpp_type=9, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATEDGROUP_EXTENSION_FIELD_NUMBER = 46
repeatedgroup_extension = _descriptor.FieldDescriptor(
  name='repeatedgroup_extension', full_name='protobuf_unittest.repeatedgroup_extension', index=41,
  number=46, type=10, cpp_type=10, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_NESTED_MESSAGE_EXTENSION_FIELD_NUMBER = 48
repeated_nested_message_extension = _descriptor.FieldDescriptor(
  name='repeated_nested_message_extension', full_name='protobuf_unittest.repeated_nested_message_extension', index=42,
  number=48, type=11, cpp_type=10, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_FOREIGN_MESSAGE_EXTENSION_FIELD_NUMBER = 49
repeated_foreign_message_extension = _descriptor.FieldDescriptor(
  name='repeated_foreign_message_extension', full_name='protobuf_unittest.repeated_foreign_message_extension', index=43,
  number=49, type=11, cpp_type=10, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_IMPORT_MESSAGE_EXTENSION_FIELD_NUMBER = 50
repeated_import_message_extension = _descriptor.FieldDescriptor(
  name='repeated_import_message_extension', full_name='protobuf_unittest.repeated_import_message_extension', index=44,
  number=50, type=11, cpp_type=10, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_NESTED_ENUM_EXTENSION_FIELD_NUMBER = 51
repeated_nested_enum_extension = _descriptor.FieldDescriptor(
  name='repeated_nested_enum_extension', full_name='protobuf_unittest.repeated_nested_enum_extension', index=45,
  number=51, type=14, cpp_type=8, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_FOREIGN_ENUM_EXTENSION_FIELD_NUMBER = 52
repeated_foreign_enum_extension = _descriptor.FieldDescriptor(
  name='repeated_foreign_enum_extension', full_name='protobuf_unittest.repeated_foreign_enum_extension', index=46,
  number=52, type=14, cpp_type=8, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_IMPORT_ENUM_EXTENSION_FIELD_NUMBER = 53
repeated_import_enum_extension = _descriptor.FieldDescriptor(
  name='repeated_import_enum_extension', full_name='protobuf_unittest.repeated_import_enum_extension', index=47,
  number=53, type=14, cpp_type=8, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
REPEATED_STRING_PIECE_EXTENSION_FIELD_NUMBER = 54
repeated_string_piece_extension = _descriptor.FieldDescriptor(
  name='repeated_string_piece_extension', full_name='protobuf_unittest.repeated_string_piece_extension', index=48,
  number=54, type=9, cpp_type=9, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR)
REPEATED_CORD_EXTENSION_FIELD_NUMBER = 55
repeated_cord_extension = _descriptor.FieldDescriptor(
  name='repeated_cord_extension', full_name='protobuf_unittest.repeated_cord_extension', index=49,
  number=55, type=9, cpp_type=9, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR)
REPEATED_LAZY_MESSAGE_EXTENSION_FIELD_NUMBER = 57
repeated_lazy_message_extension = _descriptor.FieldDescriptor(
  name='repeated_lazy_message_extension', full_name='protobuf_unittest.repeated_lazy_message_extension', index=50,
  number=57, type=11, cpp_type=10, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR)
DEFAULT_INT32_EXTENSION_FIELD_NUMBER = 61
default_int32_extension = _descriptor.FieldDescriptor(
  name='default_int32_extension', full_name='protobuf_unittest.default_int32_extension', index=51,
  number=61, type=5, cpp_type=1, label=1,
  has_default_value=True, default_value=41,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_INT64_EXTENSION_FIELD_NUMBER = 62
default_int64_extension = _descriptor.FieldDescriptor(
  name='default_int64_extension', full_name='protobuf_unittest.default_int64_extension', index=52,
  number=62, type=3, cpp_type=2, label=1,
  has_default_value=True, default_value=42,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_UINT32_EXTENSION_FIELD_NUMBER = 63
default_uint32_extension = _descriptor.FieldDescriptor(
  name='default_uint32_extension', full_name='protobuf_unittest.default_uint32_extension', index=53,
  number=63, type=13, cpp_type=3, label=1,
  has_default_value=True, default_value=43,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_UINT64_EXTENSION_FIELD_NUMBER = 64
default_uint64_extension = _descriptor.FieldDescriptor(
  name='default_uint64_extension', full_name='protobuf_unittest.default_uint64_extension', index=54,
  number=64, type=4, cpp_type=4, label=1,
  has_default_value=True, default_value=44,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_SINT32_EXTENSION_FIELD_NUMBER = 65
default_sint32_extension = _descriptor.FieldDescriptor(
  name='default_sint32_extension', full_name='protobuf_unittest.default_sint32_extension', index=55,
  number=65, type=17, cpp_type=1, label=1,
  has_default_value=True, default_value=-45,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_SINT64_EXTENSION_FIELD_NUMBER = 66
default_sint64_extension = _descriptor.FieldDescriptor(
  name='default_sint64_extension', full_name='protobuf_unittest.default_sint64_extension', index=56,
  number=66, type=18, cpp_type=2, label=1,
  has_default_value=True, default_value=46,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_FIXED32_EXTENSION_FIELD_NUMBER = 67
default_fixed32_extension = _descriptor.FieldDescriptor(
  name='default_fixed32_extension', full_name='protobuf_unittest.default_fixed32_extension', index=57,
  number=67, type=7, cpp_type=3, label=1,
  has_default_value=True, default_value=47,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_FIXED64_EXTENSION_FIELD_NUMBER = 68
default_fixed64_extension = _descriptor.FieldDescriptor(
  name='default_fixed64_extension', full_name='protobuf_unittest.default_fixed64_extension', index=58,
  number=68, type=6, cpp_type=4, label=1,
  has_default_value=True, default_value=48,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_SFIXED32_EXTENSION_FIELD_NUMBER = 69
default_sfixed32_extension = _descriptor.FieldDescriptor(
  name='default_sfixed32_extension', full_name='protobuf_unittest.default_sfixed32_extension', index=59,
  number=69, type=15, cpp_type=1, label=1,
  has_default_value=True, default_value=49,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_SFIXED64_EXTENSION_FIELD_NUMBER = 70
default_sfixed64_extension = _descriptor.FieldDescriptor(
  name='default_sfixed64_extension', full_name='protobuf_unittest.default_sfixed64_extension', index=60,
  number=70, type=16, cpp_type=2, label=1,
  has_default_value=True, default_value=-50,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_FLOAT_EXTENSION_FIELD_NUMBER = 71
default_float_extension = _descriptor.FieldDescriptor(
  name='default_float_extension', full_name='protobuf_unittest.default_float_extension', index=61,
  number=71, type=2, cpp_type=6, label=1,
  has_default_value=True, default_value=float(51.5),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_DOUBLE_EXTENSION_FIELD_NUMBER = 72
default_double_extension = _descriptor.FieldDescriptor(
  name='default_double_extension', full_name='protobuf_unittest.default_double_extension', index=62,
  number=72, type=1, cpp_type=5, label=1,
  has_default_value=True, default_value=float(52000),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_BOOL_EXTENSION_FIELD_NUMBER = 73
default_bool_extension = _descriptor.FieldDescriptor(
  name='default_bool_extension', full_name='protobuf_unittest.default_bool_extension', index=63,
  number=73, type=8, cpp_type=7, label=1,
  has_default_value=True, default_value=True,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_STRING_EXTENSION_FIELD_NUMBER = 74
default_string_extension = _descriptor.FieldDescriptor(
  name='default_string_extension', full_name='protobuf_unittest.default_string_extension', index=64,
  number=74, type=9, cpp_type=9, label=1,
  has_default_value=True, default_value=_b("hello").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_BYTES_EXTENSION_FIELD_NUMBER = 75
default_bytes_extension = _descriptor.FieldDescriptor(
  name='default_bytes_extension', full_name='protobuf_unittest.default_bytes_extension', index=65,
  number=75, type=12, cpp_type=9, label=1,
  has_default_value=True, default_value=_b("world"),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_NESTED_ENUM_EXTENSION_FIELD_NUMBER = 81
default_nested_enum_extension = _descriptor.FieldDescriptor(
  name='default_nested_enum_extension', full_name='protobuf_unittest.default_nested_enum_extension', index=66,
  number=81, type=14, cpp_type=8, label=1,
  has_default_value=True, default_value=2,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_FOREIGN_ENUM_EXTENSION_FIELD_NUMBER = 82
default_foreign_enum_extension = _descriptor.FieldDescriptor(
  name='default_foreign_enum_extension', full_name='protobuf_unittest.default_foreign_enum_extension', index=67,
  number=82, type=14, cpp_type=8, label=1,
  has_default_value=True, default_value=5,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_IMPORT_ENUM_EXTENSION_FIELD_NUMBER = 83
default_import_enum_extension = _descriptor.FieldDescriptor(
  name='default_import_enum_extension', full_name='protobuf_unittest.default_import_enum_extension', index=68,
  number=83, type=14, cpp_type=8, label=1,
  has_default_value=True, default_value=8,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
DEFAULT_STRING_PIECE_EXTENSION_FIELD_NUMBER = 84
default_string_piece_extension = _descriptor.FieldDescriptor(
  name='default_string_piece_extension', full_name='protobuf_unittest.default_string_piece_extension', index=69,
  number=84, type=9, cpp_type=9, label=1,
  has_default_value=True, default_value=_b("abc").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR)
DEFAULT_CORD_EXTENSION_FIELD_NUMBER = 85
default_cord_extension = _descriptor.FieldDescriptor(
  name='default_cord_extension', full_name='protobuf_unittest.default_cord_extension', index=70,
  number=85, type=9, cpp_type=9, label=1,
  has_default_value=True, default_value=_b("123").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR)
ONEOF_UINT32_EXTENSION_FIELD_NUMBER = 111
oneof_uint32_extension = _descriptor.FieldDescriptor(
  name='oneof_uint32_extension', full_name='protobuf_unittest.oneof_uint32_extension', index=71,
  number=111, type=13, cpp_type=3, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
ONEOF_NESTED_MESSAGE_EXTENSION_FIELD_NUMBER = 112
oneof_nested_message_extension = _descriptor.FieldDescriptor(
  name='oneof_nested_message_extension', full_name='protobuf_unittest.oneof_nested_message_extension', index=72,
  number=112, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
ONEOF_STRING_EXTENSION_FIELD_NUMBER = 113
oneof_string_extension = _descriptor.FieldDescriptor(
  name='oneof_string_extension', full_name='protobuf_unittest.oneof_string_extension', index=73,
  number=113, type=9, cpp_type=9, label=1,
  has_default_value=False, default_value=_b("").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
ONEOF_BYTES_EXTENSION_FIELD_NUMBER = 114
oneof_bytes_extension = _descriptor.FieldDescriptor(
  name='oneof_bytes_extension', full_name='protobuf_unittest.oneof_bytes_extension', index=74,
  number=114, type=12, cpp_type=9, label=1,
  has_default_value=False, default_value=_b(""),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
MY_EXTENSION_STRING_FIELD_NUMBER = 50
my_extension_string = _descriptor.FieldDescriptor(
  name='my_extension_string', full_name='protobuf_unittest.my_extension_string', index=75,
  number=50, type=9, cpp_type=9, label=1,
  has_default_value=False, default_value=_b("").decode('utf-8'),
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
MY_EXTENSION_INT_FIELD_NUMBER = 5
my_extension_int = _descriptor.FieldDescriptor(
  name='my_extension_int', full_name='protobuf_unittest.my_extension_int', index=76,
  number=5, type=5, cpp_type=1, label=1,
  has_default_value=False, default_value=0,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)
PACKED_INT32_EXTENSION_FIELD_NUMBER = 90
packed_int32_extension = _descriptor.FieldDescriptor(
  name='packed_int32_extension', full_name='protobuf_unittest.packed_int32_extension', index=77,
  number=90, type=5, cpp_type=1, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_INT64_EXTENSION_FIELD_NUMBER = 91
packed_int64_extension = _descriptor.FieldDescriptor(
  name='packed_int64_extension', full_name='protobuf_unittest.packed_int64_extension', index=78,
  number=91, type=3, cpp_type=2, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_UINT32_EXTENSION_FIELD_NUMBER = 92
packed_uint32_extension = _descriptor.FieldDescriptor(
  name='packed_uint32_extension', full_name='protobuf_unittest.packed_uint32_extension', index=79,
  number=92, type=13, cpp_type=3, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_UINT64_EXTENSION_FIELD_NUMBER = 93
packed_uint64_extension = _descriptor.FieldDescriptor(
  name='packed_uint64_extension', full_name='protobuf_unittest.packed_uint64_extension', index=80,
  number=93, type=4, cpp_type=4, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_SINT32_EXTENSION_FIELD_NUMBER = 94
packed_sint32_extension = _descriptor.FieldDescriptor(
  name='packed_sint32_extension', full_name='protobuf_unittest.packed_sint32_extension', index=81,
  number=94, type=17, cpp_type=1, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_SINT64_EXTENSION_FIELD_NUMBER = 95
packed_sint64_extension = _descriptor.FieldDescriptor(
  name='packed_sint64_extension', full_name='protobuf_unittest.packed_sint64_extension', index=82,
  number=95, type=18, cpp_type=2, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_FIXED32_EXTENSION_FIELD_NUMBER = 96
packed_fixed32_extension = _descriptor.FieldDescriptor(
  name='packed_fixed32_extension', full_name='protobuf_unittest.packed_fixed32_extension', index=83,
  number=96, type=7, cpp_type=3, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_FIXED64_EXTENSION_FIELD_NUMBER = 97
packed_fixed64_extension = _descriptor.FieldDescriptor(
  name='packed_fixed64_extension', full_name='protobuf_unittest.packed_fixed64_extension', index=84,
  number=97, type=6, cpp_type=4, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_SFIXED32_EXTENSION_FIELD_NUMBER = 98
packed_sfixed32_extension = _descriptor.FieldDescriptor(
  name='packed_sfixed32_extension', full_name='protobuf_unittest.packed_sfixed32_extension', index=85,
  number=98, type=15, cpp_type=1, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_SFIXED64_EXTENSION_FIELD_NUMBER = 99
packed_sfixed64_extension = _descriptor.FieldDescriptor(
  name='packed_sfixed64_extension', full_name='protobuf_unittest.packed_sfixed64_extension', index=86,
  number=99, type=16, cpp_type=2, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_FLOAT_EXTENSION_FIELD_NUMBER = 100
packed_float_extension = _descriptor.FieldDescriptor(
  name='packed_float_extension', full_name='protobuf_unittest.packed_float_extension', index=87,
  number=100, type=2, cpp_type=6, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_DOUBLE_EXTENSION_FIELD_NUMBER = 101
packed_double_extension = _descriptor.FieldDescriptor(
  name='packed_double_extension', full_name='protobuf_unittest.packed_double_extension', index=88,
  number=101, type=1, cpp_type=5, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_BOOL_EXTENSION_FIELD_NUMBER = 102
packed_bool_extension = _descriptor.FieldDescriptor(
  name='packed_bool_extension', full_name='protobuf_unittest.packed_bool_extension', index=89,
  number=102, type=8, cpp_type=7, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
PACKED_ENUM_EXTENSION_FIELD_NUMBER = 103
packed_enum_extension = _descriptor.FieldDescriptor(
  name='packed_enum_extension', full_name='protobuf_unittest.packed_enum_extension', index=90,
  number=103, type=14, cpp_type=8, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR)
UNPACKED_INT32_EXTENSION_FIELD_NUMBER = 90
unpacked_int32_extension = _descriptor.FieldDescriptor(
  name='unpacked_int32_extension', full_name='protobuf_unittest.unpacked_int32_extension', index=91,
  number=90, type=5, cpp_type=1, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_INT64_EXTENSION_FIELD_NUMBER = 91
unpacked_int64_extension = _descriptor.FieldDescriptor(
  name='unpacked_int64_extension', full_name='protobuf_unittest.unpacked_int64_extension', index=92,
  number=91, type=3, cpp_type=2, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_UINT32_EXTENSION_FIELD_NUMBER = 92
unpacked_uint32_extension = _descriptor.FieldDescriptor(
  name='unpacked_uint32_extension', full_name='protobuf_unittest.unpacked_uint32_extension', index=93,
  number=92, type=13, cpp_type=3, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_UINT64_EXTENSION_FIELD_NUMBER = 93
unpacked_uint64_extension = _descriptor.FieldDescriptor(
  name='unpacked_uint64_extension', full_name='protobuf_unittest.unpacked_uint64_extension', index=94,
  number=93, type=4, cpp_type=4, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_SINT32_EXTENSION_FIELD_NUMBER = 94
unpacked_sint32_extension = _descriptor.FieldDescriptor(
  name='unpacked_sint32_extension', full_name='protobuf_unittest.unpacked_sint32_extension', index=95,
  number=94, type=17, cpp_type=1, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_SINT64_EXTENSION_FIELD_NUMBER = 95
unpacked_sint64_extension = _descriptor.FieldDescriptor(
  name='unpacked_sint64_extension', full_name='protobuf_unittest.unpacked_sint64_extension', index=96,
  number=95, type=18, cpp_type=2, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_FIXED32_EXTENSION_FIELD_NUMBER = 96
unpacked_fixed32_extension = _descriptor.FieldDescriptor(
  name='unpacked_fixed32_extension', full_name='protobuf_unittest.unpacked_fixed32_extension', index=97,
  number=96, type=7, cpp_type=3, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_FIXED64_EXTENSION_FIELD_NUMBER = 97
unpacked_fixed64_extension = _descriptor.FieldDescriptor(
  name='unpacked_fixed64_extension', full_name='protobuf_unittest.unpacked_fixed64_extension', index=98,
  number=97, type=6, cpp_type=4, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_SFIXED32_EXTENSION_FIELD_NUMBER = 98
unpacked_sfixed32_extension = _descriptor.FieldDescriptor(
  name='unpacked_sfixed32_extension', full_name='protobuf_unittest.unpacked_sfixed32_extension', index=99,
  number=98, type=15, cpp_type=1, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_SFIXED64_EXTENSION_FIELD_NUMBER = 99
unpacked_sfixed64_extension = _descriptor.FieldDescriptor(
  name='unpacked_sfixed64_extension', full_name='protobuf_unittest.unpacked_sfixed64_extension', index=100,
  number=99, type=16, cpp_type=2, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_FLOAT_EXTENSION_FIELD_NUMBER = 100
unpacked_float_extension = _descriptor.FieldDescriptor(
  name='unpacked_float_extension', full_name='protobuf_unittest.unpacked_float_extension', index=101,
  number=100, type=2, cpp_type=6, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_DOUBLE_EXTENSION_FIELD_NUMBER = 101
unpacked_double_extension = _descriptor.FieldDescriptor(
  name='unpacked_double_extension', full_name='protobuf_unittest.unpacked_double_extension', index=102,
  number=101, type=1, cpp_type=5, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_BOOL_EXTENSION_FIELD_NUMBER = 102
unpacked_bool_extension = _descriptor.FieldDescriptor(
  name='unpacked_bool_extension', full_name='protobuf_unittest.unpacked_bool_extension', index=103,
  number=102, type=8, cpp_type=7, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
UNPACKED_ENUM_EXTENSION_FIELD_NUMBER = 103
unpacked_enum_extension = _descriptor.FieldDescriptor(
  name='unpacked_enum_extension', full_name='protobuf_unittest.unpacked_enum_extension', index=104,
  number=103, type=14, cpp_type=8, label=3,
  has_default_value=False, default_value=[],
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR)
TEST_ALL_TYPES_FIELD_NUMBER = 536860000
test_all_types = _descriptor.FieldDescriptor(
  name='test_all_types', full_name='protobuf_unittest.test_all_types', index=105,
  number=536860000, type=11, cpp_type=10, label=1,
  has_default_value=False, default_value=None,
  message_type=None, enum_type=None, containing_type=None,
  is_extension=True, extension_scope=None,
  options=None, file=DESCRIPTOR)

_TESTALLTYPES_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='protobuf_unittest.TestAllTypes.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOO', index=0, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR', index=1, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAZ', index=2, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NEG', index=3, number=-1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3202,
  serialized_end=3259,
)
_sym_db.RegisterEnumDescriptor(_TESTALLTYPES_NESTEDENUM)

_TESTONEOF2_NESTEDENUM = _descriptor.EnumDescriptor(
  name='NestedEnum',
  full_name='protobuf_unittest.TestOneof2.NestedEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FOO', index=0, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAR', index=1, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BAZ', index=2, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3202,
  serialized_end=3241,
)
_sym_db.RegisterEnumDescriptor(_TESTONEOF2_NESTEDENUM)

_TESTDYNAMICEXTENSIONS_DYNAMICENUMTYPE = _descriptor.EnumDescriptor(
  name='DynamicEnumType',
  full_name='protobuf_unittest.TestDynamicExtensions.DynamicEnumType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='DYNAMIC_FOO', index=0, number=2200,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DYNAMIC_BAR', index=1, number=2201,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DYNAMIC_BAZ', index=2, number=2202,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=11449,
  serialized_end=11520,
)
_sym_db.RegisterEnumDescriptor(_TESTDYNAMICEXTENSIONS_DYNAMICENUMTYPE)


_TESTALLTYPES_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='protobuf_unittest.TestAllTypes.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bb', full_name='protobuf_unittest.TestAllTypes.NestedMessage.bb', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3117,
  serialized_end=3144,
)

_TESTALLTYPES_OPTIONALGROUP = _descriptor.Descriptor(
  name='OptionalGroup',
  full_name='protobuf_unittest.TestAllTypes.OptionalGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestAllTypes.OptionalGroup.a', index=0,
      number=17, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3146,
  serialized_end=3172,
)

_TESTALLTYPES_REPEATEDGROUP = _descriptor.Descriptor(
  name='RepeatedGroup',
  full_name='protobuf_unittest.TestAllTypes.RepeatedGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestAllTypes.RepeatedGroup.a', index=0,
      number=47, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3174,
  serialized_end=3200,
)

_TESTALLTYPES = _descriptor.Descriptor(
  name='TestAllTypes',
  full_name='protobuf_unittest.TestAllTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_int32', full_name='protobuf_unittest.TestAllTypes.optional_int32', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_int64', full_name='protobuf_unittest.TestAllTypes.optional_int64', index=1,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint32', full_name='protobuf_unittest.TestAllTypes.optional_uint32', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_uint64', full_name='protobuf_unittest.TestAllTypes.optional_uint64', index=3,
      number=4, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sint32', full_name='protobuf_unittest.TestAllTypes.optional_sint32', index=4,
      number=5, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sint64', full_name='protobuf_unittest.TestAllTypes.optional_sint64', index=5,
      number=6, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_fixed32', full_name='protobuf_unittest.TestAllTypes.optional_fixed32', index=6,
      number=7, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_fixed64', full_name='protobuf_unittest.TestAllTypes.optional_fixed64', index=7,
      number=8, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sfixed32', full_name='protobuf_unittest.TestAllTypes.optional_sfixed32', index=8,
      number=9, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_sfixed64', full_name='protobuf_unittest.TestAllTypes.optional_sfixed64', index=9,
      number=10, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_float', full_name='protobuf_unittest.TestAllTypes.optional_float', index=10,
      number=11, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_double', full_name='protobuf_unittest.TestAllTypes.optional_double', index=11,
      number=12, type=1, cpp_type=5, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bool', full_name='protobuf_unittest.TestAllTypes.optional_bool', index=12,
      number=13, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string', full_name='protobuf_unittest.TestAllTypes.optional_string', index=13,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bytes', full_name='protobuf_unittest.TestAllTypes.optional_bytes', index=14,
      number=15, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optionalgroup', full_name='protobuf_unittest.TestAllTypes.optionalgroup', index=15,
      number=16, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_message', full_name='protobuf_unittest.TestAllTypes.optional_nested_message', index=16,
      number=18, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_foreign_message', full_name='protobuf_unittest.TestAllTypes.optional_foreign_message', index=17,
      number=19, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_import_message', full_name='protobuf_unittest.TestAllTypes.optional_import_message', index=18,
      number=20, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_enum', full_name='protobuf_unittest.TestAllTypes.optional_nested_enum', index=19,
      number=21, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_foreign_enum', full_name='protobuf_unittest.TestAllTypes.optional_foreign_enum', index=20,
      number=22, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=4,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_import_enum', full_name='protobuf_unittest.TestAllTypes.optional_import_enum', index=21,
      number=23, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=7,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string_piece', full_name='protobuf_unittest.TestAllTypes.optional_string_piece', index=22,
      number=24, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_cord', full_name='protobuf_unittest.TestAllTypes.optional_cord', index=23,
      number=25, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_public_import_message', full_name='protobuf_unittest.TestAllTypes.optional_public_import_message', index=24,
      number=26, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_lazy_message', full_name='protobuf_unittest.TestAllTypes.optional_lazy_message', index=25,
      number=27, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int32', full_name='protobuf_unittest.TestAllTypes.repeated_int32', index=26,
      number=31, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64', full_name='protobuf_unittest.TestAllTypes.repeated_int64', index=27,
      number=32, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint32', full_name='protobuf_unittest.TestAllTypes.repeated_uint32', index=28,
      number=33, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64', full_name='protobuf_unittest.TestAllTypes.repeated_uint64', index=29,
      number=34, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint32', full_name='protobuf_unittest.TestAllTypes.repeated_sint32', index=30,
      number=35, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sint64', full_name='protobuf_unittest.TestAllTypes.repeated_sint64', index=31,
      number=36, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed32', full_name='protobuf_unittest.TestAllTypes.repeated_fixed32', index=32,
      number=37, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed64', full_name='protobuf_unittest.TestAllTypes.repeated_fixed64', index=33,
      number=38, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed32', full_name='protobuf_unittest.TestAllTypes.repeated_sfixed32', index=34,
      number=39, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_sfixed64', full_name='protobuf_unittest.TestAllTypes.repeated_sfixed64', index=35,
      number=40, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float', full_name='protobuf_unittest.TestAllTypes.repeated_float', index=36,
      number=41, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_double', full_name='protobuf_unittest.TestAllTypes.repeated_double', index=37,
      number=42, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bool', full_name='protobuf_unittest.TestAllTypes.repeated_bool', index=38,
      number=43, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string', full_name='protobuf_unittest.TestAllTypes.repeated_string', index=39,
      number=44, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_bytes', full_name='protobuf_unittest.TestAllTypes.repeated_bytes', index=40,
      number=45, type=12, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeatedgroup', full_name='protobuf_unittest.TestAllTypes.repeatedgroup', index=41,
      number=46, type=10, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_message', full_name='protobuf_unittest.TestAllTypes.repeated_nested_message', index=42,
      number=48, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_foreign_message', full_name='protobuf_unittest.TestAllTypes.repeated_foreign_message', index=43,
      number=49, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_import_message', full_name='protobuf_unittest.TestAllTypes.repeated_import_message', index=44,
      number=50, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_nested_enum', full_name='protobuf_unittest.TestAllTypes.repeated_nested_enum', index=45,
      number=51, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_foreign_enum', full_name='protobuf_unittest.TestAllTypes.repeated_foreign_enum', index=46,
      number=52, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_import_enum', full_name='protobuf_unittest.TestAllTypes.repeated_import_enum', index=47,
      number=53, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_string_piece', full_name='protobuf_unittest.TestAllTypes.repeated_string_piece', index=48,
      number=54, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_cord', full_name='protobuf_unittest.TestAllTypes.repeated_cord', index=49,
      number=55, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_lazy_message', full_name='protobuf_unittest.TestAllTypes.repeated_lazy_message', index=50,
      number=57, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_int32', full_name='protobuf_unittest.TestAllTypes.default_int32', index=51,
      number=61, type=5, cpp_type=1, label=1,
      has_default_value=True, default_value=41,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_int64', full_name='protobuf_unittest.TestAllTypes.default_int64', index=52,
      number=62, type=3, cpp_type=2, label=1,
      has_default_value=True, default_value=42,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_uint32', full_name='protobuf_unittest.TestAllTypes.default_uint32', index=53,
      number=63, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=43,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_uint64', full_name='protobuf_unittest.TestAllTypes.default_uint64', index=54,
      number=64, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=44,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_sint32', full_name='protobuf_unittest.TestAllTypes.default_sint32', index=55,
      number=65, type=17, cpp_type=1, label=1,
      has_default_value=True, default_value=-45,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_sint64', full_name='protobuf_unittest.TestAllTypes.default_sint64', index=56,
      number=66, type=18, cpp_type=2, label=1,
      has_default_value=True, default_value=46,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_fixed32', full_name='protobuf_unittest.TestAllTypes.default_fixed32', index=57,
      number=67, type=7, cpp_type=3, label=1,
      has_default_value=True, default_value=47,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_fixed64', full_name='protobuf_unittest.TestAllTypes.default_fixed64', index=58,
      number=68, type=6, cpp_type=4, label=1,
      has_default_value=True, default_value=48,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_sfixed32', full_name='protobuf_unittest.TestAllTypes.default_sfixed32', index=59,
      number=69, type=15, cpp_type=1, label=1,
      has_default_value=True, default_value=49,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_sfixed64', full_name='protobuf_unittest.TestAllTypes.default_sfixed64', index=60,
      number=70, type=16, cpp_type=2, label=1,
      has_default_value=True, default_value=-50,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_float', full_name='protobuf_unittest.TestAllTypes.default_float', index=61,
      number=71, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(51.5),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_double', full_name='protobuf_unittest.TestAllTypes.default_double', index=62,
      number=72, type=1, cpp_type=5, label=1,
      has_default_value=True, default_value=float(52000),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_bool', full_name='protobuf_unittest.TestAllTypes.default_bool', index=63,
      number=73, type=8, cpp_type=7, label=1,
      has_default_value=True, default_value=True,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_string', full_name='protobuf_unittest.TestAllTypes.default_string', index=64,
      number=74, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("hello").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_bytes', full_name='protobuf_unittest.TestAllTypes.default_bytes', index=65,
      number=75, type=12, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("world"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_nested_enum', full_name='protobuf_unittest.TestAllTypes.default_nested_enum', index=66,
      number=81, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=2,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_foreign_enum', full_name='protobuf_unittest.TestAllTypes.default_foreign_enum', index=67,
      number=82, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=5,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_import_enum', full_name='protobuf_unittest.TestAllTypes.default_import_enum', index=68,
      number=83, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=8,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_string_piece', full_name='protobuf_unittest.TestAllTypes.default_string_piece', index=69,
      number=84, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("abc").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='default_cord', full_name='protobuf_unittest.TestAllTypes.default_cord', index=70,
      number=85, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("123").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_uint32', full_name='protobuf_unittest.TestAllTypes.oneof_uint32', index=71,
      number=111, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_nested_message', full_name='protobuf_unittest.TestAllTypes.oneof_nested_message', index=72,
      number=112, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_string', full_name='protobuf_unittest.TestAllTypes.oneof_string', index=73,
      number=113, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_bytes', full_name='protobuf_unittest.TestAllTypes.oneof_bytes', index=74,
      number=114, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTALLTYPES_NESTEDMESSAGE, _TESTALLTYPES_OPTIONALGROUP, _TESTALLTYPES_REPEATEDGROUP, ],
  enum_types=[
    _TESTALLTYPES_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='oneof_field', full_name='protobuf_unittest.TestAllTypes.oneof_field',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=93,
  serialized_end=3274,
)


_NESTEDTESTALLTYPES = _descriptor.Descriptor(
  name='NestedTestAllTypes',
  full_name='protobuf_unittest.NestedTestAllTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='child', full_name='protobuf_unittest.NestedTestAllTypes.child', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='payload', full_name='protobuf_unittest.NestedTestAllTypes.payload', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_child', full_name='protobuf_unittest.NestedTestAllTypes.repeated_child', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3277,
  serialized_end=3464,
)


_TESTDEPRECATEDFIELDS = _descriptor.Descriptor(
  name='TestDeprecatedFields',
  full_name='protobuf_unittest.TestDeprecatedFields',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='deprecated_int32', full_name='protobuf_unittest.TestDeprecatedFields.deprecated_int32', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3466,
  serialized_end=3518,
)


_TESTDEPRECATEDMESSAGE = _descriptor.Descriptor(
  name='TestDeprecatedMessage',
  full_name='protobuf_unittest.TestDeprecatedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\030\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3520,
  serialized_end=3547,
)


_FOREIGNMESSAGE = _descriptor.Descriptor(
  name='ForeignMessage',
  full_name='protobuf_unittest.ForeignMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='c', full_name='protobuf_unittest.ForeignMessage.c', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='d', full_name='protobuf_unittest.ForeignMessage.d', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3549,
  serialized_end=3587,
)


_TESTRESERVEDFIELDS = _descriptor.Descriptor(
  name='TestReservedFields',
  full_name='protobuf_unittest.TestReservedFields',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3589,
  serialized_end=3637,
)


_TESTALLEXTENSIONS = _descriptor.Descriptor(
  name='TestAllExtensions',
  full_name='protobuf_unittest.TestAllExtensions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1, 536870912), ],
  oneofs=[
  ],
  serialized_start=3639,
  serialized_end=3668,
)


_OPTIONALGROUP_EXTENSION = _descriptor.Descriptor(
  name='OptionalGroup_extension',
  full_name='protobuf_unittest.OptionalGroup_extension',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.OptionalGroup_extension.a', index=0,
      number=17, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3670,
  serialized_end=3706,
)


_REPEATEDGROUP_EXTENSION = _descriptor.Descriptor(
  name='RepeatedGroup_extension',
  full_name='protobuf_unittest.RepeatedGroup_extension',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.RepeatedGroup_extension.a', index=0,
      number=47, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3708,
  serialized_end=3744,
)


_TESTNESTEDEXTENSION = _descriptor.Descriptor(
  name='TestNestedExtension',
  full_name='protobuf_unittest.TestNestedExtension',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='test', full_name='protobuf_unittest.TestNestedExtension.test', index=0,
      number=1002, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("test").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nested_string_extension', full_name='protobuf_unittest.TestNestedExtension.nested_string_extension', index=1,
      number=1003, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3747,
  serialized_end=3899,
)


_TESTREQUIRED = _descriptor.Descriptor(
  name='TestRequired',
  full_name='protobuf_unittest.TestRequired',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestRequired.a', index=0,
      number=1, type=5, cpp_type=1, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy2', full_name='protobuf_unittest.TestRequired.dummy2', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='b', full_name='protobuf_unittest.TestRequired.b', index=2,
      number=3, type=5, cpp_type=1, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy4', full_name='protobuf_unittest.TestRequired.dummy4', index=3,
      number=4, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy5', full_name='protobuf_unittest.TestRequired.dummy5', index=4,
      number=5, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy6', full_name='protobuf_unittest.TestRequired.dummy6', index=5,
      number=6, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy7', full_name='protobuf_unittest.TestRequired.dummy7', index=6,
      number=7, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy8', full_name='protobuf_unittest.TestRequired.dummy8', index=7,
      number=8, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy9', full_name='protobuf_unittest.TestRequired.dummy9', index=8,
      number=9, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy10', full_name='protobuf_unittest.TestRequired.dummy10', index=9,
      number=10, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy11', full_name='protobuf_unittest.TestRequired.dummy11', index=10,
      number=11, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy12', full_name='protobuf_unittest.TestRequired.dummy12', index=11,
      number=12, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy13', full_name='protobuf_unittest.TestRequired.dummy13', index=12,
      number=13, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy14', full_name='protobuf_unittest.TestRequired.dummy14', index=13,
      number=14, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy15', full_name='protobuf_unittest.TestRequired.dummy15', index=14,
      number=15, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy16', full_name='protobuf_unittest.TestRequired.dummy16', index=15,
      number=16, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy17', full_name='protobuf_unittest.TestRequired.dummy17', index=16,
      number=17, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy18', full_name='protobuf_unittest.TestRequired.dummy18', index=17,
      number=18, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy19', full_name='protobuf_unittest.TestRequired.dummy19', index=18,
      number=19, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy20', full_name='protobuf_unittest.TestRequired.dummy20', index=19,
      number=20, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy21', full_name='protobuf_unittest.TestRequired.dummy21', index=20,
      number=21, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy22', full_name='protobuf_unittest.TestRequired.dummy22', index=21,
      number=22, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy23', full_name='protobuf_unittest.TestRequired.dummy23', index=22,
      number=23, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy24', full_name='protobuf_unittest.TestRequired.dummy24', index=23,
      number=24, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy25', full_name='protobuf_unittest.TestRequired.dummy25', index=24,
      number=25, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy26', full_name='protobuf_unittest.TestRequired.dummy26', index=25,
      number=26, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy27', full_name='protobuf_unittest.TestRequired.dummy27', index=26,
      number=27, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy28', full_name='protobuf_unittest.TestRequired.dummy28', index=27,
      number=28, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy29', full_name='protobuf_unittest.TestRequired.dummy29', index=28,
      number=29, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy30', full_name='protobuf_unittest.TestRequired.dummy30', index=29,
      number=30, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy31', full_name='protobuf_unittest.TestRequired.dummy31', index=30,
      number=31, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy32', full_name='protobuf_unittest.TestRequired.dummy32', index=31,
      number=32, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='c', full_name='protobuf_unittest.TestRequired.c', index=32,
      number=33, type=5, cpp_type=1, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='single', full_name='protobuf_unittest.TestRequired.single', index=0,
      number=1000, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='multi', full_name='protobuf_unittest.TestRequired.multi', index=1,
      number=1001, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3902,
  serialized_end=4627,
)


_TESTREQUIREDFOREIGN = _descriptor.Descriptor(
  name='TestRequiredForeign',
  full_name='protobuf_unittest.TestRequiredForeign',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_message', full_name='protobuf_unittest.TestRequiredForeign.optional_message', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_message', full_name='protobuf_unittest.TestRequiredForeign.repeated_message', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dummy', full_name='protobuf_unittest.TestRequiredForeign.dummy', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4630,
  serialized_end=4784,
)


_TESTREQUIREDMESSAGE = _descriptor.Descriptor(
  name='TestRequiredMessage',
  full_name='protobuf_unittest.TestRequiredMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_message', full_name='protobuf_unittest.TestRequiredMessage.optional_message', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_message', full_name='protobuf_unittest.TestRequiredMessage.repeated_message', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='required_message', full_name='protobuf_unittest.TestRequiredMessage.required_message', index=2,
      number=3, type=11, cpp_type=10, label=2,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4787,
  serialized_end=4985,
)


_TESTFOREIGNNESTED = _descriptor.Descriptor(
  name='TestForeignNested',
  full_name='protobuf_unittest.TestForeignNested',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='foreign_nested', full_name='protobuf_unittest.TestForeignNested.foreign_nested', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4987,
  serialized_end=5077,
)


_TESTEMPTYMESSAGE = _descriptor.Descriptor(
  name='TestEmptyMessage',
  full_name='protobuf_unittest.TestEmptyMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5079,
  serialized_end=5097,
)


_TESTEMPTYMESSAGEWITHEXTENSIONS = _descriptor.Descriptor(
  name='TestEmptyMessageWithExtensions',
  full_name='protobuf_unittest.TestEmptyMessageWithExtensions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1, 536870912), ],
  oneofs=[
  ],
  serialized_start=5099,
  serialized_end=5141,
)


_TESTMULTIPLEEXTENSIONRANGES = _descriptor.Descriptor(
  name='TestMultipleExtensionRanges',
  full_name='protobuf_unittest.TestMultipleExtensionRanges',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(42, 43), (4143, 4244), (65536, 536870912), ],
  oneofs=[
  ],
  serialized_start=5143,
  serialized_end=5198,
)


_TESTREALLYLARGETAGNUMBER = _descriptor.Descriptor(
  name='TestReallyLargeTagNumber',
  full_name='protobuf_unittest.TestReallyLargeTagNumber',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestReallyLargeTagNumber.a', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bb', full_name='protobuf_unittest.TestReallyLargeTagNumber.bb', index=1,
      number=268435455, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5200,
  serialized_end=5252,
)


_TESTRECURSIVEMESSAGE = _descriptor.Descriptor(
  name='TestRecursiveMessage',
  full_name='protobuf_unittest.TestRecursiveMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestRecursiveMessage.a', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='i', full_name='protobuf_unittest.TestRecursiveMessage.i', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5254,
  serialized_end=5339,
)


_TESTMUTUALRECURSIONA_SUBMESSAGE = _descriptor.Descriptor(
  name='SubMessage',
  full_name='protobuf_unittest.TestMutualRecursionA.SubMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='b', full_name='protobuf_unittest.TestMutualRecursionA.SubMessage.b', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5487,
  serialized_end=5551,
)

_TESTMUTUALRECURSIONA_SUBGROUP = _descriptor.Descriptor(
  name='SubGroup',
  full_name='protobuf_unittest.TestMutualRecursionA.SubGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sub_message', full_name='protobuf_unittest.TestMutualRecursionA.SubGroup.sub_message', index=0,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='not_in_this_scc', full_name='protobuf_unittest.TestMutualRecursionA.SubGroup.not_in_this_scc', index=1,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5554,
  serialized_end=5695,
)

_TESTMUTUALRECURSIONA = _descriptor.Descriptor(
  name='TestMutualRecursionA',
  full_name='protobuf_unittest.TestMutualRecursionA',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='bb', full_name='protobuf_unittest.TestMutualRecursionA.bb', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='subgroup', full_name='protobuf_unittest.TestMutualRecursionA.subgroup', index=1,
      number=2, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTMUTUALRECURSIONA_SUBMESSAGE, _TESTMUTUALRECURSIONA_SUBGROUP, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5342,
  serialized_end=5695,
)


_TESTMUTUALRECURSIONB = _descriptor.Descriptor(
  name='TestMutualRecursionB',
  full_name='protobuf_unittest.TestMutualRecursionB',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestMutualRecursionB.a', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_int32', full_name='protobuf_unittest.TestMutualRecursionB.optional_int32', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5697,
  serialized_end=5795,
)


_TESTISINITIALIZED_SUBMESSAGE_SUBGROUP = _descriptor.Descriptor(
  name='SubGroup',
  full_name='protobuf_unittest.TestIsInitialized.SubMessage.SubGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='i', full_name='protobuf_unittest.TestIsInitialized.SubMessage.SubGroup.i', index=0,
      number=2, type=5, cpp_type=1, label=2,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5979,
  serialized_end=6000,
)

_TESTISINITIALIZED_SUBMESSAGE = _descriptor.Descriptor(
  name='SubMessage',
  full_name='protobuf_unittest.TestIsInitialized.SubMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='subgroup', full_name='protobuf_unittest.TestIsInitialized.SubMessage.subgroup', index=0,
      number=1, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTISINITIALIZED_SUBMESSAGE_SUBGROUP, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5889,
  serialized_end=6000,
)

_TESTISINITIALIZED = _descriptor.Descriptor(
  name='TestIsInitialized',
  full_name='protobuf_unittest.TestIsInitialized',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sub_message', full_name='protobuf_unittest.TestIsInitialized.sub_message', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTISINITIALIZED_SUBMESSAGE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5798,
  serialized_end=6000,
)


_TESTDUPFIELDNUMBER_FOO = _descriptor.Descriptor(
  name='Foo',
  full_name='protobuf_unittest.TestDupFieldNumber.Foo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestDupFieldNumber.Foo.a', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6148,
  serialized_end=6164,
)

_TESTDUPFIELDNUMBER_BAR = _descriptor.Descriptor(
  name='Bar',
  full_name='protobuf_unittest.TestDupFieldNumber.Bar',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestDupFieldNumber.Bar.a', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6166,
  serialized_end=6182,
)

_TESTDUPFIELDNUMBER = _descriptor.Descriptor(
  name='TestDupFieldNumber',
  full_name='protobuf_unittest.TestDupFieldNumber',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestDupFieldNumber.a', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo', full_name='protobuf_unittest.TestDupFieldNumber.foo', index=1,
      number=2, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bar', full_name='protobuf_unittest.TestDupFieldNumber.bar', index=2,
      number=3, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTDUPFIELDNUMBER_FOO, _TESTDUPFIELDNUMBER_BAR, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6003,
  serialized_end=6182,
)


_TESTEAGERMESSAGE = _descriptor.Descriptor(
  name='TestEagerMessage',
  full_name='protobuf_unittest.TestEagerMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sub_message', full_name='protobuf_unittest.TestEagerMessage.sub_message', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\000')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6184,
  serialized_end=6260,
)


_TESTLAZYMESSAGE = _descriptor.Descriptor(
  name='TestLazyMessage',
  full_name='protobuf_unittest.TestLazyMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sub_message', full_name='protobuf_unittest.TestLazyMessage.sub_message', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6262,
  serialized_end=6337,
)


_TESTNESTEDMESSAGEHASBITS_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='protobuf_unittest.TestNestedMessageHasBits.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='nestedmessage_repeated_int32', full_name='protobuf_unittest.TestNestedMessageHasBits.NestedMessage.nestedmessage_repeated_int32', index=0,
      number=1, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nestedmessage_repeated_foreignmessage', full_name='protobuf_unittest.TestNestedMessageHasBits.NestedMessage.nestedmessage_repeated_foreignmessage', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6461,
  serialized_end=6596,
)

_TESTNESTEDMESSAGEHASBITS = _descriptor.Descriptor(
  name='TestNestedMessageHasBits',
  full_name='protobuf_unittest.TestNestedMessageHasBits',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_nested_message', full_name='protobuf_unittest.TestNestedMessageHasBits.optional_nested_message', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTNESTEDMESSAGEHASBITS_NESTEDMESSAGE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6340,
  serialized_end=6596,
)


_TESTCAMELCASEFIELDNAMES = _descriptor.Descriptor(
  name='TestCamelCaseFieldNames',
  full_name='protobuf_unittest.TestCamelCaseFieldNames',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='PrimitiveField', full_name='protobuf_unittest.TestCamelCaseFieldNames.PrimitiveField', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='StringField', full_name='protobuf_unittest.TestCamelCaseFieldNames.StringField', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='EnumField', full_name='protobuf_unittest.TestCamelCaseFieldNames.EnumField', index=2,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=4,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='MessageField', full_name='protobuf_unittest.TestCamelCaseFieldNames.MessageField', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='StringPieceField', full_name='protobuf_unittest.TestCamelCaseFieldNames.StringPieceField', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='CordField', full_name='protobuf_unittest.TestCamelCaseFieldNames.CordField', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='RepeatedPrimitiveField', full_name='protobuf_unittest.TestCamelCaseFieldNames.RepeatedPrimitiveField', index=6,
      number=7, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='RepeatedStringField', full_name='protobuf_unittest.TestCamelCaseFieldNames.RepeatedStringField', index=7,
      number=8, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='RepeatedEnumField', full_name='protobuf_unittest.TestCamelCaseFieldNames.RepeatedEnumField', index=8,
      number=9, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='RepeatedMessageField', full_name='protobuf_unittest.TestCamelCaseFieldNames.RepeatedMessageField', index=9,
      number=10, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='RepeatedStringPieceField', full_name='protobuf_unittest.TestCamelCaseFieldNames.RepeatedStringPieceField', index=10,
      number=11, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='RepeatedCordField', full_name='protobuf_unittest.TestCamelCaseFieldNames.RepeatedCordField', index=11,
      number=12, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6599,
  serialized_end=7084,
)


_TESTFIELDORDERINGS_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='protobuf_unittest.TestFieldOrderings.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='oo', full_name='protobuf_unittest.TestFieldOrderings.NestedMessage.oo', index=0,
      number=2, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bb', full_name='protobuf_unittest.TestFieldOrderings.NestedMessage.bb', index=1,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7249,
  serialized_end=7288,
)

_TESTFIELDORDERINGS = _descriptor.Descriptor(
  name='TestFieldOrderings',
  full_name='protobuf_unittest.TestFieldOrderings',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='my_string', full_name='protobuf_unittest.TestFieldOrderings.my_string', index=0,
      number=11, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='my_int', full_name='protobuf_unittest.TestFieldOrderings.my_int', index=1,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='my_float', full_name='protobuf_unittest.TestFieldOrderings.my_float', index=2,
      number=101, type=2, cpp_type=6, label=1,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_nested_message', full_name='protobuf_unittest.TestFieldOrderings.optional_nested_message', index=3,
      number=200, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTFIELDORDERINGS_NESTEDMESSAGE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(2, 11), (12, 101), ],
  oneofs=[
  ],
  serialized_start=7087,
  serialized_end=7300,
)


_TESTEXTREMEDEFAULTVALUES = _descriptor.Descriptor(
  name='TestExtremeDefaultValues',
  full_name='protobuf_unittest.TestExtremeDefaultValues',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='escaped_bytes', full_name='protobuf_unittest.TestExtremeDefaultValues.escaped_bytes', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("\000\001\007\010\014\n\r\t\013\\\'\"\376"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='large_uint32', full_name='protobuf_unittest.TestExtremeDefaultValues.large_uint32', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=True, default_value=4294967295,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='large_uint64', full_name='protobuf_unittest.TestExtremeDefaultValues.large_uint64', index=2,
      number=3, type=4, cpp_type=4, label=1,
      has_default_value=True, default_value=18446744073709551615,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='small_int32', full_name='protobuf_unittest.TestExtremeDefaultValues.small_int32', index=3,
      number=4, type=5, cpp_type=1, label=1,
      has_default_value=True, default_value=-2147483647,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='small_int64', full_name='protobuf_unittest.TestExtremeDefaultValues.small_int64', index=4,
      number=5, type=3, cpp_type=2, label=1,
      has_default_value=True, default_value=-9223372036854775807,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='really_small_int32', full_name='protobuf_unittest.TestExtremeDefaultValues.really_small_int32', index=5,
      number=21, type=5, cpp_type=1, label=1,
      has_default_value=True, default_value=-2147483648,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='really_small_int64', full_name='protobuf_unittest.TestExtremeDefaultValues.really_small_int64', index=6,
      number=22, type=3, cpp_type=2, label=1,
      has_default_value=True, default_value=-9223372036854775808,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='utf8_string', full_name='protobuf_unittest.TestExtremeDefaultValues.utf8_string', index=7,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("\341\210\264").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='zero_float', full_name='protobuf_unittest.TestExtremeDefaultValues.zero_float', index=8,
      number=7, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='one_float', full_name='protobuf_unittest.TestExtremeDefaultValues.one_float', index=9,
      number=8, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(1),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='small_float', full_name='protobuf_unittest.TestExtremeDefaultValues.small_float', index=10,
      number=9, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(1.5),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='negative_one_float', full_name='protobuf_unittest.TestExtremeDefaultValues.negative_one_float', index=11,
      number=10, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(-1),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='negative_float', full_name='protobuf_unittest.TestExtremeDefaultValues.negative_float', index=12,
      number=11, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(-1.5),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='large_float', full_name='protobuf_unittest.TestExtremeDefaultValues.large_float', index=13,
      number=12, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(2e+08),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='small_negative_float', full_name='protobuf_unittest.TestExtremeDefaultValues.small_negative_float', index=14,
      number=13, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=float(-8e-28),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='inf_double', full_name='protobuf_unittest.TestExtremeDefaultValues.inf_double', index=15,
      number=14, type=1, cpp_type=5, label=1,
      has_default_value=True, default_value=1e10000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='neg_inf_double', full_name='protobuf_unittest.TestExtremeDefaultValues.neg_inf_double', index=16,
      number=15, type=1, cpp_type=5, label=1,
      has_default_value=True, default_value=-1e10000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nan_double', full_name='protobuf_unittest.TestExtremeDefaultValues.nan_double', index=17,
      number=16, type=1, cpp_type=5, label=1,
      has_default_value=True, default_value=(1e10000 * 0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='inf_float', full_name='protobuf_unittest.TestExtremeDefaultValues.inf_float', index=18,
      number=17, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=1e10000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='neg_inf_float', full_name='protobuf_unittest.TestExtremeDefaultValues.neg_inf_float', index=19,
      number=18, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=-1e10000,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nan_float', full_name='protobuf_unittest.TestExtremeDefaultValues.nan_float', index=20,
      number=19, type=2, cpp_type=6, label=1,
      has_default_value=True, default_value=(1e10000 * 0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='cpp_trigraph', full_name='protobuf_unittest.TestExtremeDefaultValues.cpp_trigraph', index=21,
      number=20, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("? ? ?? ?? ??? ??/ ??-").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_with_zero', full_name='protobuf_unittest.TestExtremeDefaultValues.string_with_zero', index=22,
      number=23, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("hel\000lo").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bytes_with_zero', full_name='protobuf_unittest.TestExtremeDefaultValues.bytes_with_zero', index=23,
      number=24, type=12, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("wor\000ld"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_piece_with_zero', full_name='protobuf_unittest.TestExtremeDefaultValues.string_piece_with_zero', index=24,
      number=25, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("ab\000c").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='cord_with_zero', full_name='protobuf_unittest.TestExtremeDefaultValues.cord_with_zero', index=25,
      number=26, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("12\0003").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='replacement_string', full_name='protobuf_unittest.TestExtremeDefaultValues.replacement_string', index=26,
      number=27, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("${unknown}").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7303,
  serialized_end=8253,
)


_SPARSEENUMMESSAGE = _descriptor.Descriptor(
  name='SparseEnumMessage',
  full_name='protobuf_unittest.SparseEnumMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sparse_enum', full_name='protobuf_unittest.SparseEnumMessage.sparse_enum', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=123,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8255,
  serialized_end=8330,
)


_ONESTRING = _descriptor.Descriptor(
  name='OneString',
  full_name='protobuf_unittest.OneString',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='data', full_name='protobuf_unittest.OneString.data', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8332,
  serialized_end=8357,
)


_MORESTRING = _descriptor.Descriptor(
  name='MoreString',
  full_name='protobuf_unittest.MoreString',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='data', full_name='protobuf_unittest.MoreString.data', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8359,
  serialized_end=8385,
)


_ONEBYTES = _descriptor.Descriptor(
  name='OneBytes',
  full_name='protobuf_unittest.OneBytes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='data', full_name='protobuf_unittest.OneBytes.data', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8387,
  serialized_end=8411,
)


_MOREBYTES = _descriptor.Descriptor(
  name='MoreBytes',
  full_name='protobuf_unittest.MoreBytes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='data', full_name='protobuf_unittest.MoreBytes.data', index=0,
      number=1, type=12, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8413,
  serialized_end=8438,
)


_INT32MESSAGE = _descriptor.Descriptor(
  name='Int32Message',
  full_name='protobuf_unittest.Int32Message',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='data', full_name='protobuf_unittest.Int32Message.data', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8440,
  serialized_end=8468,
)


_UINT32MESSAGE = _descriptor.Descriptor(
  name='Uint32Message',
  full_name='protobuf_unittest.Uint32Message',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='data', full_name='protobuf_unittest.Uint32Message.data', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8470,
  serialized_end=8499,
)


_INT64MESSAGE = _descriptor.Descriptor(
  name='Int64Message',
  full_name='protobuf_unittest.Int64Message',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='data', full_name='protobuf_unittest.Int64Message.data', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8501,
  serialized_end=8529,
)


_UINT64MESSAGE = _descriptor.Descriptor(
  name='Uint64Message',
  full_name='protobuf_unittest.Uint64Message',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='data', full_name='protobuf_unittest.Uint64Message.data', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8531,
  serialized_end=8560,
)


_BOOLMESSAGE = _descriptor.Descriptor(
  name='BoolMessage',
  full_name='protobuf_unittest.BoolMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='data', full_name='protobuf_unittest.BoolMessage.data', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8562,
  serialized_end=8589,
)


_TESTONEOF_FOOGROUP = _descriptor.Descriptor(
  name='FooGroup',
  full_name='protobuf_unittest.TestOneof.FooGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestOneof.FooGroup.a', index=0,
      number=5, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='b', full_name='protobuf_unittest.TestOneof.FooGroup.b', index=1,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8761,
  serialized_end=8793,
)

_TESTONEOF = _descriptor.Descriptor(
  name='TestOneof',
  full_name='protobuf_unittest.TestOneof',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='foo_int', full_name='protobuf_unittest.TestOneof.foo_int', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_string', full_name='protobuf_unittest.TestOneof.foo_string', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_message', full_name='protobuf_unittest.TestOneof.foo_message', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foogroup', full_name='protobuf_unittest.TestOneof.foogroup', index=3,
      number=4, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTONEOF_FOOGROUP, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='foo', full_name='protobuf_unittest.TestOneof.foo',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=8592,
  serialized_end=8800,
)


_TESTONEOFBACKWARDSCOMPATIBLE_FOOGROUP = _descriptor.Descriptor(
  name='FooGroup',
  full_name='protobuf_unittest.TestOneofBackwardsCompatible.FooGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestOneofBackwardsCompatible.FooGroup.a', index=0,
      number=5, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='b', full_name='protobuf_unittest.TestOneofBackwardsCompatible.FooGroup.b', index=1,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8761,
  serialized_end=8793,
)

_TESTONEOFBACKWARDSCOMPATIBLE = _descriptor.Descriptor(
  name='TestOneofBackwardsCompatible',
  full_name='protobuf_unittest.TestOneofBackwardsCompatible',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='foo_int', full_name='protobuf_unittest.TestOneofBackwardsCompatible.foo_int', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_string', full_name='protobuf_unittest.TestOneofBackwardsCompatible.foo_string', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_message', full_name='protobuf_unittest.TestOneofBackwardsCompatible.foo_message', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foogroup', full_name='protobuf_unittest.TestOneofBackwardsCompatible.foogroup', index=3,
      number=4, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTONEOFBACKWARDSCOMPATIBLE_FOOGROUP, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8803,
  serialized_end=9034,
)


_TESTONEOF2_FOOGROUP = _descriptor.Descriptor(
  name='FooGroup',
  full_name='protobuf_unittest.TestOneof2.FooGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestOneof2.FooGroup.a', index=0,
      number=9, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='b', full_name='protobuf_unittest.TestOneof2.FooGroup.b', index=1,
      number=10, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=9695,
  serialized_end=9727,
)

_TESTONEOF2_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='protobuf_unittest.TestOneof2.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='qux_int', full_name='protobuf_unittest.TestOneof2.NestedMessage.qux_int', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='corge_int', full_name='protobuf_unittest.TestOneof2.NestedMessage.corge_int', index=1,
      number=2, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=9729,
  serialized_end=9780,
)

_TESTONEOF2 = _descriptor.Descriptor(
  name='TestOneof2',
  full_name='protobuf_unittest.TestOneof2',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='foo_int', full_name='protobuf_unittest.TestOneof2.foo_int', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_string', full_name='protobuf_unittest.TestOneof2.foo_string', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_cord', full_name='protobuf_unittest.TestOneof2.foo_cord', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_string_piece', full_name='protobuf_unittest.TestOneof2.foo_string_piece', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_bytes', full_name='protobuf_unittest.TestOneof2.foo_bytes', index=4,
      number=5, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_enum', full_name='protobuf_unittest.TestOneof2.foo_enum', index=5,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_message', full_name='protobuf_unittest.TestOneof2.foo_message', index=6,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foogroup', full_name='protobuf_unittest.TestOneof2.foogroup', index=7,
      number=8, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_lazy_message', full_name='protobuf_unittest.TestOneof2.foo_lazy_message', index=8,
      number=11, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bar_int', full_name='protobuf_unittest.TestOneof2.bar_int', index=9,
      number=12, type=5, cpp_type=1, label=1,
      has_default_value=True, default_value=5,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bar_string', full_name='protobuf_unittest.TestOneof2.bar_string', index=10,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("STRING").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bar_cord', full_name='protobuf_unittest.TestOneof2.bar_cord', index=11,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("CORD").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bar_string_piece', full_name='protobuf_unittest.TestOneof2.bar_string_piece', index=12,
      number=15, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("SPIECE").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bar_bytes', full_name='protobuf_unittest.TestOneof2.bar_bytes', index=13,
      number=16, type=12, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("BYTES"),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='bar_enum', full_name='protobuf_unittest.TestOneof2.bar_enum', index=14,
      number=17, type=14, cpp_type=8, label=1,
      has_default_value=True, default_value=2,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='baz_int', full_name='protobuf_unittest.TestOneof2.baz_int', index=15,
      number=18, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='baz_string', full_name='protobuf_unittest.TestOneof2.baz_string', index=16,
      number=19, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("BAZ").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTONEOF2_FOOGROUP, _TESTONEOF2_NESTEDMESSAGE, ],
  enum_types=[
    _TESTONEOF2_NESTEDENUM,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='foo', full_name='protobuf_unittest.TestOneof2.foo',
      index=0, containing_type=None, fields=[]),
    _descriptor.OneofDescriptor(
      name='bar', full_name='protobuf_unittest.TestOneof2.bar',
      index=1, containing_type=None, fields=[]),
  ],
  serialized_start=9037,
  serialized_end=9835,
)


_TESTREQUIREDONEOF_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='protobuf_unittest.TestRequiredOneof.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='required_double', full_name='protobuf_unittest.TestRequiredOneof.NestedMessage.required_double', index=0,
      number=1, type=1, cpp_type=5, label=2,
      has_default_value=False, default_value=float(0),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=9975,
  serialized_end=10015,
)

_TESTREQUIREDONEOF = _descriptor.Descriptor(
  name='TestRequiredOneof',
  full_name='protobuf_unittest.TestRequiredOneof',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='foo_int', full_name='protobuf_unittest.TestRequiredOneof.foo_int', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_string', full_name='protobuf_unittest.TestRequiredOneof.foo_string', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='foo_message', full_name='protobuf_unittest.TestRequiredOneof.foo_message', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTREQUIREDONEOF_NESTEDMESSAGE, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='foo', full_name='protobuf_unittest.TestRequiredOneof.foo',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=9838,
  serialized_end=10022,
)


_TESTPACKEDTYPES = _descriptor.Descriptor(
  name='TestPackedTypes',
  full_name='protobuf_unittest.TestPackedTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='packed_int32', full_name='protobuf_unittest.TestPackedTypes.packed_int32', index=0,
      number=90, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_int64', full_name='protobuf_unittest.TestPackedTypes.packed_int64', index=1,
      number=91, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_uint32', full_name='protobuf_unittest.TestPackedTypes.packed_uint32', index=2,
      number=92, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_uint64', full_name='protobuf_unittest.TestPackedTypes.packed_uint64', index=3,
      number=93, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_sint32', full_name='protobuf_unittest.TestPackedTypes.packed_sint32', index=4,
      number=94, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_sint64', full_name='protobuf_unittest.TestPackedTypes.packed_sint64', index=5,
      number=95, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_fixed32', full_name='protobuf_unittest.TestPackedTypes.packed_fixed32', index=6,
      number=96, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_fixed64', full_name='protobuf_unittest.TestPackedTypes.packed_fixed64', index=7,
      number=97, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_sfixed32', full_name='protobuf_unittest.TestPackedTypes.packed_sfixed32', index=8,
      number=98, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_sfixed64', full_name='protobuf_unittest.TestPackedTypes.packed_sfixed64', index=9,
      number=99, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_float', full_name='protobuf_unittest.TestPackedTypes.packed_float', index=10,
      number=100, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_double', full_name='protobuf_unittest.TestPackedTypes.packed_double', index=11,
      number=101, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_bool', full_name='protobuf_unittest.TestPackedTypes.packed_bool', index=12,
      number=102, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_enum', full_name='protobuf_unittest.TestPackedTypes.packed_enum', index=13,
      number=103, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10025,
  serialized_end=10451,
)


_TESTUNPACKEDTYPES = _descriptor.Descriptor(
  name='TestUnpackedTypes',
  full_name='protobuf_unittest.TestUnpackedTypes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='unpacked_int32', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_int32', index=0,
      number=90, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_int64', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_int64', index=1,
      number=91, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_uint32', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_uint32', index=2,
      number=92, type=13, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_uint64', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_uint64', index=3,
      number=93, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_sint32', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_sint32', index=4,
      number=94, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_sint64', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_sint64', index=5,
      number=95, type=18, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_fixed32', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_fixed32', index=6,
      number=96, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_fixed64', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_fixed64', index=7,
      number=97, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_sfixed32', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_sfixed32', index=8,
      number=98, type=15, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_sfixed64', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_sfixed64', index=9,
      number=99, type=16, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_float', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_float', index=10,
      number=100, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_double', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_double', index=11,
      number=101, type=1, cpp_type=5, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_bool', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_bool', index=12,
      number=102, type=8, cpp_type=7, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unpacked_enum', full_name='protobuf_unittest.TestUnpackedTypes.unpacked_enum', index=13,
      number=103, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10454,
  serialized_end=10910,
)


_TESTPACKEDEXTENSIONS = _descriptor.Descriptor(
  name='TestPackedExtensions',
  full_name='protobuf_unittest.TestPackedExtensions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1, 536870912), ],
  oneofs=[
  ],
  serialized_start=10912,
  serialized_end=10944,
)


_TESTUNPACKEDEXTENSIONS = _descriptor.Descriptor(
  name='TestUnpackedExtensions',
  full_name='protobuf_unittest.TestUnpackedExtensions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1, 536870912), ],
  oneofs=[
  ],
  serialized_start=10946,
  serialized_end=10980,
)


_TESTDYNAMICEXTENSIONS_DYNAMICMESSAGETYPE = _descriptor.Descriptor(
  name='DynamicMessageType',
  full_name='protobuf_unittest.TestDynamicExtensions.DynamicMessageType',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='dynamic_field', full_name='protobuf_unittest.TestDynamicExtensions.DynamicMessageType.dynamic_field', index=0,
      number=2100, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=11403,
  serialized_end=11447,
)

_TESTDYNAMICEXTENSIONS = _descriptor.Descriptor(
  name='TestDynamicExtensions',
  full_name='protobuf_unittest.TestDynamicExtensions',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='scalar_extension', full_name='protobuf_unittest.TestDynamicExtensions.scalar_extension', index=0,
      number=2000, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='enum_extension', full_name='protobuf_unittest.TestDynamicExtensions.enum_extension', index=1,
      number=2001, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=4,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dynamic_enum_extension', full_name='protobuf_unittest.TestDynamicExtensions.dynamic_enum_extension', index=2,
      number=2002, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=2200,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='message_extension', full_name='protobuf_unittest.TestDynamicExtensions.message_extension', index=3,
      number=2003, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dynamic_message_extension', full_name='protobuf_unittest.TestDynamicExtensions.dynamic_message_extension', index=4,
      number=2004, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_extension', full_name='protobuf_unittest.TestDynamicExtensions.repeated_extension', index=5,
      number=2005, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_extension', full_name='protobuf_unittest.TestDynamicExtensions.packed_extension', index=6,
      number=2006, type=17, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTDYNAMICEXTENSIONS_DYNAMICMESSAGETYPE, ],
  enum_types=[
    _TESTDYNAMICEXTENSIONS_DYNAMICENUMTYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10983,
  serialized_end=11520,
)


_TESTREPEATEDSCALARDIFFERENTTAGSIZES = _descriptor.Descriptor(
  name='TestRepeatedScalarDifferentTagSizes',
  full_name='protobuf_unittest.TestRepeatedScalarDifferentTagSizes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='repeated_fixed32', full_name='protobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_fixed32', index=0,
      number=12, type=7, cpp_type=3, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int32', full_name='protobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_int32', index=1,
      number=13, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_fixed64', full_name='protobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_fixed64', index=2,
      number=2046, type=6, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int64', full_name='protobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_int64', index=3,
      number=2047, type=3, cpp_type=2, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_float', full_name='protobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_float', index=4,
      number=262142, type=2, cpp_type=6, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_uint64', full_name='protobuf_unittest.TestRepeatedScalarDifferentTagSizes.repeated_uint64', index=5,
      number=262143, type=4, cpp_type=4, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=11523,
  serialized_end=11715,
)


_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP1 = _descriptor.Descriptor(
  name='Group1',
  full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='field1', full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1.field1', index=0,
      number=11, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=12508,
  serialized_end=12565,
)

_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP2 = _descriptor.Descriptor(
  name='Group2',
  full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='field1', full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2.field1', index=0,
      number=21, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=12567,
  serialized_end=12624,
)

_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR = _descriptor.Descriptor(
  name='RepeatedFieldsGenerator',
  full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='field1', full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.field1', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field2', full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.field2', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field3', full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.field3', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='group1', full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.group1', index=3,
      number=10, type=10, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='group2', full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.group2', index=4,
      number=20, type=10, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='ext1', full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.ext1', index=5,
      number=1000, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='ext2', full_name='protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.ext2', index=6,
      number=1001, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP1, _TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP2, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=12070,
  serialized_end=12624,
)

_TESTPARSINGMERGE_OPTIONALGROUP = _descriptor.Descriptor(
  name='OptionalGroup',
  full_name='protobuf_unittest.TestParsingMerge.OptionalGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_group_all_types', full_name='protobuf_unittest.TestParsingMerge.OptionalGroup.optional_group_all_types', index=0,
      number=11, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=12626,
  serialized_end=12708,
)

_TESTPARSINGMERGE_REPEATEDGROUP = _descriptor.Descriptor(
  name='RepeatedGroup',
  full_name='protobuf_unittest.TestParsingMerge.RepeatedGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='repeated_group_all_types', full_name='protobuf_unittest.TestParsingMerge.RepeatedGroup.repeated_group_all_types', index=0,
      number=21, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=12710,
  serialized_end=12792,
)

_TESTPARSINGMERGE = _descriptor.Descriptor(
  name='TestParsingMerge',
  full_name='protobuf_unittest.TestParsingMerge',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='required_all_types', full_name='protobuf_unittest.TestParsingMerge.required_all_types', index=0,
      number=1, type=11, cpp_type=10, label=2,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_all_types', full_name='protobuf_unittest.TestParsingMerge.optional_all_types', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_all_types', full_name='protobuf_unittest.TestParsingMerge.repeated_all_types', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optionalgroup', full_name='protobuf_unittest.TestParsingMerge.optionalgroup', index=3,
      number=10, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeatedgroup', full_name='protobuf_unittest.TestParsingMerge.repeatedgroup', index=4,
      number=20, type=10, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
    _descriptor.FieldDescriptor(
      name='optional_ext', full_name='protobuf_unittest.TestParsingMerge.optional_ext', index=0,
      number=1000, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_ext', full_name='protobuf_unittest.TestParsingMerge.repeated_ext', index=1,
      number=1001, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=True, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  nested_types=[_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR, _TESTPARSINGMERGE_OPTIONALGROUP, _TESTPARSINGMERGE_REPEATEDGROUP, ],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(1000, 536870912), ],
  oneofs=[
  ],
  serialized_start=11718,
  serialized_end=12989,
)


_TESTCOMMENTINJECTIONMESSAGE = _descriptor.Descriptor(
  name='TestCommentInjectionMessage',
  full_name='protobuf_unittest.TestCommentInjectionMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='a', full_name='protobuf_unittest.TestCommentInjectionMessage.a', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=True, default_value=_b("*/ <- Neither should this.").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=12991,
  serialized_end=13059,
)


_FOOREQUEST = _descriptor.Descriptor(
  name='FooRequest',
  full_name='protobuf_unittest.FooRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13061,
  serialized_end=13073,
)


_FOORESPONSE = _descriptor.Descriptor(
  name='FooResponse',
  full_name='protobuf_unittest.FooResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13075,
  serialized_end=13088,
)


_FOOCLIENTMESSAGE = _descriptor.Descriptor(
  name='FooClientMessage',
  full_name='protobuf_unittest.FooClientMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13090,
  serialized_end=13108,
)


_FOOSERVERMESSAGE = _descriptor.Descriptor(
  name='FooServerMessage',
  full_name='protobuf_unittest.FooServerMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13110,
  serialized_end=13128,
)


_BARREQUEST = _descriptor.Descriptor(
  name='BarRequest',
  full_name='protobuf_unittest.BarRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13130,
  serialized_end=13142,
)


_BARRESPONSE = _descriptor.Descriptor(
  name='BarResponse',
  full_name='protobuf_unittest.BarResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13144,
  serialized_end=13157,
)


_TESTJSONNAME = _descriptor.Descriptor(
  name='TestJsonName',
  full_name='protobuf_unittest.TestJsonName',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='field_name1', full_name='protobuf_unittest.TestJsonName.field_name1', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='fieldName2', full_name='protobuf_unittest.TestJsonName.fieldName2', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='FieldName3', full_name='protobuf_unittest.TestJsonName.FieldName3', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='_field_name4', full_name='protobuf_unittest.TestJsonName._field_name4', index=3,
      number=4, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='FIELD_NAME5', full_name='protobuf_unittest.TestJsonName.FIELD_NAME5', index=4,
      number=5, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field_name6', full_name='protobuf_unittest.TestJsonName.field_name6', index=5,
      number=6, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, json_name='@type', file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13160,
  serialized_end=13306,
)


_TESTHUGEFIELDNUMBERS_OPTIONALGROUP = _descriptor.Descriptor(
  name='OptionalGroup',
  full_name='protobuf_unittest.TestHugeFieldNumbers.OptionalGroup',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='group_a', full_name='protobuf_unittest.TestHugeFieldNumbers.OptionalGroup.group_a', index=0,
      number=536870009, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13953,
  serialized_end=13989,
)

_TESTHUGEFIELDNUMBERS_STRINGSTRINGMAPENTRY = _descriptor.Descriptor(
  name='StringStringMapEntry',
  full_name='protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry.value', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=13991,
  serialized_end=14045,
)

_TESTHUGEFIELDNUMBERS = _descriptor.Descriptor(
  name='TestHugeFieldNumbers',
  full_name='protobuf_unittest.TestHugeFieldNumbers',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='optional_int32', full_name='protobuf_unittest.TestHugeFieldNumbers.optional_int32', index=0,
      number=536870000, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='fixed_32', full_name='protobuf_unittest.TestHugeFieldNumbers.fixed_32', index=1,
      number=536870001, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_int32', full_name='protobuf_unittest.TestHugeFieldNumbers.repeated_int32', index=2,
      number=536870002, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='packed_int32', full_name='protobuf_unittest.TestHugeFieldNumbers.packed_int32', index=3,
      number=536870003, type=5, cpp_type=1, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_enum', full_name='protobuf_unittest.TestHugeFieldNumbers.optional_enum', index=4,
      number=536870004, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=4,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_string', full_name='protobuf_unittest.TestHugeFieldNumbers.optional_string', index=5,
      number=536870005, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_bytes', full_name='protobuf_unittest.TestHugeFieldNumbers.optional_bytes', index=6,
      number=536870006, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optional_message', full_name='protobuf_unittest.TestHugeFieldNumbers.optional_message', index=7,
      number=536870007, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='optionalgroup', full_name='protobuf_unittest.TestHugeFieldNumbers.optionalgroup', index=8,
      number=536870008, type=10, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_string_map', full_name='protobuf_unittest.TestHugeFieldNumbers.string_string_map', index=9,
      number=536870010, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_uint32', full_name='protobuf_unittest.TestHugeFieldNumbers.oneof_uint32', index=10,
      number=536870011, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_test_all_types', full_name='protobuf_unittest.TestHugeFieldNumbers.oneof_test_all_types', index=11,
      number=536870012, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_string', full_name='protobuf_unittest.TestHugeFieldNumbers.oneof_string', index=12,
      number=536870013, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='oneof_bytes', full_name='protobuf_unittest.TestHugeFieldNumbers.oneof_bytes', index=13,
      number=536870014, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTHUGEFIELDNUMBERS_OPTIONALGROUP, _TESTHUGEFIELDNUMBERS_STRINGSTRINGMAPENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(536860000, 536870000), ],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='oneof_field', full_name='protobuf_unittest.TestHugeFieldNumbers.oneof_field',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=13309,
  serialized_end=14074,
)

_TESTALLTYPES_NESTEDMESSAGE.containing_type = _TESTALLTYPES
_TESTALLTYPES_OPTIONALGROUP.containing_type = _TESTALLTYPES
_TESTALLTYPES_REPEATEDGROUP.containing_type = _TESTALLTYPES
_TESTALLTYPES.fields_by_name['optionalgroup'].message_type = _TESTALLTYPES_OPTIONALGROUP
_TESTALLTYPES.fields_by_name['optional_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['optional_foreign_message'].message_type = _FOREIGNMESSAGE
_TESTALLTYPES.fields_by_name['optional_import_message'].message_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTMESSAGE
_TESTALLTYPES.fields_by_name['optional_nested_enum'].enum_type = _TESTALLTYPES_NESTEDENUM
_TESTALLTYPES.fields_by_name['optional_foreign_enum'].enum_type = _FOREIGNENUM
_TESTALLTYPES.fields_by_name['optional_import_enum'].enum_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTENUM
_TESTALLTYPES.fields_by_name['optional_public_import_message'].message_type = google_dot_protobuf_dot_unittest__import__public__pb2._PUBLICIMPORTMESSAGE
_TESTALLTYPES.fields_by_name['optional_lazy_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['repeatedgroup'].message_type = _TESTALLTYPES_REPEATEDGROUP
_TESTALLTYPES.fields_by_name['repeated_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['repeated_foreign_message'].message_type = _FOREIGNMESSAGE
_TESTALLTYPES.fields_by_name['repeated_import_message'].message_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTMESSAGE
_TESTALLTYPES.fields_by_name['repeated_nested_enum'].enum_type = _TESTALLTYPES_NESTEDENUM
_TESTALLTYPES.fields_by_name['repeated_foreign_enum'].enum_type = _FOREIGNENUM
_TESTALLTYPES.fields_by_name['repeated_import_enum'].enum_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTENUM
_TESTALLTYPES.fields_by_name['repeated_lazy_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES.fields_by_name['default_nested_enum'].enum_type = _TESTALLTYPES_NESTEDENUM
_TESTALLTYPES.fields_by_name['default_foreign_enum'].enum_type = _FOREIGNENUM
_TESTALLTYPES.fields_by_name['default_import_enum'].enum_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTENUM
_TESTALLTYPES.fields_by_name['oneof_nested_message'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTALLTYPES_NESTEDENUM.containing_type = _TESTALLTYPES
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_uint32'])
_TESTALLTYPES.fields_by_name['oneof_uint32'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_nested_message'])
_TESTALLTYPES.fields_by_name['oneof_nested_message'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_string'])
_TESTALLTYPES.fields_by_name['oneof_string'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_TESTALLTYPES.oneofs_by_name['oneof_field'].fields.append(
  _TESTALLTYPES.fields_by_name['oneof_bytes'])
_TESTALLTYPES.fields_by_name['oneof_bytes'].containing_oneof = _TESTALLTYPES.oneofs_by_name['oneof_field']
_NESTEDTESTALLTYPES.fields_by_name['child'].message_type = _NESTEDTESTALLTYPES
_NESTEDTESTALLTYPES.fields_by_name['payload'].message_type = _TESTALLTYPES
_NESTEDTESTALLTYPES.fields_by_name['repeated_child'].message_type = _NESTEDTESTALLTYPES
_TESTREQUIREDFOREIGN.fields_by_name['optional_message'].message_type = _TESTREQUIRED
_TESTREQUIREDFOREIGN.fields_by_name['repeated_message'].message_type = _TESTREQUIRED
_TESTREQUIREDMESSAGE.fields_by_name['optional_message'].message_type = _TESTREQUIRED
_TESTREQUIREDMESSAGE.fields_by_name['repeated_message'].message_type = _TESTREQUIRED
_TESTREQUIREDMESSAGE.fields_by_name['required_message'].message_type = _TESTREQUIRED
_TESTFOREIGNNESTED.fields_by_name['foreign_nested'].message_type = _TESTALLTYPES_NESTEDMESSAGE
_TESTRECURSIVEMESSAGE.fields_by_name['a'].message_type = _TESTRECURSIVEMESSAGE
_TESTMUTUALRECURSIONA_SUBMESSAGE.fields_by_name['b'].message_type = _TESTMUTUALRECURSIONB
_TESTMUTUALRECURSIONA_SUBMESSAGE.containing_type = _TESTMUTUALRECURSIONA
_TESTMUTUALRECURSIONA_SUBGROUP.fields_by_name['sub_message'].message_type = _TESTMUTUALRECURSIONA_SUBMESSAGE
_TESTMUTUALRECURSIONA_SUBGROUP.fields_by_name['not_in_this_scc'].message_type = _TESTALLTYPES
_TESTMUTUALRECURSIONA_SUBGROUP.containing_type = _TESTMUTUALRECURSIONA
_TESTMUTUALRECURSIONA.fields_by_name['bb'].message_type = _TESTMUTUALRECURSIONB
_TESTMUTUALRECURSIONA.fields_by_name['subgroup'].message_type = _TESTMUTUALRECURSIONA_SUBGROUP
_TESTMUTUALRECURSIONB.fields_by_name['a'].message_type = _TESTMUTUALRECURSIONA
_TESTISINITIALIZED_SUBMESSAGE_SUBGROUP.containing_type = _TESTISINITIALIZED_SUBMESSAGE
_TESTISINITIALIZED_SUBMESSAGE.fields_by_name['subgroup'].message_type = _TESTISINITIALIZED_SUBMESSAGE_SUBGROUP
_TESTISINITIALIZED_SUBMESSAGE.containing_type = _TESTISINITIALIZED
_TESTISINITIALIZED.fields_by_name['sub_message'].message_type = _TESTISINITIALIZED_SUBMESSAGE
_TESTDUPFIELDNUMBER_FOO.containing_type = _TESTDUPFIELDNUMBER
_TESTDUPFIELDNUMBER_BAR.containing_type = _TESTDUPFIELDNUMBER
_TESTDUPFIELDNUMBER.fields_by_name['foo'].message_type = _TESTDUPFIELDNUMBER_FOO
_TESTDUPFIELDNUMBER.fields_by_name['bar'].message_type = _TESTDUPFIELDNUMBER_BAR
_TESTEAGERMESSAGE.fields_by_name['sub_message'].message_type = _TESTALLTYPES
_TESTLAZYMESSAGE.fields_by_name['sub_message'].message_type = _TESTALLTYPES
_TESTNESTEDMESSAGEHASBITS_NESTEDMESSAGE.fields_by_name['nestedmessage_repeated_foreignmessage'].message_type = _FOREIGNMESSAGE
_TESTNESTEDMESSAGEHASBITS_NESTEDMESSAGE.containing_type = _TESTNESTEDMESSAGEHASBITS
_TESTNESTEDMESSAGEHASBITS.fields_by_name['optional_nested_message'].message_type = _TESTNESTEDMESSAGEHASBITS_NESTEDMESSAGE
_TESTCAMELCASEFIELDNAMES.fields_by_name['EnumField'].enum_type = _FOREIGNENUM
_TESTCAMELCASEFIELDNAMES.fields_by_name['MessageField'].message_type = _FOREIGNMESSAGE
_TESTCAMELCASEFIELDNAMES.fields_by_name['RepeatedEnumField'].enum_type = _FOREIGNENUM
_TESTCAMELCASEFIELDNAMES.fields_by_name['RepeatedMessageField'].message_type = _FOREIGNMESSAGE
_TESTFIELDORDERINGS_NESTEDMESSAGE.containing_type = _TESTFIELDORDERINGS
_TESTFIELDORDERINGS.fields_by_name['optional_nested_message'].message_type = _TESTFIELDORDERINGS_NESTEDMESSAGE
_SPARSEENUMMESSAGE.fields_by_name['sparse_enum'].enum_type = _TESTSPARSEENUM
_TESTONEOF_FOOGROUP.containing_type = _TESTONEOF
_TESTONEOF.fields_by_name['foo_message'].message_type = _TESTALLTYPES
_TESTONEOF.fields_by_name['foogroup'].message_type = _TESTONEOF_FOOGROUP
_TESTONEOF.oneofs_by_name['foo'].fields.append(
  _TESTONEOF.fields_by_name['foo_int'])
_TESTONEOF.fields_by_name['foo_int'].containing_oneof = _TESTONEOF.oneofs_by_name['foo']
_TESTONEOF.oneofs_by_name['foo'].fields.append(
  _TESTONEOF.fields_by_name['foo_string'])
_TESTONEOF.fields_by_name['foo_string'].containing_oneof = _TESTONEOF.oneofs_by_name['foo']
_TESTONEOF.oneofs_by_name['foo'].fields.append(
  _TESTONEOF.fields_by_name['foo_message'])
_TESTONEOF.fields_by_name['foo_message'].containing_oneof = _TESTONEOF.oneofs_by_name['foo']
_TESTONEOF.oneofs_by_name['foo'].fields.append(
  _TESTONEOF.fields_by_name['foogroup'])
_TESTONEOF.fields_by_name['foogroup'].containing_oneof = _TESTONEOF.oneofs_by_name['foo']
_TESTONEOFBACKWARDSCOMPATIBLE_FOOGROUP.containing_type = _TESTONEOFBACKWARDSCOMPATIBLE
_TESTONEOFBACKWARDSCOMPATIBLE.fields_by_name['foo_message'].message_type = _TESTALLTYPES
_TESTONEOFBACKWARDSCOMPATIBLE.fields_by_name['foogroup'].message_type = _TESTONEOFBACKWARDSCOMPATIBLE_FOOGROUP
_TESTONEOF2_FOOGROUP.containing_type = _TESTONEOF2
_TESTONEOF2_NESTEDMESSAGE.containing_type = _TESTONEOF2
_TESTONEOF2.fields_by_name['foo_enum'].enum_type = _TESTONEOF2_NESTEDENUM
_TESTONEOF2.fields_by_name['foo_message'].message_type = _TESTONEOF2_NESTEDMESSAGE
_TESTONEOF2.fields_by_name['foogroup'].message_type = _TESTONEOF2_FOOGROUP
_TESTONEOF2.fields_by_name['foo_lazy_message'].message_type = _TESTONEOF2_NESTEDMESSAGE
_TESTONEOF2.fields_by_name['bar_enum'].enum_type = _TESTONEOF2_NESTEDENUM
_TESTONEOF2_NESTEDENUM.containing_type = _TESTONEOF2
_TESTONEOF2.oneofs_by_name['foo'].fields.append(
  _TESTONEOF2.fields_by_name['foo_int'])
_TESTONEOF2.fields_by_name['foo_int'].containing_oneof = _TESTONEOF2.oneofs_by_name['foo']
_TESTONEOF2.oneofs_by_name['foo'].fields.append(
  _TESTONEOF2.fields_by_name['foo_string'])
_TESTONEOF2.fields_by_name['foo_string'].containing_oneof = _TESTONEOF2.oneofs_by_name['foo']
_TESTONEOF2.oneofs_by_name['foo'].fields.append(
  _TESTONEOF2.fields_by_name['foo_cord'])
_TESTONEOF2.fields_by_name['foo_cord'].containing_oneof = _TESTONEOF2.oneofs_by_name['foo']
_TESTONEOF2.oneofs_by_name['foo'].fields.append(
  _TESTONEOF2.fields_by_name['foo_string_piece'])
_TESTONEOF2.fields_by_name['foo_string_piece'].containing_oneof = _TESTONEOF2.oneofs_by_name['foo']
_TESTONEOF2.oneofs_by_name['foo'].fields.append(
  _TESTONEOF2.fields_by_name['foo_bytes'])
_TESTONEOF2.fields_by_name['foo_bytes'].containing_oneof = _TESTONEOF2.oneofs_by_name['foo']
_TESTONEOF2.oneofs_by_name['foo'].fields.append(
  _TESTONEOF2.fields_by_name['foo_enum'])
_TESTONEOF2.fields_by_name['foo_enum'].containing_oneof = _TESTONEOF2.oneofs_by_name['foo']
_TESTONEOF2.oneofs_by_name['foo'].fields.append(
  _TESTONEOF2.fields_by_name['foo_message'])
_TESTONEOF2.fields_by_name['foo_message'].containing_oneof = _TESTONEOF2.oneofs_by_name['foo']
_TESTONEOF2.oneofs_by_name['foo'].fields.append(
  _TESTONEOF2.fields_by_name['foogroup'])
_TESTONEOF2.fields_by_name['foogroup'].containing_oneof = _TESTONEOF2.oneofs_by_name['foo']
_TESTONEOF2.oneofs_by_name['foo'].fields.append(
  _TESTONEOF2.fields_by_name['foo_lazy_message'])
_TESTONEOF2.fields_by_name['foo_lazy_message'].containing_oneof = _TESTONEOF2.oneofs_by_name['foo']
_TESTONEOF2.oneofs_by_name['bar'].fields.append(
  _TESTONEOF2.fields_by_name['bar_int'])
_TESTONEOF2.fields_by_name['bar_int'].containing_oneof = _TESTONEOF2.oneofs_by_name['bar']
_TESTONEOF2.oneofs_by_name['bar'].fields.append(
  _TESTONEOF2.fields_by_name['bar_string'])
_TESTONEOF2.fields_by_name['bar_string'].containing_oneof = _TESTONEOF2.oneofs_by_name['bar']
_TESTONEOF2.oneofs_by_name['bar'].fields.append(
  _TESTONEOF2.fields_by_name['bar_cord'])
_TESTONEOF2.fields_by_name['bar_cord'].containing_oneof = _TESTONEOF2.oneofs_by_name['bar']
_TESTONEOF2.oneofs_by_name['bar'].fields.append(
  _TESTONEOF2.fields_by_name['bar_string_piece'])
_TESTONEOF2.fields_by_name['bar_string_piece'].containing_oneof = _TESTONEOF2.oneofs_by_name['bar']
_TESTONEOF2.oneofs_by_name['bar'].fields.append(
  _TESTONEOF2.fields_by_name['bar_bytes'])
_TESTONEOF2.fields_by_name['bar_bytes'].containing_oneof = _TESTONEOF2.oneofs_by_name['bar']
_TESTONEOF2.oneofs_by_name['bar'].fields.append(
  _TESTONEOF2.fields_by_name['bar_enum'])
_TESTONEOF2.fields_by_name['bar_enum'].containing_oneof = _TESTONEOF2.oneofs_by_name['bar']
_TESTREQUIREDONEOF_NESTEDMESSAGE.containing_type = _TESTREQUIREDONEOF
_TESTREQUIREDONEOF.fields_by_name['foo_message'].message_type = _TESTREQUIREDONEOF_NESTEDMESSAGE
_TESTREQUIREDONEOF.oneofs_by_name['foo'].fields.append(
  _TESTREQUIREDONEOF.fields_by_name['foo_int'])
_TESTREQUIREDONEOF.fields_by_name['foo_int'].containing_oneof = _TESTREQUIREDONEOF.oneofs_by_name['foo']
_TESTREQUIREDONEOF.oneofs_by_name['foo'].fields.append(
  _TESTREQUIREDONEOF.fields_by_name['foo_string'])
_TESTREQUIREDONEOF.fields_by_name['foo_string'].containing_oneof = _TESTREQUIREDONEOF.oneofs_by_name['foo']
_TESTREQUIREDONEOF.oneofs_by_name['foo'].fields.append(
  _TESTREQUIREDONEOF.fields_by_name['foo_message'])
_TESTREQUIREDONEOF.fields_by_name['foo_message'].containing_oneof = _TESTREQUIREDONEOF.oneofs_by_name['foo']
_TESTPACKEDTYPES.fields_by_name['packed_enum'].enum_type = _FOREIGNENUM
_TESTUNPACKEDTYPES.fields_by_name['unpacked_enum'].enum_type = _FOREIGNENUM
_TESTDYNAMICEXTENSIONS_DYNAMICMESSAGETYPE.containing_type = _TESTDYNAMICEXTENSIONS
_TESTDYNAMICEXTENSIONS.fields_by_name['enum_extension'].enum_type = _FOREIGNENUM
_TESTDYNAMICEXTENSIONS.fields_by_name['dynamic_enum_extension'].enum_type = _TESTDYNAMICEXTENSIONS_DYNAMICENUMTYPE
_TESTDYNAMICEXTENSIONS.fields_by_name['message_extension'].message_type = _FOREIGNMESSAGE
_TESTDYNAMICEXTENSIONS.fields_by_name['dynamic_message_extension'].message_type = _TESTDYNAMICEXTENSIONS_DYNAMICMESSAGETYPE
_TESTDYNAMICEXTENSIONS_DYNAMICENUMTYPE.containing_type = _TESTDYNAMICEXTENSIONS
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP1.fields_by_name['field1'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP1.containing_type = _TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP2.fields_by_name['field1'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP2.containing_type = _TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR.fields_by_name['field1'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR.fields_by_name['field2'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR.fields_by_name['field3'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR.fields_by_name['group1'].message_type = _TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP1
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR.fields_by_name['group2'].message_type = _TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP2
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR.fields_by_name['ext1'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR.fields_by_name['ext2'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR.containing_type = _TESTPARSINGMERGE
_TESTPARSINGMERGE_OPTIONALGROUP.fields_by_name['optional_group_all_types'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE_OPTIONALGROUP.containing_type = _TESTPARSINGMERGE
_TESTPARSINGMERGE_REPEATEDGROUP.fields_by_name['repeated_group_all_types'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE_REPEATEDGROUP.containing_type = _TESTPARSINGMERGE
_TESTPARSINGMERGE.fields_by_name['required_all_types'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE.fields_by_name['optional_all_types'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE.fields_by_name['repeated_all_types'].message_type = _TESTALLTYPES
_TESTPARSINGMERGE.fields_by_name['optionalgroup'].message_type = _TESTPARSINGMERGE_OPTIONALGROUP
_TESTPARSINGMERGE.fields_by_name['repeatedgroup'].message_type = _TESTPARSINGMERGE_REPEATEDGROUP
_TESTHUGEFIELDNUMBERS_OPTIONALGROUP.containing_type = _TESTHUGEFIELDNUMBERS
_TESTHUGEFIELDNUMBERS_STRINGSTRINGMAPENTRY.containing_type = _TESTHUGEFIELDNUMBERS
_TESTHUGEFIELDNUMBERS.fields_by_name['optional_enum'].enum_type = _FOREIGNENUM
_TESTHUGEFIELDNUMBERS.fields_by_name['optional_message'].message_type = _FOREIGNMESSAGE
_TESTHUGEFIELDNUMBERS.fields_by_name['optionalgroup'].message_type = _TESTHUGEFIELDNUMBERS_OPTIONALGROUP
_TESTHUGEFIELDNUMBERS.fields_by_name['string_string_map'].message_type = _TESTHUGEFIELDNUMBERS_STRINGSTRINGMAPENTRY
_TESTHUGEFIELDNUMBERS.fields_by_name['oneof_test_all_types'].message_type = _TESTALLTYPES
_TESTHUGEFIELDNUMBERS.oneofs_by_name['oneof_field'].fields.append(
  _TESTHUGEFIELDNUMBERS.fields_by_name['oneof_uint32'])
_TESTHUGEFIELDNUMBERS.fields_by_name['oneof_uint32'].containing_oneof = _TESTHUGEFIELDNUMBERS.oneofs_by_name['oneof_field']
_TESTHUGEFIELDNUMBERS.oneofs_by_name['oneof_field'].fields.append(
  _TESTHUGEFIELDNUMBERS.fields_by_name['oneof_test_all_types'])
_TESTHUGEFIELDNUMBERS.fields_by_name['oneof_test_all_types'].containing_oneof = _TESTHUGEFIELDNUMBERS.oneofs_by_name['oneof_field']
_TESTHUGEFIELDNUMBERS.oneofs_by_name['oneof_field'].fields.append(
  _TESTHUGEFIELDNUMBERS.fields_by_name['oneof_string'])
_TESTHUGEFIELDNUMBERS.fields_by_name['oneof_string'].containing_oneof = _TESTHUGEFIELDNUMBERS.oneofs_by_name['oneof_field']
_TESTHUGEFIELDNUMBERS.oneofs_by_name['oneof_field'].fields.append(
  _TESTHUGEFIELDNUMBERS.fields_by_name['oneof_bytes'])
_TESTHUGEFIELDNUMBERS.fields_by_name['oneof_bytes'].containing_oneof = _TESTHUGEFIELDNUMBERS.oneofs_by_name['oneof_field']
DESCRIPTOR.message_types_by_name['TestAllTypes'] = _TESTALLTYPES
DESCRIPTOR.message_types_by_name['NestedTestAllTypes'] = _NESTEDTESTALLTYPES
DESCRIPTOR.message_types_by_name['TestDeprecatedFields'] = _TESTDEPRECATEDFIELDS
DESCRIPTOR.message_types_by_name['TestDeprecatedMessage'] = _TESTDEPRECATEDMESSAGE
DESCRIPTOR.message_types_by_name['ForeignMessage'] = _FOREIGNMESSAGE
DESCRIPTOR.message_types_by_name['TestReservedFields'] = _TESTRESERVEDFIELDS
DESCRIPTOR.message_types_by_name['TestAllExtensions'] = _TESTALLEXTENSIONS
DESCRIPTOR.message_types_by_name['OptionalGroup_extension'] = _OPTIONALGROUP_EXTENSION
DESCRIPTOR.message_types_by_name['RepeatedGroup_extension'] = _REPEATEDGROUP_EXTENSION
DESCRIPTOR.message_types_by_name['TestNestedExtension'] = _TESTNESTEDEXTENSION
DESCRIPTOR.message_types_by_name['TestRequired'] = _TESTREQUIRED
DESCRIPTOR.message_types_by_name['TestRequiredForeign'] = _TESTREQUIREDFOREIGN
DESCRIPTOR.message_types_by_name['TestRequiredMessage'] = _TESTREQUIREDMESSAGE
DESCRIPTOR.message_types_by_name['TestForeignNested'] = _TESTFOREIGNNESTED
DESCRIPTOR.message_types_by_name['TestEmptyMessage'] = _TESTEMPTYMESSAGE
DESCRIPTOR.message_types_by_name['TestEmptyMessageWithExtensions'] = _TESTEMPTYMESSAGEWITHEXTENSIONS
DESCRIPTOR.message_types_by_name['TestMultipleExtensionRanges'] = _TESTMULTIPLEEXTENSIONRANGES
DESCRIPTOR.message_types_by_name['TestReallyLargeTagNumber'] = _TESTREALLYLARGETAGNUMBER
DESCRIPTOR.message_types_by_name['TestRecursiveMessage'] = _TESTRECURSIVEMESSAGE
DESCRIPTOR.message_types_by_name['TestMutualRecursionA'] = _TESTMUTUALRECURSIONA
DESCRIPTOR.message_types_by_name['TestMutualRecursionB'] = _TESTMUTUALRECURSIONB
DESCRIPTOR.message_types_by_name['TestIsInitialized'] = _TESTISINITIALIZED
DESCRIPTOR.message_types_by_name['TestDupFieldNumber'] = _TESTDUPFIELDNUMBER
DESCRIPTOR.message_types_by_name['TestEagerMessage'] = _TESTEAGERMESSAGE
DESCRIPTOR.message_types_by_name['TestLazyMessage'] = _TESTLAZYMESSAGE
DESCRIPTOR.message_types_by_name['TestNestedMessageHasBits'] = _TESTNESTEDMESSAGEHASBITS
DESCRIPTOR.message_types_by_name['TestCamelCaseFieldNames'] = _TESTCAMELCASEFIELDNAMES
DESCRIPTOR.message_types_by_name['TestFieldOrderings'] = _TESTFIELDORDERINGS
DESCRIPTOR.message_types_by_name['TestExtremeDefaultValues'] = _TESTEXTREMEDEFAULTVALUES
DESCRIPTOR.message_types_by_name['SparseEnumMessage'] = _SPARSEENUMMESSAGE
DESCRIPTOR.message_types_by_name['OneString'] = _ONESTRING
DESCRIPTOR.message_types_by_name['MoreString'] = _MORESTRING
DESCRIPTOR.message_types_by_name['OneBytes'] = _ONEBYTES
DESCRIPTOR.message_types_by_name['MoreBytes'] = _MOREBYTES
DESCRIPTOR.message_types_by_name['Int32Message'] = _INT32MESSAGE
DESCRIPTOR.message_types_by_name['Uint32Message'] = _UINT32MESSAGE
DESCRIPTOR.message_types_by_name['Int64Message'] = _INT64MESSAGE
DESCRIPTOR.message_types_by_name['Uint64Message'] = _UINT64MESSAGE
DESCRIPTOR.message_types_by_name['BoolMessage'] = _BOOLMESSAGE
DESCRIPTOR.message_types_by_name['TestOneof'] = _TESTONEOF
DESCRIPTOR.message_types_by_name['TestOneofBackwardsCompatible'] = _TESTONEOFBACKWARDSCOMPATIBLE
DESCRIPTOR.message_types_by_name['TestOneof2'] = _TESTONEOF2
DESCRIPTOR.message_types_by_name['TestRequiredOneof'] = _TESTREQUIREDONEOF
DESCRIPTOR.message_types_by_name['TestPackedTypes'] = _TESTPACKEDTYPES
DESCRIPTOR.message_types_by_name['TestUnpackedTypes'] = _TESTUNPACKEDTYPES
DESCRIPTOR.message_types_by_name['TestPackedExtensions'] = _TESTPACKEDEXTENSIONS
DESCRIPTOR.message_types_by_name['TestUnpackedExtensions'] = _TESTUNPACKEDEXTENSIONS
DESCRIPTOR.message_types_by_name['TestDynamicExtensions'] = _TESTDYNAMICEXTENSIONS
DESCRIPTOR.message_types_by_name['TestRepeatedScalarDifferentTagSizes'] = _TESTREPEATEDSCALARDIFFERENTTAGSIZES
DESCRIPTOR.message_types_by_name['TestParsingMerge'] = _TESTPARSINGMERGE
DESCRIPTOR.message_types_by_name['TestCommentInjectionMessage'] = _TESTCOMMENTINJECTIONMESSAGE
DESCRIPTOR.message_types_by_name['FooRequest'] = _FOOREQUEST
DESCRIPTOR.message_types_by_name['FooResponse'] = _FOORESPONSE
DESCRIPTOR.message_types_by_name['FooClientMessage'] = _FOOCLIENTMESSAGE
DESCRIPTOR.message_types_by_name['FooServerMessage'] = _FOOSERVERMESSAGE
DESCRIPTOR.message_types_by_name['BarRequest'] = _BARREQUEST
DESCRIPTOR.message_types_by_name['BarResponse'] = _BARRESPONSE
DESCRIPTOR.message_types_by_name['TestJsonName'] = _TESTJSONNAME
DESCRIPTOR.message_types_by_name['TestHugeFieldNumbers'] = _TESTHUGEFIELDNUMBERS
DESCRIPTOR.enum_types_by_name['ForeignEnum'] = _FOREIGNENUM
DESCRIPTOR.enum_types_by_name['TestEnumWithDupValue'] = _TESTENUMWITHDUPVALUE
DESCRIPTOR.enum_types_by_name['TestSparseEnum'] = _TESTSPARSEENUM
DESCRIPTOR.extensions_by_name['optional_int32_extension'] = optional_int32_extension
DESCRIPTOR.extensions_by_name['optional_int64_extension'] = optional_int64_extension
DESCRIPTOR.extensions_by_name['optional_uint32_extension'] = optional_uint32_extension
DESCRIPTOR.extensions_by_name['optional_uint64_extension'] = optional_uint64_extension
DESCRIPTOR.extensions_by_name['optional_sint32_extension'] = optional_sint32_extension
DESCRIPTOR.extensions_by_name['optional_sint64_extension'] = optional_sint64_extension
DESCRIPTOR.extensions_by_name['optional_fixed32_extension'] = optional_fixed32_extension
DESCRIPTOR.extensions_by_name['optional_fixed64_extension'] = optional_fixed64_extension
DESCRIPTOR.extensions_by_name['optional_sfixed32_extension'] = optional_sfixed32_extension
DESCRIPTOR.extensions_by_name['optional_sfixed64_extension'] = optional_sfixed64_extension
DESCRIPTOR.extensions_by_name['optional_float_extension'] = optional_float_extension
DESCRIPTOR.extensions_by_name['optional_double_extension'] = optional_double_extension
DESCRIPTOR.extensions_by_name['optional_bool_extension'] = optional_bool_extension
DESCRIPTOR.extensions_by_name['optional_string_extension'] = optional_string_extension
DESCRIPTOR.extensions_by_name['optional_bytes_extension'] = optional_bytes_extension
DESCRIPTOR.extensions_by_name['optionalgroup_extension'] = optionalgroup_extension
DESCRIPTOR.extensions_by_name['optional_nested_message_extension'] = optional_nested_message_extension
DESCRIPTOR.extensions_by_name['optional_foreign_message_extension'] = optional_foreign_message_extension
DESCRIPTOR.extensions_by_name['optional_import_message_extension'] = optional_import_message_extension
DESCRIPTOR.extensions_by_name['optional_nested_enum_extension'] = optional_nested_enum_extension
DESCRIPTOR.extensions_by_name['optional_foreign_enum_extension'] = optional_foreign_enum_extension
DESCRIPTOR.extensions_by_name['optional_import_enum_extension'] = optional_import_enum_extension
DESCRIPTOR.extensions_by_name['optional_string_piece_extension'] = optional_string_piece_extension
DESCRIPTOR.extensions_by_name['optional_cord_extension'] = optional_cord_extension
DESCRIPTOR.extensions_by_name['optional_public_import_message_extension'] = optional_public_import_message_extension
DESCRIPTOR.extensions_by_name['optional_lazy_message_extension'] = optional_lazy_message_extension
DESCRIPTOR.extensions_by_name['repeated_int32_extension'] = repeated_int32_extension
DESCRIPTOR.extensions_by_name['repeated_int64_extension'] = repeated_int64_extension
DESCRIPTOR.extensions_by_name['repeated_uint32_extension'] = repeated_uint32_extension
DESCRIPTOR.extensions_by_name['repeated_uint64_extension'] = repeated_uint64_extension
DESCRIPTOR.extensions_by_name['repeated_sint32_extension'] = repeated_sint32_extension
DESCRIPTOR.extensions_by_name['repeated_sint64_extension'] = repeated_sint64_extension
DESCRIPTOR.extensions_by_name['repeated_fixed32_extension'] = repeated_fixed32_extension
DESCRIPTOR.extensions_by_name['repeated_fixed64_extension'] = repeated_fixed64_extension
DESCRIPTOR.extensions_by_name['repeated_sfixed32_extension'] = repeated_sfixed32_extension
DESCRIPTOR.extensions_by_name['repeated_sfixed64_extension'] = repeated_sfixed64_extension
DESCRIPTOR.extensions_by_name['repeated_float_extension'] = repeated_float_extension
DESCRIPTOR.extensions_by_name['repeated_double_extension'] = repeated_double_extension
DESCRIPTOR.extensions_by_name['repeated_bool_extension'] = repeated_bool_extension
DESCRIPTOR.extensions_by_name['repeated_string_extension'] = repeated_string_extension
DESCRIPTOR.extensions_by_name['repeated_bytes_extension'] = repeated_bytes_extension
DESCRIPTOR.extensions_by_name['repeatedgroup_extension'] = repeatedgroup_extension
DESCRIPTOR.extensions_by_name['repeated_nested_message_extension'] = repeated_nested_message_extension
DESCRIPTOR.extensions_by_name['repeated_foreign_message_extension'] = repeated_foreign_message_extension
DESCRIPTOR.extensions_by_name['repeated_import_message_extension'] = repeated_import_message_extension
DESCRIPTOR.extensions_by_name['repeated_nested_enum_extension'] = repeated_nested_enum_extension
DESCRIPTOR.extensions_by_name['repeated_foreign_enum_extension'] = repeated_foreign_enum_extension
DESCRIPTOR.extensions_by_name['repeated_import_enum_extension'] = repeated_import_enum_extension
DESCRIPTOR.extensions_by_name['repeated_string_piece_extension'] = repeated_string_piece_extension
DESCRIPTOR.extensions_by_name['repeated_cord_extension'] = repeated_cord_extension
DESCRIPTOR.extensions_by_name['repeated_lazy_message_extension'] = repeated_lazy_message_extension
DESCRIPTOR.extensions_by_name['default_int32_extension'] = default_int32_extension
DESCRIPTOR.extensions_by_name['default_int64_extension'] = default_int64_extension
DESCRIPTOR.extensions_by_name['default_uint32_extension'] = default_uint32_extension
DESCRIPTOR.extensions_by_name['default_uint64_extension'] = default_uint64_extension
DESCRIPTOR.extensions_by_name['default_sint32_extension'] = default_sint32_extension
DESCRIPTOR.extensions_by_name['default_sint64_extension'] = default_sint64_extension
DESCRIPTOR.extensions_by_name['default_fixed32_extension'] = default_fixed32_extension
DESCRIPTOR.extensions_by_name['default_fixed64_extension'] = default_fixed64_extension
DESCRIPTOR.extensions_by_name['default_sfixed32_extension'] = default_sfixed32_extension
DESCRIPTOR.extensions_by_name['default_sfixed64_extension'] = default_sfixed64_extension
DESCRIPTOR.extensions_by_name['default_float_extension'] = default_float_extension
DESCRIPTOR.extensions_by_name['default_double_extension'] = default_double_extension
DESCRIPTOR.extensions_by_name['default_bool_extension'] = default_bool_extension
DESCRIPTOR.extensions_by_name['default_string_extension'] = default_string_extension
DESCRIPTOR.extensions_by_name['default_bytes_extension'] = default_bytes_extension
DESCRIPTOR.extensions_by_name['default_nested_enum_extension'] = default_nested_enum_extension
DESCRIPTOR.extensions_by_name['default_foreign_enum_extension'] = default_foreign_enum_extension
DESCRIPTOR.extensions_by_name['default_import_enum_extension'] = default_import_enum_extension
DESCRIPTOR.extensions_by_name['default_string_piece_extension'] = default_string_piece_extension
DESCRIPTOR.extensions_by_name['default_cord_extension'] = default_cord_extension
DESCRIPTOR.extensions_by_name['oneof_uint32_extension'] = oneof_uint32_extension
DESCRIPTOR.extensions_by_name['oneof_nested_message_extension'] = oneof_nested_message_extension
DESCRIPTOR.extensions_by_name['oneof_string_extension'] = oneof_string_extension
DESCRIPTOR.extensions_by_name['oneof_bytes_extension'] = oneof_bytes_extension
DESCRIPTOR.extensions_by_name['my_extension_string'] = my_extension_string
DESCRIPTOR.extensions_by_name['my_extension_int'] = my_extension_int
DESCRIPTOR.extensions_by_name['packed_int32_extension'] = packed_int32_extension
DESCRIPTOR.extensions_by_name['packed_int64_extension'] = packed_int64_extension
DESCRIPTOR.extensions_by_name['packed_uint32_extension'] = packed_uint32_extension
DESCRIPTOR.extensions_by_name['packed_uint64_extension'] = packed_uint64_extension
DESCRIPTOR.extensions_by_name['packed_sint32_extension'] = packed_sint32_extension
DESCRIPTOR.extensions_by_name['packed_sint64_extension'] = packed_sint64_extension
DESCRIPTOR.extensions_by_name['packed_fixed32_extension'] = packed_fixed32_extension
DESCRIPTOR.extensions_by_name['packed_fixed64_extension'] = packed_fixed64_extension
DESCRIPTOR.extensions_by_name['packed_sfixed32_extension'] = packed_sfixed32_extension
DESCRIPTOR.extensions_by_name['packed_sfixed64_extension'] = packed_sfixed64_extension
DESCRIPTOR.extensions_by_name['packed_float_extension'] = packed_float_extension
DESCRIPTOR.extensions_by_name['packed_double_extension'] = packed_double_extension
DESCRIPTOR.extensions_by_name['packed_bool_extension'] = packed_bool_extension
DESCRIPTOR.extensions_by_name['packed_enum_extension'] = packed_enum_extension
DESCRIPTOR.extensions_by_name['unpacked_int32_extension'] = unpacked_int32_extension
DESCRIPTOR.extensions_by_name['unpacked_int64_extension'] = unpacked_int64_extension
DESCRIPTOR.extensions_by_name['unpacked_uint32_extension'] = unpacked_uint32_extension
DESCRIPTOR.extensions_by_name['unpacked_uint64_extension'] = unpacked_uint64_extension
DESCRIPTOR.extensions_by_name['unpacked_sint32_extension'] = unpacked_sint32_extension
DESCRIPTOR.extensions_by_name['unpacked_sint64_extension'] = unpacked_sint64_extension
DESCRIPTOR.extensions_by_name['unpacked_fixed32_extension'] = unpacked_fixed32_extension
DESCRIPTOR.extensions_by_name['unpacked_fixed64_extension'] = unpacked_fixed64_extension
DESCRIPTOR.extensions_by_name['unpacked_sfixed32_extension'] = unpacked_sfixed32_extension
DESCRIPTOR.extensions_by_name['unpacked_sfixed64_extension'] = unpacked_sfixed64_extension
DESCRIPTOR.extensions_by_name['unpacked_float_extension'] = unpacked_float_extension
DESCRIPTOR.extensions_by_name['unpacked_double_extension'] = unpacked_double_extension
DESCRIPTOR.extensions_by_name['unpacked_bool_extension'] = unpacked_bool_extension
DESCRIPTOR.extensions_by_name['unpacked_enum_extension'] = unpacked_enum_extension
DESCRIPTOR.extensions_by_name['test_all_types'] = test_all_types
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestAllTypes = _reflection.GeneratedProtocolMessageType('TestAllTypes', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPES_NESTEDMESSAGE,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypes.NestedMessage)
    ))
  ,

  OptionalGroup = _reflection.GeneratedProtocolMessageType('OptionalGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPES_OPTIONALGROUP,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypes.OptionalGroup)
    ))
  ,

  RepeatedGroup = _reflection.GeneratedProtocolMessageType('RepeatedGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTALLTYPES_REPEATEDGROUP,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypes.RepeatedGroup)
    ))
  ,
  DESCRIPTOR = _TESTALLTYPES,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypes)
  ))
_sym_db.RegisterMessage(TestAllTypes)
_sym_db.RegisterMessage(TestAllTypes.NestedMessage)
_sym_db.RegisterMessage(TestAllTypes.OptionalGroup)
_sym_db.RegisterMessage(TestAllTypes.RepeatedGroup)

NestedTestAllTypes = _reflection.GeneratedProtocolMessageType('NestedTestAllTypes', (_message.Message,), dict(
  DESCRIPTOR = _NESTEDTESTALLTYPES,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.NestedTestAllTypes)
  ))
_sym_db.RegisterMessage(NestedTestAllTypes)

TestDeprecatedFields = _reflection.GeneratedProtocolMessageType('TestDeprecatedFields', (_message.Message,), dict(
  DESCRIPTOR = _TESTDEPRECATEDFIELDS,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestDeprecatedFields)
  ))
_sym_db.RegisterMessage(TestDeprecatedFields)

TestDeprecatedMessage = _reflection.GeneratedProtocolMessageType('TestDeprecatedMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTDEPRECATEDMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestDeprecatedMessage)
  ))
_sym_db.RegisterMessage(TestDeprecatedMessage)

ForeignMessage = _reflection.GeneratedProtocolMessageType('ForeignMessage', (_message.Message,), dict(
  DESCRIPTOR = _FOREIGNMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.ForeignMessage)
  ))
_sym_db.RegisterMessage(ForeignMessage)

TestReservedFields = _reflection.GeneratedProtocolMessageType('TestReservedFields', (_message.Message,), dict(
  DESCRIPTOR = _TESTRESERVEDFIELDS,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestReservedFields)
  ))
_sym_db.RegisterMessage(TestReservedFields)

TestAllExtensions = _reflection.GeneratedProtocolMessageType('TestAllExtensions', (_message.Message,), dict(
  DESCRIPTOR = _TESTALLEXTENSIONS,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllExtensions)
  ))
_sym_db.RegisterMessage(TestAllExtensions)

OptionalGroup_extension = _reflection.GeneratedProtocolMessageType('OptionalGroup_extension', (_message.Message,), dict(
  DESCRIPTOR = _OPTIONALGROUP_EXTENSION,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.OptionalGroup_extension)
  ))
_sym_db.RegisterMessage(OptionalGroup_extension)

RepeatedGroup_extension = _reflection.GeneratedProtocolMessageType('RepeatedGroup_extension', (_message.Message,), dict(
  DESCRIPTOR = _REPEATEDGROUP_EXTENSION,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.RepeatedGroup_extension)
  ))
_sym_db.RegisterMessage(RepeatedGroup_extension)

TestNestedExtension = _reflection.GeneratedProtocolMessageType('TestNestedExtension', (_message.Message,), dict(
  DESCRIPTOR = _TESTNESTEDEXTENSION,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestNestedExtension)
  ))
_sym_db.RegisterMessage(TestNestedExtension)

TestRequired = _reflection.GeneratedProtocolMessageType('TestRequired', (_message.Message,), dict(
  DESCRIPTOR = _TESTREQUIRED,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequired)
  ))
_sym_db.RegisterMessage(TestRequired)

TestRequiredForeign = _reflection.GeneratedProtocolMessageType('TestRequiredForeign', (_message.Message,), dict(
  DESCRIPTOR = _TESTREQUIREDFOREIGN,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequiredForeign)
  ))
_sym_db.RegisterMessage(TestRequiredForeign)

TestRequiredMessage = _reflection.GeneratedProtocolMessageType('TestRequiredMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTREQUIREDMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequiredMessage)
  ))
_sym_db.RegisterMessage(TestRequiredMessage)

TestForeignNested = _reflection.GeneratedProtocolMessageType('TestForeignNested', (_message.Message,), dict(
  DESCRIPTOR = _TESTFOREIGNNESTED,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestForeignNested)
  ))
_sym_db.RegisterMessage(TestForeignNested)

TestEmptyMessage = _reflection.GeneratedProtocolMessageType('TestEmptyMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTEMPTYMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestEmptyMessage)
  ))
_sym_db.RegisterMessage(TestEmptyMessage)

TestEmptyMessageWithExtensions = _reflection.GeneratedProtocolMessageType('TestEmptyMessageWithExtensions', (_message.Message,), dict(
  DESCRIPTOR = _TESTEMPTYMESSAGEWITHEXTENSIONS,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestEmptyMessageWithExtensions)
  ))
_sym_db.RegisterMessage(TestEmptyMessageWithExtensions)

TestMultipleExtensionRanges = _reflection.GeneratedProtocolMessageType('TestMultipleExtensionRanges', (_message.Message,), dict(
  DESCRIPTOR = _TESTMULTIPLEEXTENSIONRANGES,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMultipleExtensionRanges)
  ))
_sym_db.RegisterMessage(TestMultipleExtensionRanges)

TestReallyLargeTagNumber = _reflection.GeneratedProtocolMessageType('TestReallyLargeTagNumber', (_message.Message,), dict(
  DESCRIPTOR = _TESTREALLYLARGETAGNUMBER,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestReallyLargeTagNumber)
  ))
_sym_db.RegisterMessage(TestReallyLargeTagNumber)

TestRecursiveMessage = _reflection.GeneratedProtocolMessageType('TestRecursiveMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTRECURSIVEMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRecursiveMessage)
  ))
_sym_db.RegisterMessage(TestRecursiveMessage)

TestMutualRecursionA = _reflection.GeneratedProtocolMessageType('TestMutualRecursionA', (_message.Message,), dict(

  SubMessage = _reflection.GeneratedProtocolMessageType('SubMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTMUTUALRECURSIONA_SUBMESSAGE,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMutualRecursionA.SubMessage)
    ))
  ,

  SubGroup = _reflection.GeneratedProtocolMessageType('SubGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTMUTUALRECURSIONA_SUBGROUP,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMutualRecursionA.SubGroup)
    ))
  ,
  DESCRIPTOR = _TESTMUTUALRECURSIONA,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMutualRecursionA)
  ))
_sym_db.RegisterMessage(TestMutualRecursionA)
_sym_db.RegisterMessage(TestMutualRecursionA.SubMessage)
_sym_db.RegisterMessage(TestMutualRecursionA.SubGroup)

TestMutualRecursionB = _reflection.GeneratedProtocolMessageType('TestMutualRecursionB', (_message.Message,), dict(
  DESCRIPTOR = _TESTMUTUALRECURSIONB,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMutualRecursionB)
  ))
_sym_db.RegisterMessage(TestMutualRecursionB)

TestIsInitialized = _reflection.GeneratedProtocolMessageType('TestIsInitialized', (_message.Message,), dict(

  SubMessage = _reflection.GeneratedProtocolMessageType('SubMessage', (_message.Message,), dict(

    SubGroup = _reflection.GeneratedProtocolMessageType('SubGroup', (_message.Message,), dict(
      DESCRIPTOR = _TESTISINITIALIZED_SUBMESSAGE_SUBGROUP,
      __module__ = 'google.protobuf.unittest_pb2'
      # @@protoc_insertion_point(class_scope:protobuf_unittest.TestIsInitialized.SubMessage.SubGroup)
      ))
    ,
    DESCRIPTOR = _TESTISINITIALIZED_SUBMESSAGE,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestIsInitialized.SubMessage)
    ))
  ,
  DESCRIPTOR = _TESTISINITIALIZED,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestIsInitialized)
  ))
_sym_db.RegisterMessage(TestIsInitialized)
_sym_db.RegisterMessage(TestIsInitialized.SubMessage)
_sym_db.RegisterMessage(TestIsInitialized.SubMessage.SubGroup)

TestDupFieldNumber = _reflection.GeneratedProtocolMessageType('TestDupFieldNumber', (_message.Message,), dict(

  Foo = _reflection.GeneratedProtocolMessageType('Foo', (_message.Message,), dict(
    DESCRIPTOR = _TESTDUPFIELDNUMBER_FOO,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestDupFieldNumber.Foo)
    ))
  ,

  Bar = _reflection.GeneratedProtocolMessageType('Bar', (_message.Message,), dict(
    DESCRIPTOR = _TESTDUPFIELDNUMBER_BAR,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestDupFieldNumber.Bar)
    ))
  ,
  DESCRIPTOR = _TESTDUPFIELDNUMBER,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestDupFieldNumber)
  ))
_sym_db.RegisterMessage(TestDupFieldNumber)
_sym_db.RegisterMessage(TestDupFieldNumber.Foo)
_sym_db.RegisterMessage(TestDupFieldNumber.Bar)

TestEagerMessage = _reflection.GeneratedProtocolMessageType('TestEagerMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTEAGERMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestEagerMessage)
  ))
_sym_db.RegisterMessage(TestEagerMessage)

TestLazyMessage = _reflection.GeneratedProtocolMessageType('TestLazyMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTLAZYMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestLazyMessage)
  ))
_sym_db.RegisterMessage(TestLazyMessage)

TestNestedMessageHasBits = _reflection.GeneratedProtocolMessageType('TestNestedMessageHasBits', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTNESTEDMESSAGEHASBITS_NESTEDMESSAGE,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestNestedMessageHasBits.NestedMessage)
    ))
  ,
  DESCRIPTOR = _TESTNESTEDMESSAGEHASBITS,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestNestedMessageHasBits)
  ))
_sym_db.RegisterMessage(TestNestedMessageHasBits)
_sym_db.RegisterMessage(TestNestedMessageHasBits.NestedMessage)

TestCamelCaseFieldNames = _reflection.GeneratedProtocolMessageType('TestCamelCaseFieldNames', (_message.Message,), dict(
  DESCRIPTOR = _TESTCAMELCASEFIELDNAMES,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestCamelCaseFieldNames)
  ))
_sym_db.RegisterMessage(TestCamelCaseFieldNames)

TestFieldOrderings = _reflection.GeneratedProtocolMessageType('TestFieldOrderings', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTFIELDORDERINGS_NESTEDMESSAGE,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestFieldOrderings.NestedMessage)
    ))
  ,
  DESCRIPTOR = _TESTFIELDORDERINGS,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestFieldOrderings)
  ))
_sym_db.RegisterMessage(TestFieldOrderings)
_sym_db.RegisterMessage(TestFieldOrderings.NestedMessage)

TestExtremeDefaultValues = _reflection.GeneratedProtocolMessageType('TestExtremeDefaultValues', (_message.Message,), dict(
  DESCRIPTOR = _TESTEXTREMEDEFAULTVALUES,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestExtremeDefaultValues)
  ))
_sym_db.RegisterMessage(TestExtremeDefaultValues)

SparseEnumMessage = _reflection.GeneratedProtocolMessageType('SparseEnumMessage', (_message.Message,), dict(
  DESCRIPTOR = _SPARSEENUMMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.SparseEnumMessage)
  ))
_sym_db.RegisterMessage(SparseEnumMessage)

OneString = _reflection.GeneratedProtocolMessageType('OneString', (_message.Message,), dict(
  DESCRIPTOR = _ONESTRING,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.OneString)
  ))
_sym_db.RegisterMessage(OneString)

MoreString = _reflection.GeneratedProtocolMessageType('MoreString', (_message.Message,), dict(
  DESCRIPTOR = _MORESTRING,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.MoreString)
  ))
_sym_db.RegisterMessage(MoreString)

OneBytes = _reflection.GeneratedProtocolMessageType('OneBytes', (_message.Message,), dict(
  DESCRIPTOR = _ONEBYTES,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.OneBytes)
  ))
_sym_db.RegisterMessage(OneBytes)

MoreBytes = _reflection.GeneratedProtocolMessageType('MoreBytes', (_message.Message,), dict(
  DESCRIPTOR = _MOREBYTES,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.MoreBytes)
  ))
_sym_db.RegisterMessage(MoreBytes)

Int32Message = _reflection.GeneratedProtocolMessageType('Int32Message', (_message.Message,), dict(
  DESCRIPTOR = _INT32MESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.Int32Message)
  ))
_sym_db.RegisterMessage(Int32Message)

Uint32Message = _reflection.GeneratedProtocolMessageType('Uint32Message', (_message.Message,), dict(
  DESCRIPTOR = _UINT32MESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.Uint32Message)
  ))
_sym_db.RegisterMessage(Uint32Message)

Int64Message = _reflection.GeneratedProtocolMessageType('Int64Message', (_message.Message,), dict(
  DESCRIPTOR = _INT64MESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.Int64Message)
  ))
_sym_db.RegisterMessage(Int64Message)

Uint64Message = _reflection.GeneratedProtocolMessageType('Uint64Message', (_message.Message,), dict(
  DESCRIPTOR = _UINT64MESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.Uint64Message)
  ))
_sym_db.RegisterMessage(Uint64Message)

BoolMessage = _reflection.GeneratedProtocolMessageType('BoolMessage', (_message.Message,), dict(
  DESCRIPTOR = _BOOLMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.BoolMessage)
  ))
_sym_db.RegisterMessage(BoolMessage)

TestOneof = _reflection.GeneratedProtocolMessageType('TestOneof', (_message.Message,), dict(

  FooGroup = _reflection.GeneratedProtocolMessageType('FooGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTONEOF_FOOGROUP,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestOneof.FooGroup)
    ))
  ,
  DESCRIPTOR = _TESTONEOF,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestOneof)
  ))
_sym_db.RegisterMessage(TestOneof)
_sym_db.RegisterMessage(TestOneof.FooGroup)

TestOneofBackwardsCompatible = _reflection.GeneratedProtocolMessageType('TestOneofBackwardsCompatible', (_message.Message,), dict(

  FooGroup = _reflection.GeneratedProtocolMessageType('FooGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTONEOFBACKWARDSCOMPATIBLE_FOOGROUP,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestOneofBackwardsCompatible.FooGroup)
    ))
  ,
  DESCRIPTOR = _TESTONEOFBACKWARDSCOMPATIBLE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestOneofBackwardsCompatible)
  ))
_sym_db.RegisterMessage(TestOneofBackwardsCompatible)
_sym_db.RegisterMessage(TestOneofBackwardsCompatible.FooGroup)

TestOneof2 = _reflection.GeneratedProtocolMessageType('TestOneof2', (_message.Message,), dict(

  FooGroup = _reflection.GeneratedProtocolMessageType('FooGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTONEOF2_FOOGROUP,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestOneof2.FooGroup)
    ))
  ,

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTONEOF2_NESTEDMESSAGE,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestOneof2.NestedMessage)
    ))
  ,
  DESCRIPTOR = _TESTONEOF2,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestOneof2)
  ))
_sym_db.RegisterMessage(TestOneof2)
_sym_db.RegisterMessage(TestOneof2.FooGroup)
_sym_db.RegisterMessage(TestOneof2.NestedMessage)

TestRequiredOneof = _reflection.GeneratedProtocolMessageType('TestRequiredOneof', (_message.Message,), dict(

  NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
    DESCRIPTOR = _TESTREQUIREDONEOF_NESTEDMESSAGE,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequiredOneof.NestedMessage)
    ))
  ,
  DESCRIPTOR = _TESTREQUIREDONEOF,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRequiredOneof)
  ))
_sym_db.RegisterMessage(TestRequiredOneof)
_sym_db.RegisterMessage(TestRequiredOneof.NestedMessage)

TestPackedTypes = _reflection.GeneratedProtocolMessageType('TestPackedTypes', (_message.Message,), dict(
  DESCRIPTOR = _TESTPACKEDTYPES,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestPackedTypes)
  ))
_sym_db.RegisterMessage(TestPackedTypes)

TestUnpackedTypes = _reflection.GeneratedProtocolMessageType('TestUnpackedTypes', (_message.Message,), dict(
  DESCRIPTOR = _TESTUNPACKEDTYPES,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestUnpackedTypes)
  ))
_sym_db.RegisterMessage(TestUnpackedTypes)

TestPackedExtensions = _reflection.GeneratedProtocolMessageType('TestPackedExtensions', (_message.Message,), dict(
  DESCRIPTOR = _TESTPACKEDEXTENSIONS,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestPackedExtensions)
  ))
_sym_db.RegisterMessage(TestPackedExtensions)

TestUnpackedExtensions = _reflection.GeneratedProtocolMessageType('TestUnpackedExtensions', (_message.Message,), dict(
  DESCRIPTOR = _TESTUNPACKEDEXTENSIONS,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestUnpackedExtensions)
  ))
_sym_db.RegisterMessage(TestUnpackedExtensions)

TestDynamicExtensions = _reflection.GeneratedProtocolMessageType('TestDynamicExtensions', (_message.Message,), dict(

  DynamicMessageType = _reflection.GeneratedProtocolMessageType('DynamicMessageType', (_message.Message,), dict(
    DESCRIPTOR = _TESTDYNAMICEXTENSIONS_DYNAMICMESSAGETYPE,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestDynamicExtensions.DynamicMessageType)
    ))
  ,
  DESCRIPTOR = _TESTDYNAMICEXTENSIONS,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestDynamicExtensions)
  ))
_sym_db.RegisterMessage(TestDynamicExtensions)
_sym_db.RegisterMessage(TestDynamicExtensions.DynamicMessageType)

TestRepeatedScalarDifferentTagSizes = _reflection.GeneratedProtocolMessageType('TestRepeatedScalarDifferentTagSizes', (_message.Message,), dict(
  DESCRIPTOR = _TESTREPEATEDSCALARDIFFERENTTAGSIZES,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestRepeatedScalarDifferentTagSizes)
  ))
_sym_db.RegisterMessage(TestRepeatedScalarDifferentTagSizes)

TestParsingMerge = _reflection.GeneratedProtocolMessageType('TestParsingMerge', (_message.Message,), dict(

  RepeatedFieldsGenerator = _reflection.GeneratedProtocolMessageType('RepeatedFieldsGenerator', (_message.Message,), dict(

    Group1 = _reflection.GeneratedProtocolMessageType('Group1', (_message.Message,), dict(
      DESCRIPTOR = _TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP1,
      __module__ = 'google.protobuf.unittest_pb2'
      # @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group1)
      ))
    ,

    Group2 = _reflection.GeneratedProtocolMessageType('Group2', (_message.Message,), dict(
      DESCRIPTOR = _TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR_GROUP2,
      __module__ = 'google.protobuf.unittest_pb2'
      # @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator.Group2)
      ))
    ,
    DESCRIPTOR = _TESTPARSINGMERGE_REPEATEDFIELDSGENERATOR,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMerge.RepeatedFieldsGenerator)
    ))
  ,

  OptionalGroup = _reflection.GeneratedProtocolMessageType('OptionalGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTPARSINGMERGE_OPTIONALGROUP,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMerge.OptionalGroup)
    ))
  ,

  RepeatedGroup = _reflection.GeneratedProtocolMessageType('RepeatedGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTPARSINGMERGE_REPEATEDGROUP,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMerge.RepeatedGroup)
    ))
  ,
  DESCRIPTOR = _TESTPARSINGMERGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMerge)
  ))
_sym_db.RegisterMessage(TestParsingMerge)
_sym_db.RegisterMessage(TestParsingMerge.RepeatedFieldsGenerator)
_sym_db.RegisterMessage(TestParsingMerge.RepeatedFieldsGenerator.Group1)
_sym_db.RegisterMessage(TestParsingMerge.RepeatedFieldsGenerator.Group2)
_sym_db.RegisterMessage(TestParsingMerge.OptionalGroup)
_sym_db.RegisterMessage(TestParsingMerge.RepeatedGroup)

TestCommentInjectionMessage = _reflection.GeneratedProtocolMessageType('TestCommentInjectionMessage', (_message.Message,), dict(
  DESCRIPTOR = _TESTCOMMENTINJECTIONMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestCommentInjectionMessage)
  ))
_sym_db.RegisterMessage(TestCommentInjectionMessage)

FooRequest = _reflection.GeneratedProtocolMessageType('FooRequest', (_message.Message,), dict(
  DESCRIPTOR = _FOOREQUEST,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.FooRequest)
  ))
_sym_db.RegisterMessage(FooRequest)

FooResponse = _reflection.GeneratedProtocolMessageType('FooResponse', (_message.Message,), dict(
  DESCRIPTOR = _FOORESPONSE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.FooResponse)
  ))
_sym_db.RegisterMessage(FooResponse)

FooClientMessage = _reflection.GeneratedProtocolMessageType('FooClientMessage', (_message.Message,), dict(
  DESCRIPTOR = _FOOCLIENTMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.FooClientMessage)
  ))
_sym_db.RegisterMessage(FooClientMessage)

FooServerMessage = _reflection.GeneratedProtocolMessageType('FooServerMessage', (_message.Message,), dict(
  DESCRIPTOR = _FOOSERVERMESSAGE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.FooServerMessage)
  ))
_sym_db.RegisterMessage(FooServerMessage)

BarRequest = _reflection.GeneratedProtocolMessageType('BarRequest', (_message.Message,), dict(
  DESCRIPTOR = _BARREQUEST,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.BarRequest)
  ))
_sym_db.RegisterMessage(BarRequest)

BarResponse = _reflection.GeneratedProtocolMessageType('BarResponse', (_message.Message,), dict(
  DESCRIPTOR = _BARRESPONSE,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.BarResponse)
  ))
_sym_db.RegisterMessage(BarResponse)

TestJsonName = _reflection.GeneratedProtocolMessageType('TestJsonName', (_message.Message,), dict(
  DESCRIPTOR = _TESTJSONNAME,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestJsonName)
  ))
_sym_db.RegisterMessage(TestJsonName)

TestHugeFieldNumbers = _reflection.GeneratedProtocolMessageType('TestHugeFieldNumbers', (_message.Message,), dict(

  OptionalGroup = _reflection.GeneratedProtocolMessageType('OptionalGroup', (_message.Message,), dict(
    DESCRIPTOR = _TESTHUGEFIELDNUMBERS_OPTIONALGROUP,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestHugeFieldNumbers.OptionalGroup)
    ))
  ,

  StringStringMapEntry = _reflection.GeneratedProtocolMessageType('StringStringMapEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTHUGEFIELDNUMBERS_STRINGSTRINGMAPENTRY,
    __module__ = 'google.protobuf.unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestHugeFieldNumbers.StringStringMapEntry)
    ))
  ,
  DESCRIPTOR = _TESTHUGEFIELDNUMBERS,
  __module__ = 'google.protobuf.unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestHugeFieldNumbers)
  ))
_sym_db.RegisterMessage(TestHugeFieldNumbers)
_sym_db.RegisterMessage(TestHugeFieldNumbers.OptionalGroup)
_sym_db.RegisterMessage(TestHugeFieldNumbers.StringStringMapEntry)

TestAllExtensions.RegisterExtension(optional_int32_extension)
TestAllExtensions.RegisterExtension(optional_int64_extension)
TestAllExtensions.RegisterExtension(optional_uint32_extension)
TestAllExtensions.RegisterExtension(optional_uint64_extension)
TestAllExtensions.RegisterExtension(optional_sint32_extension)
TestAllExtensions.RegisterExtension(optional_sint64_extension)
TestAllExtensions.RegisterExtension(optional_fixed32_extension)
TestAllExtensions.RegisterExtension(optional_fixed64_extension)
TestAllExtensions.RegisterExtension(optional_sfixed32_extension)
TestAllExtensions.RegisterExtension(optional_sfixed64_extension)
TestAllExtensions.RegisterExtension(optional_float_extension)
TestAllExtensions.RegisterExtension(optional_double_extension)
TestAllExtensions.RegisterExtension(optional_bool_extension)
TestAllExtensions.RegisterExtension(optional_string_extension)
TestAllExtensions.RegisterExtension(optional_bytes_extension)
optionalgroup_extension.message_type = _OPTIONALGROUP_EXTENSION
TestAllExtensions.RegisterExtension(optionalgroup_extension)
optional_nested_message_extension.message_type = _TESTALLTYPES_NESTEDMESSAGE
TestAllExtensions.RegisterExtension(optional_nested_message_extension)
optional_foreign_message_extension.message_type = _FOREIGNMESSAGE
TestAllExtensions.RegisterExtension(optional_foreign_message_extension)
optional_import_message_extension.message_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTMESSAGE
TestAllExtensions.RegisterExtension(optional_import_message_extension)
optional_nested_enum_extension.enum_type = _TESTALLTYPES_NESTEDENUM
TestAllExtensions.RegisterExtension(optional_nested_enum_extension)
optional_foreign_enum_extension.enum_type = _FOREIGNENUM
TestAllExtensions.RegisterExtension(optional_foreign_enum_extension)
optional_import_enum_extension.enum_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTENUM
TestAllExtensions.RegisterExtension(optional_import_enum_extension)
TestAllExtensions.RegisterExtension(optional_string_piece_extension)
TestAllExtensions.RegisterExtension(optional_cord_extension)
optional_public_import_message_extension.message_type = google_dot_protobuf_dot_unittest__import__public__pb2._PUBLICIMPORTMESSAGE
TestAllExtensions.RegisterExtension(optional_public_import_message_extension)
optional_lazy_message_extension.message_type = _TESTALLTYPES_NESTEDMESSAGE
TestAllExtensions.RegisterExtension(optional_lazy_message_extension)
TestAllExtensions.RegisterExtension(repeated_int32_extension)
TestAllExtensions.RegisterExtension(repeated_int64_extension)
TestAllExtensions.RegisterExtension(repeated_uint32_extension)
TestAllExtensions.RegisterExtension(repeated_uint64_extension)
TestAllExtensions.RegisterExtension(repeated_sint32_extension)
TestAllExtensions.RegisterExtension(repeated_sint64_extension)
TestAllExtensions.RegisterExtension(repeated_fixed32_extension)
TestAllExtensions.RegisterExtension(repeated_fixed64_extension)
TestAllExtensions.RegisterExtension(repeated_sfixed32_extension)
TestAllExtensions.RegisterExtension(repeated_sfixed64_extension)
TestAllExtensions.RegisterExtension(repeated_float_extension)
TestAllExtensions.RegisterExtension(repeated_double_extension)
TestAllExtensions.RegisterExtension(repeated_bool_extension)
TestAllExtensions.RegisterExtension(repeated_string_extension)
TestAllExtensions.RegisterExtension(repeated_bytes_extension)
repeatedgroup_extension.message_type = _REPEATEDGROUP_EXTENSION
TestAllExtensions.RegisterExtension(repeatedgroup_extension)
repeated_nested_message_extension.message_type = _TESTALLTYPES_NESTEDMESSAGE
TestAllExtensions.RegisterExtension(repeated_nested_message_extension)
repeated_foreign_message_extension.message_type = _FOREIGNMESSAGE
TestAllExtensions.RegisterExtension(repeated_foreign_message_extension)
repeated_import_message_extension.message_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTMESSAGE
TestAllExtensions.RegisterExtension(repeated_import_message_extension)
repeated_nested_enum_extension.enum_type = _TESTALLTYPES_NESTEDENUM
TestAllExtensions.RegisterExtension(repeated_nested_enum_extension)
repeated_foreign_enum_extension.enum_type = _FOREIGNENUM
TestAllExtensions.RegisterExtension(repeated_foreign_enum_extension)
repeated_import_enum_extension.enum_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTENUM
TestAllExtensions.RegisterExtension(repeated_import_enum_extension)
TestAllExtensions.RegisterExtension(repeated_string_piece_extension)
TestAllExtensions.RegisterExtension(repeated_cord_extension)
repeated_lazy_message_extension.message_type = _TESTALLTYPES_NESTEDMESSAGE
TestAllExtensions.RegisterExtension(repeated_lazy_message_extension)
TestAllExtensions.RegisterExtension(default_int32_extension)
TestAllExtensions.RegisterExtension(default_int64_extension)
TestAllExtensions.RegisterExtension(default_uint32_extension)
TestAllExtensions.RegisterExtension(default_uint64_extension)
TestAllExtensions.RegisterExtension(default_sint32_extension)
TestAllExtensions.RegisterExtension(default_sint64_extension)
TestAllExtensions.RegisterExtension(default_fixed32_extension)
TestAllExtensions.RegisterExtension(default_fixed64_extension)
TestAllExtensions.RegisterExtension(default_sfixed32_extension)
TestAllExtensions.RegisterExtension(default_sfixed64_extension)
TestAllExtensions.RegisterExtension(default_float_extension)
TestAllExtensions.RegisterExtension(default_double_extension)
TestAllExtensions.RegisterExtension(default_bool_extension)
TestAllExtensions.RegisterExtension(default_string_extension)
TestAllExtensions.RegisterExtension(default_bytes_extension)
default_nested_enum_extension.enum_type = _TESTALLTYPES_NESTEDENUM
TestAllExtensions.RegisterExtension(default_nested_enum_extension)
default_foreign_enum_extension.enum_type = _FOREIGNENUM
TestAllExtensions.RegisterExtension(default_foreign_enum_extension)
default_import_enum_extension.enum_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTENUM
TestAllExtensions.RegisterExtension(default_import_enum_extension)
TestAllExtensions.RegisterExtension(default_string_piece_extension)
TestAllExtensions.RegisterExtension(default_cord_extension)
TestAllExtensions.RegisterExtension(oneof_uint32_extension)
oneof_nested_message_extension.message_type = _TESTALLTYPES_NESTEDMESSAGE
TestAllExtensions.RegisterExtension(oneof_nested_message_extension)
TestAllExtensions.RegisterExtension(oneof_string_extension)
TestAllExtensions.RegisterExtension(oneof_bytes_extension)
TestFieldOrderings.RegisterExtension(my_extension_string)
TestFieldOrderings.RegisterExtension(my_extension_int)
TestPackedExtensions.RegisterExtension(packed_int32_extension)
TestPackedExtensions.RegisterExtension(packed_int64_extension)
TestPackedExtensions.RegisterExtension(packed_uint32_extension)
TestPackedExtensions.RegisterExtension(packed_uint64_extension)
TestPackedExtensions.RegisterExtension(packed_sint32_extension)
TestPackedExtensions.RegisterExtension(packed_sint64_extension)
TestPackedExtensions.RegisterExtension(packed_fixed32_extension)
TestPackedExtensions.RegisterExtension(packed_fixed64_extension)
TestPackedExtensions.RegisterExtension(packed_sfixed32_extension)
TestPackedExtensions.RegisterExtension(packed_sfixed64_extension)
TestPackedExtensions.RegisterExtension(packed_float_extension)
TestPackedExtensions.RegisterExtension(packed_double_extension)
TestPackedExtensions.RegisterExtension(packed_bool_extension)
packed_enum_extension.enum_type = _FOREIGNENUM
TestPackedExtensions.RegisterExtension(packed_enum_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_int32_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_int64_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_uint32_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_uint64_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_sint32_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_sint64_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_fixed32_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_fixed64_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_sfixed32_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_sfixed64_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_float_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_double_extension)
TestUnpackedExtensions.RegisterExtension(unpacked_bool_extension)
unpacked_enum_extension.enum_type = _FOREIGNENUM
TestUnpackedExtensions.RegisterExtension(unpacked_enum_extension)
test_all_types.message_type = _TESTALLTYPES
TestHugeFieldNumbers.RegisterExtension(test_all_types)
TestAllExtensions.RegisterExtension(_TESTNESTEDEXTENSION.extensions_by_name['test'])
TestAllExtensions.RegisterExtension(_TESTNESTEDEXTENSION.extensions_by_name['nested_string_extension'])
_TESTREQUIRED.extensions_by_name['single'].message_type = _TESTREQUIRED
TestAllExtensions.RegisterExtension(_TESTREQUIRED.extensions_by_name['single'])
_TESTREQUIRED.extensions_by_name['multi'].message_type = _TESTREQUIRED
TestAllExtensions.RegisterExtension(_TESTREQUIRED.extensions_by_name['multi'])
_TESTPARSINGMERGE.extensions_by_name['optional_ext'].message_type = _TESTALLTYPES
TestParsingMerge.RegisterExtension(_TESTPARSINGMERGE.extensions_by_name['optional_ext'])
_TESTPARSINGMERGE.extensions_by_name['repeated_ext'].message_type = _TESTALLTYPES
TestParsingMerge.RegisterExtension(_TESTPARSINGMERGE.extensions_by_name['repeated_ext'])

DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('B\rUnittestProtoH\001\200\001\001\210\001\001\220\001\001\370\001\001'))
_TESTENUMWITHDUPVALUE.has_options = True
_TESTENUMWITHDUPVALUE._options = _descriptor._ParseOptions(descriptor_pb2.EnumOptions(), _b('\020\001'))
optional_string_piece_extension.has_options = True
optional_string_piece_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
optional_cord_extension.has_options = True
optional_cord_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
optional_lazy_message_extension.has_options = True
optional_lazy_message_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
repeated_string_piece_extension.has_options = True
repeated_string_piece_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
repeated_cord_extension.has_options = True
repeated_cord_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
repeated_lazy_message_extension.has_options = True
repeated_lazy_message_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
default_string_piece_extension.has_options = True
default_string_piece_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
default_cord_extension.has_options = True
default_cord_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
packed_int32_extension.has_options = True
packed_int32_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_int64_extension.has_options = True
packed_int64_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_uint32_extension.has_options = True
packed_uint32_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_uint64_extension.has_options = True
packed_uint64_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_sint32_extension.has_options = True
packed_sint32_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_sint64_extension.has_options = True
packed_sint64_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_fixed32_extension.has_options = True
packed_fixed32_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_fixed64_extension.has_options = True
packed_fixed64_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_sfixed32_extension.has_options = True
packed_sfixed32_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_sfixed64_extension.has_options = True
packed_sfixed64_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_float_extension.has_options = True
packed_float_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_double_extension.has_options = True
packed_double_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_bool_extension.has_options = True
packed_bool_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
packed_enum_extension.has_options = True
packed_enum_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
unpacked_int32_extension.has_options = True
unpacked_int32_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_int64_extension.has_options = True
unpacked_int64_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_uint32_extension.has_options = True
unpacked_uint32_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_uint64_extension.has_options = True
unpacked_uint64_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_sint32_extension.has_options = True
unpacked_sint32_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_sint64_extension.has_options = True
unpacked_sint64_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_fixed32_extension.has_options = True
unpacked_fixed32_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_fixed64_extension.has_options = True
unpacked_fixed64_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_sfixed32_extension.has_options = True
unpacked_sfixed32_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_sfixed64_extension.has_options = True
unpacked_sfixed64_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_float_extension.has_options = True
unpacked_float_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_double_extension.has_options = True
unpacked_double_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_bool_extension.has_options = True
unpacked_bool_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
unpacked_enum_extension.has_options = True
unpacked_enum_extension._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTALLTYPES.fields_by_name['optional_string_piece'].has_options = True
_TESTALLTYPES.fields_by_name['optional_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPES.fields_by_name['optional_cord'].has_options = True
_TESTALLTYPES.fields_by_name['optional_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTALLTYPES.fields_by_name['optional_lazy_message'].has_options = True
_TESTALLTYPES.fields_by_name['optional_lazy_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
_TESTALLTYPES.fields_by_name['repeated_string_piece'].has_options = True
_TESTALLTYPES.fields_by_name['repeated_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPES.fields_by_name['repeated_cord'].has_options = True
_TESTALLTYPES.fields_by_name['repeated_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTALLTYPES.fields_by_name['repeated_lazy_message'].has_options = True
_TESTALLTYPES.fields_by_name['repeated_lazy_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
_TESTALLTYPES.fields_by_name['default_string_piece'].has_options = True
_TESTALLTYPES.fields_by_name['default_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTALLTYPES.fields_by_name['default_cord'].has_options = True
_TESTALLTYPES.fields_by_name['default_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTDEPRECATEDFIELDS.fields_by_name['deprecated_int32'].has_options = True
_TESTDEPRECATEDFIELDS.fields_by_name['deprecated_int32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))
_TESTDEPRECATEDMESSAGE.has_options = True
_TESTDEPRECATEDMESSAGE._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\030\001'))
_TESTEAGERMESSAGE.fields_by_name['sub_message'].has_options = True
_TESTEAGERMESSAGE.fields_by_name['sub_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\000'))
_TESTLAZYMESSAGE.fields_by_name['sub_message'].has_options = True
_TESTLAZYMESSAGE.fields_by_name['sub_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
_TESTCAMELCASEFIELDNAMES.fields_by_name['StringPieceField'].has_options = True
_TESTCAMELCASEFIELDNAMES.fields_by_name['StringPieceField']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTCAMELCASEFIELDNAMES.fields_by_name['CordField'].has_options = True
_TESTCAMELCASEFIELDNAMES.fields_by_name['CordField']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTCAMELCASEFIELDNAMES.fields_by_name['RepeatedStringPieceField'].has_options = True
_TESTCAMELCASEFIELDNAMES.fields_by_name['RepeatedStringPieceField']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTCAMELCASEFIELDNAMES.fields_by_name['RepeatedCordField'].has_options = True
_TESTCAMELCASEFIELDNAMES.fields_by_name['RepeatedCordField']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTEXTREMEDEFAULTVALUES.fields_by_name['string_piece_with_zero'].has_options = True
_TESTEXTREMEDEFAULTVALUES.fields_by_name['string_piece_with_zero']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTEXTREMEDEFAULTVALUES.fields_by_name['cord_with_zero'].has_options = True
_TESTEXTREMEDEFAULTVALUES.fields_by_name['cord_with_zero']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTONEOF2.fields_by_name['foo_cord'].has_options = True
_TESTONEOF2.fields_by_name['foo_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTONEOF2.fields_by_name['foo_string_piece'].has_options = True
_TESTONEOF2.fields_by_name['foo_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTONEOF2.fields_by_name['foo_lazy_message'].has_options = True
_TESTONEOF2.fields_by_name['foo_lazy_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('(\001'))
_TESTONEOF2.fields_by_name['bar_cord'].has_options = True
_TESTONEOF2.fields_by_name['bar_cord']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\001'))
_TESTONEOF2.fields_by_name['bar_string_piece'].has_options = True
_TESTONEOF2.fields_by_name['bar_string_piece']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\010\002'))
_TESTPACKEDTYPES.fields_by_name['packed_int32'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_int32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_int64'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_int64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_uint32'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_uint32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_uint64'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_uint64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_sint32'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_sint32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_sint64'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_sint64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_fixed32'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_fixed32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_fixed64'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_fixed64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_sfixed32'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_sfixed32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_sfixed64'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_sfixed64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_float'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_float']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_double'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_double']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_bool'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_bool']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTPACKEDTYPES.fields_by_name['packed_enum'].has_options = True
_TESTPACKEDTYPES.fields_by_name['packed_enum']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_int32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_int32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_int64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_int64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_uint32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_uint32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_uint64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_uint64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_sint32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_sint32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_sint64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_sint64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_fixed32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_fixed32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_fixed64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_fixed64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_sfixed32'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_sfixed32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_sfixed64'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_sfixed64']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_float'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_float']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_double'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_double']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_bool'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_bool']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTUNPACKEDTYPES.fields_by_name['unpacked_enum'].has_options = True
_TESTUNPACKEDTYPES.fields_by_name['unpacked_enum']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTDYNAMICEXTENSIONS.fields_by_name['packed_extension'].has_options = True
_TESTDYNAMICEXTENSIONS.fields_by_name['packed_extension']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))
_TESTHUGEFIELDNUMBERS_STRINGSTRINGMAPENTRY.has_options = True
_TESTHUGEFIELDNUMBERS_STRINGSTRINGMAPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTHUGEFIELDNUMBERS.fields_by_name['repeated_int32'].has_options = True
_TESTHUGEFIELDNUMBERS.fields_by_name['repeated_int32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\000'))
_TESTHUGEFIELDNUMBERS.fields_by_name['packed_int32'].has_options = True
_TESTHUGEFIELDNUMBERS.fields_by_name['packed_int32']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\020\001'))

_TESTSERVICE = _descriptor.ServiceDescriptor(
  name='TestService',
  full_name='protobuf_unittest.TestService',
  file=DESCRIPTOR,
  index=0,
  options=None,
  serialized_start=14360,
  serialized_end=14513,
  methods=[
  _descriptor.MethodDescriptor(
    name='Foo',
    full_name='protobuf_unittest.TestService.Foo',
    index=0,
    containing_service=None,
    input_type=_FOOREQUEST,
    output_type=_FOORESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='Bar',
    full_name='protobuf_unittest.TestService.Bar',
    index=1,
    containing_service=None,
    input_type=_BARREQUEST,
    output_type=_BARRESPONSE,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_TESTSERVICE)

DESCRIPTOR.services_by_name['TestService'] = _TESTSERVICE

TestService = service_reflection.GeneratedServiceType('TestService', (_service.Service,), dict(
  DESCRIPTOR = _TESTSERVICE,
  __module__ = 'google.protobuf.unittest_pb2'
  ))

TestService_Stub = service_reflection.GeneratedServiceStubType('TestService_Stub', (TestService,), dict(
  DESCRIPTOR = _TESTSERVICE,
  __module__ = 'google.protobuf.unittest_pb2'
  ))


# @@protoc_insertion_point(module_scope)
PK�\�^���	�	)protobuf/unittest_no_arena_import_pb2.pyonu�[����
���hc-@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d1d2d3�Zeejd<eje�e	jdejfed4ed5d6��Zeje�dS(7i����NiicCs|S(N((tx((sP/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_import_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sP/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_import_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames.google/protobuf/unittest_no_arena_import.prototpackagetproto2_arena_unittesttsyntaxtproto2t
serialized_pbsp
.google/protobuf/unittest_no_arena_import.protoproto2_arena_unittest"'
ImportNoArenaNestedMessage	
d (tImportNoArenaNestedMessaget	full_names0proto2_arena_unittest.ImportNoArenaNestedMessagetfilenametfiletcontaining_typetfieldstds2proto2_arena_unittest.ImportNoArenaNestedMessage.dtindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiItserialized_endipt
DESCRIPTORt
__module__s,google.protobuf.unittest_no_arena_import_pb2(tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR+t
DescriptortNonetFieldDescriptortFalset_IMPORTNOARENANESTEDMESSAGEtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessage(((sP/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_import_pb2.pyt<module>sR%				

PK�\8p�)protobuf/unittest_mset_wire_format_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest_mset_wire_format.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest_mset_wire_format.proto',
  package='proto2_wireformat_unittest',
  syntax='proto2',
  serialized_pb=_b('\n/google/protobuf/unittest_mset_wire_format.proto\x12\x1aproto2_wireformat_unittest\"\x1e\n\x0eTestMessageSet*\x08\x08\x04\x10\xff\xff\xff\xff\x07:\x02\x08\x01\"d\n!TestMessageSetWireFormatContainer\x12?\n\x0bmessage_set\x18\x01 \x01(\x0b\x32*.proto2_wireformat_unittest.TestMessageSetB)H\x01\xf8\x01\x01\xaa\x02!Google.ProtocolBuffers.TestProtos')
)




_TESTMESSAGESET = _descriptor.Descriptor(
  name='TestMessageSet',
  full_name='proto2_wireformat_unittest.TestMessageSet',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\010\001')),
  is_extendable=True,
  syntax='proto2',
  extension_ranges=[(4, 2147483647), ],
  oneofs=[
  ],
  serialized_start=79,
  serialized_end=109,
)


_TESTMESSAGESETWIREFORMATCONTAINER = _descriptor.Descriptor(
  name='TestMessageSetWireFormatContainer',
  full_name='proto2_wireformat_unittest.TestMessageSetWireFormatContainer',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='message_set', full_name='proto2_wireformat_unittest.TestMessageSetWireFormatContainer.message_set', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=111,
  serialized_end=211,
)

_TESTMESSAGESETWIREFORMATCONTAINER.fields_by_name['message_set'].message_type = _TESTMESSAGESET
DESCRIPTOR.message_types_by_name['TestMessageSet'] = _TESTMESSAGESET
DESCRIPTOR.message_types_by_name['TestMessageSetWireFormatContainer'] = _TESTMESSAGESETWIREFORMATCONTAINER
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestMessageSet = _reflection.GeneratedProtocolMessageType('TestMessageSet', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGESET,
  __module__ = 'google.protobuf.unittest_mset_wire_format_pb2'
  # @@protoc_insertion_point(class_scope:proto2_wireformat_unittest.TestMessageSet)
  ))
_sym_db.RegisterMessage(TestMessageSet)

TestMessageSetWireFormatContainer = _reflection.GeneratedProtocolMessageType('TestMessageSetWireFormatContainer', (_message.Message,), dict(
  DESCRIPTOR = _TESTMESSAGESETWIREFORMATCONTAINER,
  __module__ = 'google.protobuf.unittest_mset_wire_format_pb2'
  # @@protoc_insertion_point(class_scope:proto2_wireformat_unittest.TestMessageSetWireFormatContainer)
  ))
_sym_db.RegisterMessage(TestMessageSetWireFormatContainer)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('H\001\370\001\001\252\002!Google.ProtocolBuffers.TestProtos'))
_TESTMESSAGESET.has_options = True
_TESTMESSAGESET._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\010\001'))
# @@protoc_insertion_point(module_scope)
PK�\�M��protobuf/unittest_mset_pb2.pyonu�[����
���hc/@sNddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�Zejdddddddedddejdddddddd d!d"d#d$d%d d&ed'dd(dd)dddd*ed+dd,dde�gd-gd.gd/gd,dd0eddd1gd2gd3d4d5d6�Zejdd7dd8dddedddejdd9dd:dddd;d!d<d#d d%d d&ed'dd(dd)dddd*ed+dd,dde�gd-ejdd=dd>dddd?d!d"d#d$d%d d&ed'dd(dd)dddd*ed+dd,dde�gd.gd/gd,dd0eddd1gd2gd3d@d5dA�ZejddBddCdddedddejddDddEddddFd!dGd#dGd%d d&ed'edH�jdI�d(dd)dddd*ed+dd,dde�gd-ejdd=ddJddddKd!d"d#d$d%d d&ed'dd(dd)dddd*ed+dd,dde�gd.gd/gd,dd0eddd1gd2gd3dLd5dM�ZejddNddOdddedddejddPddQddddRd!d<d#d d%dRd&ed'dd(dd)dddd*ed+dd,dde�ejddSddTdd ddd!dUd#dGd%dRd&ed'edH�d(dd)dddd*ed+dd,dde�gd-gd.gd/gd,dd0eddd1gd2gd3dVd5dW�ZejddXddYdddedddejddZdd[dddd d!d$d#d$d%dd&ed'gd(dd)dddd*ed+dd,dde�gd-gd.egd/gd,dd0eddd1gd2gd3d\d5dW�Zejejd_ ee_!eejdZ_ eej"d<eej"d7<eej"dB<eej"dX<ej#e�e	j$dej%fe&d]ed^d_��Z'ej(e'�e	j$d7ej%fe&d]ed^d_��Z)ej(e)�e	j$dBej%fe&d]ed^d_��Z*ej(e*�e	j$dXej%fe&dNe	j$dNej%fe&d]ed^d_��d]ed^d_��Z+ej(e+�ej(e+j,�eej-d=_ ej.j/ej-d=�eej-d=_ ej.j/ej-d=�ee_0ej1ej2�ed`��e_3dS(ai����NiicCs|S(N((tx((sE/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sE/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_mset_wire_format_pb2tnames#google/protobuf/unittest_mset.prototpackagetprotobuf_unittesttsyntaxtproto2t
serialized_pbs�
#google/protobuf/unittest_mset.protoprotobuf_unittest/google/protobuf/unittest_mset_wire_format.proto"Z
TestMessageSetContainer?
message_set (2*.proto2_wireformat_unittest.TestMessageSet"�
TestMessageSetExtension1	
i (2x
message_set_extension*.proto2_wireformat_unittest.TestMessageSet��^ (2+.protobuf_unittest.TestMessageSetExtension1"�
TestMessageSetExtension2
str (	2x
message_set_extension*.proto2_wireformat_unittest.TestMessageSet��^ (2+.protobuf_unittest.TestMessageSetExtension2"n

RawMessageSet3
item (
2%.protobuf_unittest.RawMessageSet.Item(
Item
type_id (
message (BH�tdependenciestTestMessageSetContainert	full_names)protobuf_unittest.TestMessageSetContainertfilenametfiletcontaining_typetfieldstmessage_sets5protobuf_unittest.TestMessageSetContainer.message_settindextnumberittypeitcpp_typei
tlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiktserialized_endi�tTestMessageSetExtension1s*protobuf_unittest.TestMessageSetExtension1tis,protobuf_unittest.TestMessageSetExtension1.iiitmessage_set_extensions@protobuf_unittest.TestMessageSetExtension1.message_set_extensioni0�i�igtTestMessageSetExtension2s*protobuf_unittest.TestMessageSetExtension2tstrs.protobuf_unittest.TestMessageSetExtension2.strii	Rsutf-8s@protobuf_unittest.TestMessageSetExtension2.message_set_extensioni��ijitItems$protobuf_unittest.RawMessageSet.Itemttype_ids,protobuf_unittest.RawMessageSet.Item.type_idiRs,protobuf_unittest.RawMessageSet.Item.messageiiSi{t
RawMessageSetsprotobuf_unittest.RawMessageSettitems$protobuf_unittest.RawMessageSet.itemi
t
DESCRIPTORt
__module__s!google.protobuf.unittest_mset_pb2sH�(4tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbR
t9google_dot_protobuf_dot_unittest__mset__wire__format__pb2tFileDescriptorR6t
DescriptortNonetFieldDescriptortFalset_TESTMESSAGESETCONTAINERtTruet_TESTMESSAGESETEXTENSION1tdecodet_TESTMESSAGESETEXTENSION2t_RAWMESSAGESET_ITEMt_RAWMESSAGESETt_TESTMESSAGESETtfields_by_nameR Rtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR-R0R4R2textensions_by_nametTestMessageSettRegisterExtensionthas_optionst
_ParseOptionstFileOptionst_options(((sE/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_pb2.pyt<module>sl%																					








	PK�\�4��
�
protobuf/duration_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/duration.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/duration.proto',
  package='google.protobuf',
  syntax='proto3',
  serialized_pb=_b('\n\x1egoogle/protobuf/duration.proto\x12\x0fgoogle.protobuf\"*\n\x08\x44uration\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05\x42|\n\x13\x63om.google.protobufB\rDurationProtoP\x01Z*github.com/golang/protobuf/ptypes/duration\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3')
)




_DURATION = _descriptor.Descriptor(
  name='Duration',
  full_name='google.protobuf.Duration',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='seconds', full_name='google.protobuf.Duration.seconds', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nanos', full_name='google.protobuf.Duration.nanos', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=51,
  serialized_end=93,
)

DESCRIPTOR.message_types_by_name['Duration'] = _DURATION
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Duration = _reflection.GeneratedProtocolMessageType('Duration', (_message.Message,), dict(
  DESCRIPTOR = _DURATION,
  __module__ = 'google.protobuf.duration_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Duration)
  ))
_sym_db.RegisterMessage(Duration)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.google.protobufB\rDurationProtoP\001Z*github.com/golang/protobuf/ptypes/duration\370\001\001\242\002\003GPB\252\002\036Google.Protobuf.WellKnownTypes'))
# @@protoc_insertion_point(module_scope)
PK�\C��v	v	protobuf/field_mask_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/field_mask.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/field_mask.proto',
  package='google.protobuf',
  syntax='proto3',
  serialized_pb=_b('\n google/protobuf/field_mask.proto\x12\x0fgoogle.protobuf\"\x1a\n\tFieldMask\x12\r\n\x05paths\x18\x01 \x03(\tB\x89\x01\n\x13\x63om.google.protobufB\x0e\x46ieldMaskProtoP\x01Z9google.golang.org/genproto/protobuf/field_mask;field_mask\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3')
)




_FIELDMASK = _descriptor.Descriptor(
  name='FieldMask',
  full_name='google.protobuf.FieldMask',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='paths', full_name='google.protobuf.FieldMask.paths', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=53,
  serialized_end=79,
)

DESCRIPTOR.message_types_by_name['FieldMask'] = _FIELDMASK
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

FieldMask = _reflection.GeneratedProtocolMessageType('FieldMask', (_message.Message,), dict(
  DESCRIPTOR = _FIELDMASK,
  __module__ = 'google.protobuf.field_mask_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.FieldMask)
  ))
_sym_db.RegisterMessage(FieldMask)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.google.protobufB\016FieldMaskProtoP\001Z9google.golang.org/genproto/protobuf/field_mask;field_mask\242\002\003GPB\252\002\036Google.Protobuf.WellKnownTypes'))
# @@protoc_insertion_point(module_scope)
PK�\���vY�Y�#protobuf/map_proto2_unittest_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/map_proto2_unittest.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import unittest_import_pb2 as google_dot_protobuf_dot_unittest__import__pb2
try:
  google_dot_protobuf_dot_unittest__import__public__pb2 = google_dot_protobuf_dot_unittest__import__pb2.google_dot_protobuf_dot_unittest__import__public__pb2
except AttributeError:
  google_dot_protobuf_dot_unittest__import__public__pb2 = google_dot_protobuf_dot_unittest__import__pb2.google.protobuf.unittest_import_public_pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/map_proto2_unittest.proto',
  package='protobuf_unittest',
  syntax='proto2',
  serialized_pb=_b('\n)google/protobuf/map_proto2_unittest.proto\x12\x11protobuf_unittest\x1a%google/protobuf/unittest_import.proto\"\xdb\x02\n\x0bTestEnumMap\x12J\n\x0fknown_map_field\x18\x65 \x03(\x0b\x32\x31.protobuf_unittest.TestEnumMap.KnownMapFieldEntry\x12N\n\x11unknown_map_field\x18\x66 \x03(\x0b\x32\x33.protobuf_unittest.TestEnumMap.UnknownMapFieldEntry\x1aV\n\x12KnownMapFieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12/\n\x05value\x18\x02 \x01(\x0e\x32 .protobuf_unittest.Proto2MapEnum:\x02\x38\x01\x1aX\n\x14UnknownMapFieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12/\n\x05value\x18\x02 \x01(\x0e\x32 .protobuf_unittest.Proto2MapEnum:\x02\x38\x01\"\x88\x03\n\x14TestEnumMapPlusExtra\x12S\n\x0fknown_map_field\x18\x65 \x03(\x0b\x32:.protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntry\x12W\n\x11unknown_map_field\x18\x66 \x03(\x0b\x32<.protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry\x1a_\n\x12KnownMapFieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x38\n\x05value\x18\x02 \x01(\x0e\x32).protobuf_unittest.Proto2MapEnumPlusExtra:\x02\x38\x01\x1a\x61\n\x14UnknownMapFieldEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x38\n\x05value\x18\x02 \x01(\x0e\x32).protobuf_unittest.Proto2MapEnumPlusExtra:\x02\x38\x01\"\xc7\x01\n\x11TestImportEnumMap\x12P\n\x0fimport_enum_amp\x18\x01 \x03(\x0b\x32\x37.protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry\x1a`\n\x12ImportEnumAmpEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\x39\n\x05value\x18\x02 \x01(\x0e\x32*.protobuf_unittest_import.ImportEnumForMap:\x02\x38\x01\"m\n\rTestIntIntMap\x12\x32\n\x01m\x18\x01 \x03(\x0b\x32\'.protobuf_unittest.TestIntIntMap.MEntry\x1a(\n\x06MEntry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12\r\n\x05value\x18\x02 \x01(\x05:\x02\x38\x01\"\xb8\r\n\x08TestMaps\x12\x38\n\x07m_int32\x18\x01 \x03(\x0b\x32\'.protobuf_unittest.TestMaps.MInt32Entry\x12\x38\n\x07m_int64\x18\x02 \x03(\x0b\x32\'.protobuf_unittest.TestMaps.MInt64Entry\x12:\n\x08m_uint32\x18\x03 \x03(\x0b\x32(.protobuf_unittest.TestMaps.MUint32Entry\x12:\n\x08m_uint64\x18\x04 \x03(\x0b\x32(.protobuf_unittest.TestMaps.MUint64Entry\x12:\n\x08m_sint32\x18\x05 \x03(\x0b\x32(.protobuf_unittest.TestMaps.MSint32Entry\x12:\n\x08m_sint64\x18\x06 \x03(\x0b\x32(.protobuf_unittest.TestMaps.MSint64Entry\x12<\n\tm_fixed32\x18\x07 \x03(\x0b\x32).protobuf_unittest.TestMaps.MFixed32Entry\x12<\n\tm_fixed64\x18\x08 \x03(\x0b\x32).protobuf_unittest.TestMaps.MFixed64Entry\x12>\n\nm_sfixed32\x18\t \x03(\x0b\x32*.protobuf_unittest.TestMaps.MSfixed32Entry\x12>\n\nm_sfixed64\x18\n \x03(\x0b\x32*.protobuf_unittest.TestMaps.MSfixed64Entry\x12\x36\n\x06m_bool\x18\x0b \x03(\x0b\x32&.protobuf_unittest.TestMaps.MBoolEntry\x12:\n\x08m_string\x18\x0c \x03(\x0b\x32(.protobuf_unittest.TestMaps.MStringEntry\x1aO\n\x0bMInt32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x05\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aO\n\x0bMInt64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x03\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aP\n\x0cMUint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aP\n\x0cMUint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x04\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aP\n\x0cMSint32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x11\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aP\n\x0cMSint64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x12\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aQ\n\rMFixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x07\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aQ\n\rMFixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x06\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aR\n\x0eMSfixed32Entry\x12\x0b\n\x03key\x18\x01 \x01(\x0f\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aR\n\x0eMSfixed64Entry\x12\x0b\n\x03key\x18\x01 \x01(\x10\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aN\n\nMBoolEntry\x12\x0b\n\x03key\x18\x01 \x01(\x08\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\x1aP\n\x0cMStringEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12/\n\x05value\x18\x02 \x01(\x0b\x32 .protobuf_unittest.TestIntIntMap:\x02\x38\x01\"<\n\x12TestSubmessageMaps\x12&\n\x01m\x18\x01 \x01(\x0b\x32\x1b.protobuf_unittest.TestMaps*Z\n\rProto2MapEnum\x12\x17\n\x13PROTO2_MAP_ENUM_FOO\x10\x00\x12\x17\n\x13PROTO2_MAP_ENUM_BAR\x10\x01\x12\x17\n\x13PROTO2_MAP_ENUM_BAZ\x10\x02*\x86\x01\n\x16Proto2MapEnumPlusExtra\x12\x19\n\x15\x45_PROTO2_MAP_ENUM_FOO\x10\x00\x12\x19\n\x15\x45_PROTO2_MAP_ENUM_BAR\x10\x01\x12\x19\n\x15\x45_PROTO2_MAP_ENUM_BAZ\x10\x02\x12\x1b\n\x17\x45_PROTO2_MAP_ENUM_EXTRA\x10\x03\x42\x03\xf8\x01\x01')
  ,
  dependencies=[google_dot_protobuf_dot_unittest__import__pb2.DESCRIPTOR,])

_PROTO2MAPENUM = _descriptor.EnumDescriptor(
  name='Proto2MapEnum',
  full_name='protobuf_unittest.Proto2MapEnum',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='PROTO2_MAP_ENUM_FOO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PROTO2_MAP_ENUM_BAR', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PROTO2_MAP_ENUM_BAZ', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2946,
  serialized_end=3036,
)
_sym_db.RegisterEnumDescriptor(_PROTO2MAPENUM)

Proto2MapEnum = enum_type_wrapper.EnumTypeWrapper(_PROTO2MAPENUM)
_PROTO2MAPENUMPLUSEXTRA = _descriptor.EnumDescriptor(
  name='Proto2MapEnumPlusExtra',
  full_name='protobuf_unittest.Proto2MapEnumPlusExtra',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='E_PROTO2_MAP_ENUM_FOO', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='E_PROTO2_MAP_ENUM_BAR', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='E_PROTO2_MAP_ENUM_BAZ', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='E_PROTO2_MAP_ENUM_EXTRA', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3039,
  serialized_end=3173,
)
_sym_db.RegisterEnumDescriptor(_PROTO2MAPENUMPLUSEXTRA)

Proto2MapEnumPlusExtra = enum_type_wrapper.EnumTypeWrapper(_PROTO2MAPENUMPLUSEXTRA)
PROTO2_MAP_ENUM_FOO = 0
PROTO2_MAP_ENUM_BAR = 1
PROTO2_MAP_ENUM_BAZ = 2
E_PROTO2_MAP_ENUM_FOO = 0
E_PROTO2_MAP_ENUM_BAR = 1
E_PROTO2_MAP_ENUM_BAZ = 2
E_PROTO2_MAP_ENUM_EXTRA = 3



_TESTENUMMAP_KNOWNMAPFIELDENTRY = _descriptor.Descriptor(
  name='KnownMapFieldEntry',
  full_name='protobuf_unittest.TestEnumMap.KnownMapFieldEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestEnumMap.KnownMapFieldEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestEnumMap.KnownMapFieldEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=275,
  serialized_end=361,
)

_TESTENUMMAP_UNKNOWNMAPFIELDENTRY = _descriptor.Descriptor(
  name='UnknownMapFieldEntry',
  full_name='protobuf_unittest.TestEnumMap.UnknownMapFieldEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestEnumMap.UnknownMapFieldEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestEnumMap.UnknownMapFieldEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=363,
  serialized_end=451,
)

_TESTENUMMAP = _descriptor.Descriptor(
  name='TestEnumMap',
  full_name='protobuf_unittest.TestEnumMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='known_map_field', full_name='protobuf_unittest.TestEnumMap.known_map_field', index=0,
      number=101, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unknown_map_field', full_name='protobuf_unittest.TestEnumMap.unknown_map_field', index=1,
      number=102, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTENUMMAP_KNOWNMAPFIELDENTRY, _TESTENUMMAP_UNKNOWNMAPFIELDENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=104,
  serialized_end=451,
)


_TESTENUMMAPPLUSEXTRA_KNOWNMAPFIELDENTRY = _descriptor.Descriptor(
  name='KnownMapFieldEntry',
  full_name='protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=652,
  serialized_end=747,
)

_TESTENUMMAPPLUSEXTRA_UNKNOWNMAPFIELDENTRY = _descriptor.Descriptor(
  name='UnknownMapFieldEntry',
  full_name='protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=749,
  serialized_end=846,
)

_TESTENUMMAPPLUSEXTRA = _descriptor.Descriptor(
  name='TestEnumMapPlusExtra',
  full_name='protobuf_unittest.TestEnumMapPlusExtra',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='known_map_field', full_name='protobuf_unittest.TestEnumMapPlusExtra.known_map_field', index=0,
      number=101, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unknown_map_field', full_name='protobuf_unittest.TestEnumMapPlusExtra.unknown_map_field', index=1,
      number=102, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTENUMMAPPLUSEXTRA_KNOWNMAPFIELDENTRY, _TESTENUMMAPPLUSEXTRA_UNKNOWNMAPFIELDENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=454,
  serialized_end=846,
)


_TESTIMPORTENUMMAP_IMPORTENUMAMPENTRY = _descriptor.Descriptor(
  name='ImportEnumAmpEntry',
  full_name='protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry.value', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=952,
  serialized_end=1048,
)

_TESTIMPORTENUMMAP = _descriptor.Descriptor(
  name='TestImportEnumMap',
  full_name='protobuf_unittest.TestImportEnumMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='import_enum_amp', full_name='protobuf_unittest.TestImportEnumMap.import_enum_amp', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTIMPORTENUMMAP_IMPORTENUMAMPENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=849,
  serialized_end=1048,
)


_TESTINTINTMAP_MENTRY = _descriptor.Descriptor(
  name='MEntry',
  full_name='protobuf_unittest.TestIntIntMap.MEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestIntIntMap.MEntry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestIntIntMap.MEntry.value', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1119,
  serialized_end=1159,
)

_TESTINTINTMAP = _descriptor.Descriptor(
  name='TestIntIntMap',
  full_name='protobuf_unittest.TestIntIntMap',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='m', full_name='protobuf_unittest.TestIntIntMap.m', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTINTINTMAP_MENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1050,
  serialized_end=1159,
)


_TESTMAPS_MINT32ENTRY = _descriptor.Descriptor(
  name='MInt32Entry',
  full_name='protobuf_unittest.TestMaps.MInt32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MInt32Entry.key', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MInt32Entry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1898,
  serialized_end=1977,
)

_TESTMAPS_MINT64ENTRY = _descriptor.Descriptor(
  name='MInt64Entry',
  full_name='protobuf_unittest.TestMaps.MInt64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MInt64Entry.key', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MInt64Entry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1979,
  serialized_end=2058,
)

_TESTMAPS_MUINT32ENTRY = _descriptor.Descriptor(
  name='MUint32Entry',
  full_name='protobuf_unittest.TestMaps.MUint32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MUint32Entry.key', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MUint32Entry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2060,
  serialized_end=2140,
)

_TESTMAPS_MUINT64ENTRY = _descriptor.Descriptor(
  name='MUint64Entry',
  full_name='protobuf_unittest.TestMaps.MUint64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MUint64Entry.key', index=0,
      number=1, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MUint64Entry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2142,
  serialized_end=2222,
)

_TESTMAPS_MSINT32ENTRY = _descriptor.Descriptor(
  name='MSint32Entry',
  full_name='protobuf_unittest.TestMaps.MSint32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MSint32Entry.key', index=0,
      number=1, type=17, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MSint32Entry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2224,
  serialized_end=2304,
)

_TESTMAPS_MSINT64ENTRY = _descriptor.Descriptor(
  name='MSint64Entry',
  full_name='protobuf_unittest.TestMaps.MSint64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MSint64Entry.key', index=0,
      number=1, type=18, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MSint64Entry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2306,
  serialized_end=2386,
)

_TESTMAPS_MFIXED32ENTRY = _descriptor.Descriptor(
  name='MFixed32Entry',
  full_name='protobuf_unittest.TestMaps.MFixed32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MFixed32Entry.key', index=0,
      number=1, type=7, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MFixed32Entry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2388,
  serialized_end=2469,
)

_TESTMAPS_MFIXED64ENTRY = _descriptor.Descriptor(
  name='MFixed64Entry',
  full_name='protobuf_unittest.TestMaps.MFixed64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MFixed64Entry.key', index=0,
      number=1, type=6, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MFixed64Entry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2471,
  serialized_end=2552,
)

_TESTMAPS_MSFIXED32ENTRY = _descriptor.Descriptor(
  name='MSfixed32Entry',
  full_name='protobuf_unittest.TestMaps.MSfixed32Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MSfixed32Entry.key', index=0,
      number=1, type=15, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MSfixed32Entry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2554,
  serialized_end=2636,
)

_TESTMAPS_MSFIXED64ENTRY = _descriptor.Descriptor(
  name='MSfixed64Entry',
  full_name='protobuf_unittest.TestMaps.MSfixed64Entry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MSfixed64Entry.key', index=0,
      number=1, type=16, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MSfixed64Entry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2638,
  serialized_end=2720,
)

_TESTMAPS_MBOOLENTRY = _descriptor.Descriptor(
  name='MBoolEntry',
  full_name='protobuf_unittest.TestMaps.MBoolEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MBoolEntry.key', index=0,
      number=1, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MBoolEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2722,
  serialized_end=2800,
)

_TESTMAPS_MSTRINGENTRY = _descriptor.Descriptor(
  name='MStringEntry',
  full_name='protobuf_unittest.TestMaps.MStringEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='protobuf_unittest.TestMaps.MStringEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='protobuf_unittest.TestMaps.MStringEntry.value', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2802,
  serialized_end=2882,
)

_TESTMAPS = _descriptor.Descriptor(
  name='TestMaps',
  full_name='protobuf_unittest.TestMaps',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='m_int32', full_name='protobuf_unittest.TestMaps.m_int32', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_int64', full_name='protobuf_unittest.TestMaps.m_int64', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_uint32', full_name='protobuf_unittest.TestMaps.m_uint32', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_uint64', full_name='protobuf_unittest.TestMaps.m_uint64', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_sint32', full_name='protobuf_unittest.TestMaps.m_sint32', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_sint64', full_name='protobuf_unittest.TestMaps.m_sint64', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_fixed32', full_name='protobuf_unittest.TestMaps.m_fixed32', index=6,
      number=7, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_fixed64', full_name='protobuf_unittest.TestMaps.m_fixed64', index=7,
      number=8, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_sfixed32', full_name='protobuf_unittest.TestMaps.m_sfixed32', index=8,
      number=9, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_sfixed64', full_name='protobuf_unittest.TestMaps.m_sfixed64', index=9,
      number=10, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_bool', full_name='protobuf_unittest.TestMaps.m_bool', index=10,
      number=11, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='m_string', full_name='protobuf_unittest.TestMaps.m_string', index=11,
      number=12, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_TESTMAPS_MINT32ENTRY, _TESTMAPS_MINT64ENTRY, _TESTMAPS_MUINT32ENTRY, _TESTMAPS_MUINT64ENTRY, _TESTMAPS_MSINT32ENTRY, _TESTMAPS_MSINT64ENTRY, _TESTMAPS_MFIXED32ENTRY, _TESTMAPS_MFIXED64ENTRY, _TESTMAPS_MSFIXED32ENTRY, _TESTMAPS_MSFIXED64ENTRY, _TESTMAPS_MBOOLENTRY, _TESTMAPS_MSTRINGENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1162,
  serialized_end=2882,
)


_TESTSUBMESSAGEMAPS = _descriptor.Descriptor(
  name='TestSubmessageMaps',
  full_name='protobuf_unittest.TestSubmessageMaps',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='m', full_name='protobuf_unittest.TestSubmessageMaps.m', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2884,
  serialized_end=2944,
)

_TESTENUMMAP_KNOWNMAPFIELDENTRY.fields_by_name['value'].enum_type = _PROTO2MAPENUM
_TESTENUMMAP_KNOWNMAPFIELDENTRY.containing_type = _TESTENUMMAP
_TESTENUMMAP_UNKNOWNMAPFIELDENTRY.fields_by_name['value'].enum_type = _PROTO2MAPENUM
_TESTENUMMAP_UNKNOWNMAPFIELDENTRY.containing_type = _TESTENUMMAP
_TESTENUMMAP.fields_by_name['known_map_field'].message_type = _TESTENUMMAP_KNOWNMAPFIELDENTRY
_TESTENUMMAP.fields_by_name['unknown_map_field'].message_type = _TESTENUMMAP_UNKNOWNMAPFIELDENTRY
_TESTENUMMAPPLUSEXTRA_KNOWNMAPFIELDENTRY.fields_by_name['value'].enum_type = _PROTO2MAPENUMPLUSEXTRA
_TESTENUMMAPPLUSEXTRA_KNOWNMAPFIELDENTRY.containing_type = _TESTENUMMAPPLUSEXTRA
_TESTENUMMAPPLUSEXTRA_UNKNOWNMAPFIELDENTRY.fields_by_name['value'].enum_type = _PROTO2MAPENUMPLUSEXTRA
_TESTENUMMAPPLUSEXTRA_UNKNOWNMAPFIELDENTRY.containing_type = _TESTENUMMAPPLUSEXTRA
_TESTENUMMAPPLUSEXTRA.fields_by_name['known_map_field'].message_type = _TESTENUMMAPPLUSEXTRA_KNOWNMAPFIELDENTRY
_TESTENUMMAPPLUSEXTRA.fields_by_name['unknown_map_field'].message_type = _TESTENUMMAPPLUSEXTRA_UNKNOWNMAPFIELDENTRY
_TESTIMPORTENUMMAP_IMPORTENUMAMPENTRY.fields_by_name['value'].enum_type = google_dot_protobuf_dot_unittest__import__pb2._IMPORTENUMFORMAP
_TESTIMPORTENUMMAP_IMPORTENUMAMPENTRY.containing_type = _TESTIMPORTENUMMAP
_TESTIMPORTENUMMAP.fields_by_name['import_enum_amp'].message_type = _TESTIMPORTENUMMAP_IMPORTENUMAMPENTRY
_TESTINTINTMAP_MENTRY.containing_type = _TESTINTINTMAP
_TESTINTINTMAP.fields_by_name['m'].message_type = _TESTINTINTMAP_MENTRY
_TESTMAPS_MINT32ENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MINT32ENTRY.containing_type = _TESTMAPS
_TESTMAPS_MINT64ENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MINT64ENTRY.containing_type = _TESTMAPS
_TESTMAPS_MUINT32ENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MUINT32ENTRY.containing_type = _TESTMAPS
_TESTMAPS_MUINT64ENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MUINT64ENTRY.containing_type = _TESTMAPS
_TESTMAPS_MSINT32ENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MSINT32ENTRY.containing_type = _TESTMAPS
_TESTMAPS_MSINT64ENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MSINT64ENTRY.containing_type = _TESTMAPS
_TESTMAPS_MFIXED32ENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MFIXED32ENTRY.containing_type = _TESTMAPS
_TESTMAPS_MFIXED64ENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MFIXED64ENTRY.containing_type = _TESTMAPS
_TESTMAPS_MSFIXED32ENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MSFIXED32ENTRY.containing_type = _TESTMAPS
_TESTMAPS_MSFIXED64ENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MSFIXED64ENTRY.containing_type = _TESTMAPS
_TESTMAPS_MBOOLENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MBOOLENTRY.containing_type = _TESTMAPS
_TESTMAPS_MSTRINGENTRY.fields_by_name['value'].message_type = _TESTINTINTMAP
_TESTMAPS_MSTRINGENTRY.containing_type = _TESTMAPS
_TESTMAPS.fields_by_name['m_int32'].message_type = _TESTMAPS_MINT32ENTRY
_TESTMAPS.fields_by_name['m_int64'].message_type = _TESTMAPS_MINT64ENTRY
_TESTMAPS.fields_by_name['m_uint32'].message_type = _TESTMAPS_MUINT32ENTRY
_TESTMAPS.fields_by_name['m_uint64'].message_type = _TESTMAPS_MUINT64ENTRY
_TESTMAPS.fields_by_name['m_sint32'].message_type = _TESTMAPS_MSINT32ENTRY
_TESTMAPS.fields_by_name['m_sint64'].message_type = _TESTMAPS_MSINT64ENTRY
_TESTMAPS.fields_by_name['m_fixed32'].message_type = _TESTMAPS_MFIXED32ENTRY
_TESTMAPS.fields_by_name['m_fixed64'].message_type = _TESTMAPS_MFIXED64ENTRY
_TESTMAPS.fields_by_name['m_sfixed32'].message_type = _TESTMAPS_MSFIXED32ENTRY
_TESTMAPS.fields_by_name['m_sfixed64'].message_type = _TESTMAPS_MSFIXED64ENTRY
_TESTMAPS.fields_by_name['m_bool'].message_type = _TESTMAPS_MBOOLENTRY
_TESTMAPS.fields_by_name['m_string'].message_type = _TESTMAPS_MSTRINGENTRY
_TESTSUBMESSAGEMAPS.fields_by_name['m'].message_type = _TESTMAPS
DESCRIPTOR.message_types_by_name['TestEnumMap'] = _TESTENUMMAP
DESCRIPTOR.message_types_by_name['TestEnumMapPlusExtra'] = _TESTENUMMAPPLUSEXTRA
DESCRIPTOR.message_types_by_name['TestImportEnumMap'] = _TESTIMPORTENUMMAP
DESCRIPTOR.message_types_by_name['TestIntIntMap'] = _TESTINTINTMAP
DESCRIPTOR.message_types_by_name['TestMaps'] = _TESTMAPS
DESCRIPTOR.message_types_by_name['TestSubmessageMaps'] = _TESTSUBMESSAGEMAPS
DESCRIPTOR.enum_types_by_name['Proto2MapEnum'] = _PROTO2MAPENUM
DESCRIPTOR.enum_types_by_name['Proto2MapEnumPlusExtra'] = _PROTO2MAPENUMPLUSEXTRA
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

TestEnumMap = _reflection.GeneratedProtocolMessageType('TestEnumMap', (_message.Message,), dict(

  KnownMapFieldEntry = _reflection.GeneratedProtocolMessageType('KnownMapFieldEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTENUMMAP_KNOWNMAPFIELDENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestEnumMap.KnownMapFieldEntry)
    ))
  ,

  UnknownMapFieldEntry = _reflection.GeneratedProtocolMessageType('UnknownMapFieldEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTENUMMAP_UNKNOWNMAPFIELDENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestEnumMap.UnknownMapFieldEntry)
    ))
  ,
  DESCRIPTOR = _TESTENUMMAP,
  __module__ = 'google.protobuf.map_proto2_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestEnumMap)
  ))
_sym_db.RegisterMessage(TestEnumMap)
_sym_db.RegisterMessage(TestEnumMap.KnownMapFieldEntry)
_sym_db.RegisterMessage(TestEnumMap.UnknownMapFieldEntry)

TestEnumMapPlusExtra = _reflection.GeneratedProtocolMessageType('TestEnumMapPlusExtra', (_message.Message,), dict(

  KnownMapFieldEntry = _reflection.GeneratedProtocolMessageType('KnownMapFieldEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTENUMMAPPLUSEXTRA_KNOWNMAPFIELDENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntry)
    ))
  ,

  UnknownMapFieldEntry = _reflection.GeneratedProtocolMessageType('UnknownMapFieldEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTENUMMAPPLUSEXTRA_UNKNOWNMAPFIELDENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry)
    ))
  ,
  DESCRIPTOR = _TESTENUMMAPPLUSEXTRA,
  __module__ = 'google.protobuf.map_proto2_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestEnumMapPlusExtra)
  ))
_sym_db.RegisterMessage(TestEnumMapPlusExtra)
_sym_db.RegisterMessage(TestEnumMapPlusExtra.KnownMapFieldEntry)
_sym_db.RegisterMessage(TestEnumMapPlusExtra.UnknownMapFieldEntry)

TestImportEnumMap = _reflection.GeneratedProtocolMessageType('TestImportEnumMap', (_message.Message,), dict(

  ImportEnumAmpEntry = _reflection.GeneratedProtocolMessageType('ImportEnumAmpEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTIMPORTENUMMAP_IMPORTENUMAMPENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry)
    ))
  ,
  DESCRIPTOR = _TESTIMPORTENUMMAP,
  __module__ = 'google.protobuf.map_proto2_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestImportEnumMap)
  ))
_sym_db.RegisterMessage(TestImportEnumMap)
_sym_db.RegisterMessage(TestImportEnumMap.ImportEnumAmpEntry)

TestIntIntMap = _reflection.GeneratedProtocolMessageType('TestIntIntMap', (_message.Message,), dict(

  MEntry = _reflection.GeneratedProtocolMessageType('MEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTINTINTMAP_MENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestIntIntMap.MEntry)
    ))
  ,
  DESCRIPTOR = _TESTINTINTMAP,
  __module__ = 'google.protobuf.map_proto2_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestIntIntMap)
  ))
_sym_db.RegisterMessage(TestIntIntMap)
_sym_db.RegisterMessage(TestIntIntMap.MEntry)

TestMaps = _reflection.GeneratedProtocolMessageType('TestMaps', (_message.Message,), dict(

  MInt32Entry = _reflection.GeneratedProtocolMessageType('MInt32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MINT32ENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MInt32Entry)
    ))
  ,

  MInt64Entry = _reflection.GeneratedProtocolMessageType('MInt64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MINT64ENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MInt64Entry)
    ))
  ,

  MUint32Entry = _reflection.GeneratedProtocolMessageType('MUint32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MUINT32ENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MUint32Entry)
    ))
  ,

  MUint64Entry = _reflection.GeneratedProtocolMessageType('MUint64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MUINT64ENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MUint64Entry)
    ))
  ,

  MSint32Entry = _reflection.GeneratedProtocolMessageType('MSint32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MSINT32ENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MSint32Entry)
    ))
  ,

  MSint64Entry = _reflection.GeneratedProtocolMessageType('MSint64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MSINT64ENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MSint64Entry)
    ))
  ,

  MFixed32Entry = _reflection.GeneratedProtocolMessageType('MFixed32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MFIXED32ENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MFixed32Entry)
    ))
  ,

  MFixed64Entry = _reflection.GeneratedProtocolMessageType('MFixed64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MFIXED64ENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MFixed64Entry)
    ))
  ,

  MSfixed32Entry = _reflection.GeneratedProtocolMessageType('MSfixed32Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MSFIXED32ENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MSfixed32Entry)
    ))
  ,

  MSfixed64Entry = _reflection.GeneratedProtocolMessageType('MSfixed64Entry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MSFIXED64ENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MSfixed64Entry)
    ))
  ,

  MBoolEntry = _reflection.GeneratedProtocolMessageType('MBoolEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MBOOLENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MBoolEntry)
    ))
  ,

  MStringEntry = _reflection.GeneratedProtocolMessageType('MStringEntry', (_message.Message,), dict(
    DESCRIPTOR = _TESTMAPS_MSTRINGENTRY,
    __module__ = 'google.protobuf.map_proto2_unittest_pb2'
    # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps.MStringEntry)
    ))
  ,
  DESCRIPTOR = _TESTMAPS,
  __module__ = 'google.protobuf.map_proto2_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestMaps)
  ))
_sym_db.RegisterMessage(TestMaps)
_sym_db.RegisterMessage(TestMaps.MInt32Entry)
_sym_db.RegisterMessage(TestMaps.MInt64Entry)
_sym_db.RegisterMessage(TestMaps.MUint32Entry)
_sym_db.RegisterMessage(TestMaps.MUint64Entry)
_sym_db.RegisterMessage(TestMaps.MSint32Entry)
_sym_db.RegisterMessage(TestMaps.MSint64Entry)
_sym_db.RegisterMessage(TestMaps.MFixed32Entry)
_sym_db.RegisterMessage(TestMaps.MFixed64Entry)
_sym_db.RegisterMessage(TestMaps.MSfixed32Entry)
_sym_db.RegisterMessage(TestMaps.MSfixed64Entry)
_sym_db.RegisterMessage(TestMaps.MBoolEntry)
_sym_db.RegisterMessage(TestMaps.MStringEntry)

TestSubmessageMaps = _reflection.GeneratedProtocolMessageType('TestSubmessageMaps', (_message.Message,), dict(
  DESCRIPTOR = _TESTSUBMESSAGEMAPS,
  __module__ = 'google.protobuf.map_proto2_unittest_pb2'
  # @@protoc_insertion_point(class_scope:protobuf_unittest.TestSubmessageMaps)
  ))
_sym_db.RegisterMessage(TestSubmessageMaps)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\370\001\001'))
_TESTENUMMAP_KNOWNMAPFIELDENTRY.has_options = True
_TESTENUMMAP_KNOWNMAPFIELDENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTENUMMAP_UNKNOWNMAPFIELDENTRY.has_options = True
_TESTENUMMAP_UNKNOWNMAPFIELDENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTENUMMAPPLUSEXTRA_KNOWNMAPFIELDENTRY.has_options = True
_TESTENUMMAPPLUSEXTRA_KNOWNMAPFIELDENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTENUMMAPPLUSEXTRA_UNKNOWNMAPFIELDENTRY.has_options = True
_TESTENUMMAPPLUSEXTRA_UNKNOWNMAPFIELDENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTIMPORTENUMMAP_IMPORTENUMAMPENTRY.has_options = True
_TESTIMPORTENUMMAP_IMPORTENUMAMPENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTINTINTMAP_MENTRY.has_options = True
_TESTINTINTMAP_MENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MINT32ENTRY.has_options = True
_TESTMAPS_MINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MINT64ENTRY.has_options = True
_TESTMAPS_MINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MUINT32ENTRY.has_options = True
_TESTMAPS_MUINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MUINT64ENTRY.has_options = True
_TESTMAPS_MUINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MSINT32ENTRY.has_options = True
_TESTMAPS_MSINT32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MSINT64ENTRY.has_options = True
_TESTMAPS_MSINT64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MFIXED32ENTRY.has_options = True
_TESTMAPS_MFIXED32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MFIXED64ENTRY.has_options = True
_TESTMAPS_MFIXED64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MSFIXED32ENTRY.has_options = True
_TESTMAPS_MSFIXED32ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MSFIXED64ENTRY.has_options = True
_TESTMAPS_MSFIXED64ENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MBOOLENTRY.has_options = True
_TESTMAPS_MBOOLENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_TESTMAPS_MSTRINGENTRY.has_options = True
_TESTMAPS_MSTRINGENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
# @@protoc_insertion_point(module_scope)
PK�\�ā&��protobuf/symbol_database.pyonu�[����
���hc@sadZddlmZddlmZdejfd��YZedej��Zd�ZdS(	sRA database of Python protocol buffer generated symbols.

SymbolDatabase is the MessageFactory for messages generated at compile time,
and makes it easy to create new instances of a registered type, given only the
type's protocol buffer symbol name.

Example usage:

  db = symbol_database.SymbolDatabase()

  # Register symbols of interest, from one or multiple files.
  db.RegisterFileDescriptor(my_proto_pb2.DESCRIPTOR)
  db.RegisterMessage(my_proto_pb2.MyMessage)
  db.RegisterEnumDescriptor(my_proto_pb2.MyEnum.DESCRIPTOR)

  # The database can be used as a MessageFactory, to generate types based on
  # their name:
  types = db.GetMessages(['my_proto.proto'])
  my_message_instance = types['MyMessage']()

  # The database's underlying descriptor pool can be queried, so it's not
  # necessary to know a type's filename to be able to generate it:
  filename = db.pool.FindFileContainingSymbol('MyMessage')
  my_message_instance = db.GetMessages([filename])['MyMessage']()

  # This functionality is also provided directly via a convenience method:
  my_message_instance = db.GetSymbol('MyMessage')()
i����(tdescriptor_pool(tmessage_factorytSymbolDatabasecBsMeZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(s'A database of Python generated symbols.cCs'|j}||j|<|j|�|S(s�Registers the given message type in the local database.

    Calls to GetSymbol() and GetMessages() will return messages registered here.

    Args:
      message: a message.Message, to be registered.

    Returns:
      The provided message.
    (t
DESCRIPTORt_classestRegisterMessageDescriptor(tselftmessagetdesc((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytRegisterMessageDs	

cCs|jj|�dS(s�Registers the given message descriptor in the local database.

    Args:
      message_descriptor: a descriptor.MessageDescriptor.
    N(tpoolt
AddDescriptor(Rtmessage_descriptor((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pyRUscCs|jj|�|S(s�Registers the given enum descriptor in the local database.

    Args:
      enum_descriptor: a descriptor.EnumDescriptor.

    Returns:
      The provided descriptor.
    (R
tAddEnumDescriptor(Rtenum_descriptor((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytRegisterEnumDescriptor]s	cCs|jj|�dS(s�Registers the given service descriptor in the local database.

    Args:
      service_descriptor: a descriptor.ServiceDescriptor.

    Returns:
      The provided descriptor.
    N(R
tAddServiceDescriptor(Rtservice_descriptor((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytRegisterServiceDescriptoris	cCs|jj|�dS(s�Registers the given file descriptor in the local database.

    Args:
      file_descriptor: a descriptor.FileDescriptor.

    Returns:
      The provided descriptor.
    N(R
tAddFileDescriptor(Rtfile_descriptor((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytRegisterFileDescriptorts	cCs|j|jj|�S(sxTries to find a symbol in the local database.

    Currently, this method only returns message.Message instances, however, if
    may be extended in future to support other symbol types.

    Args:
      symbol: A str, a protocol buffer symbol.

    Returns:
      A Python class corresponding to the symbol.

    Raises:
      KeyError: if the symbol could not be found.
    (RR
tFindMessageTypeByName(Rtsymbol((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pyt	GetSymbolscs��fd��i}x}|D]u}|jj|�}xZ|jj�D]I}x@�|�D]2}y|j|||j<WqWtk
r�qWXqWWqDWqW|S(sGets all registered messages from a specified file.

    Only messages already created and registered will be returned; (this is the
    case for imported _pb2 modules)
    But unlike MessageFactory, this version also returns already defined nested
    messages, but does not register any message extensions.

    Args:
      files: The file names to extract messages from.

    Returns:
      A dictionary mapping proto names to the message classes.

    Raises:
      KeyError: if a file could not be found.
    c3s9|Vx-|jD]"}x�|�D]}|Vq"WqWdS(sCWalk a message Descriptor and recursively yields all message names.N(tnested_types(Rtmsg_desctnested_desc(t_GetAllMessages(sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pyR�s(R
tFindFileByNametmessage_types_by_nametvaluesRt	full_nametKeyError(Rtfilestresultt	file_namet	file_descRR((RsC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytGetMessages�s

(
t__name__t
__module__t__doc__R	RRRRRR&(((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pyRAs						R
cCstS(s#Returns the default SymbolDatabase.(t_DEFAULT(((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pytDefault�sN(R)tgoogle.protobufRRtMessageFactoryRR+R*(((sC/usr/lib/python2.7/site-packages/google/protobuf/symbol_database.pyt<module>:s
wPK�\ٽ�%B
B
'protobuf/unittest_import_public_pb2.pyonu�[����
���hc-@sddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd*gd+gd,gd)dd-eddd.gd/gd0d1d2d3�Zeejd<eje�e	jdejfed4ed5d6��Zeje�ee_ejej �ed7��e_!dS(8i����NiicCs|S(N((tx((sN/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_public_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sN/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_public_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames,google/protobuf/unittest_import_public.prototpackagetprotobuf_unittest_importtsyntaxtproto2t
serialized_pbs�
,google/protobuf/unittest_import_public.protoprotobuf_unittest_import" 
PublicImportMessage	
e (B
com.google.protobuf.testtPublicImportMessaget	full_names,protobuf_unittest_import.PublicImportMessagetfilenametfiletcontaining_typetfieldstes.protobuf_unittest_import.PublicImportMessage.etindextnumberittypeitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiJtserialized_endijt
DESCRIPTORt
__module__s*google.protobuf.unittest_import_public_pb2s
com.google.protobuf.test("tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR+t
DescriptortNonetFieldDescriptortFalset_PUBLICIMPORTMESSAGEtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((sN/usr/lib/python2.7/site-packages/google/protobuf/unittest_import_public_pb2.pyt<module>sV%				


	PK�\�� �protobuf/symbol_database.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""A database of Python protocol buffer generated symbols.

SymbolDatabase is the MessageFactory for messages generated at compile time,
and makes it easy to create new instances of a registered type, given only the
type's protocol buffer symbol name.

Example usage:

  db = symbol_database.SymbolDatabase()

  # Register symbols of interest, from one or multiple files.
  db.RegisterFileDescriptor(my_proto_pb2.DESCRIPTOR)
  db.RegisterMessage(my_proto_pb2.MyMessage)
  db.RegisterEnumDescriptor(my_proto_pb2.MyEnum.DESCRIPTOR)

  # The database can be used as a MessageFactory, to generate types based on
  # their name:
  types = db.GetMessages(['my_proto.proto'])
  my_message_instance = types['MyMessage']()

  # The database's underlying descriptor pool can be queried, so it's not
  # necessary to know a type's filename to be able to generate it:
  filename = db.pool.FindFileContainingSymbol('MyMessage')
  my_message_instance = db.GetMessages([filename])['MyMessage']()

  # This functionality is also provided directly via a convenience method:
  my_message_instance = db.GetSymbol('MyMessage')()
"""


from google.protobuf import descriptor_pool
from google.protobuf import message_factory


class SymbolDatabase(message_factory.MessageFactory):
  """A database of Python generated symbols."""

  def RegisterMessage(self, message):
    """Registers the given message type in the local database.

    Calls to GetSymbol() and GetMessages() will return messages registered here.

    Args:
      message: a message.Message, to be registered.

    Returns:
      The provided message.
    """

    desc = message.DESCRIPTOR
    self._classes[desc] = message
    self.RegisterMessageDescriptor(desc)
    return message

  def RegisterMessageDescriptor(self, message_descriptor):
    """Registers the given message descriptor in the local database.

    Args:
      message_descriptor: a descriptor.MessageDescriptor.
    """
    self.pool.AddDescriptor(message_descriptor)

  def RegisterEnumDescriptor(self, enum_descriptor):
    """Registers the given enum descriptor in the local database.

    Args:
      enum_descriptor: a descriptor.EnumDescriptor.

    Returns:
      The provided descriptor.
    """
    self.pool.AddEnumDescriptor(enum_descriptor)
    return enum_descriptor

  def RegisterServiceDescriptor(self, service_descriptor):
    """Registers the given service descriptor in the local database.

    Args:
      service_descriptor: a descriptor.ServiceDescriptor.

    Returns:
      The provided descriptor.
    """
    self.pool.AddServiceDescriptor(service_descriptor)

  def RegisterFileDescriptor(self, file_descriptor):
    """Registers the given file descriptor in the local database.

    Args:
      file_descriptor: a descriptor.FileDescriptor.

    Returns:
      The provided descriptor.
    """
    self.pool.AddFileDescriptor(file_descriptor)

  def GetSymbol(self, symbol):
    """Tries to find a symbol in the local database.

    Currently, this method only returns message.Message instances, however, if
    may be extended in future to support other symbol types.

    Args:
      symbol: A str, a protocol buffer symbol.

    Returns:
      A Python class corresponding to the symbol.

    Raises:
      KeyError: if the symbol could not be found.
    """

    return self._classes[self.pool.FindMessageTypeByName(symbol)]

  def GetMessages(self, files):
    # TODO(amauryfa): Fix the differences with MessageFactory.
    """Gets all registered messages from a specified file.

    Only messages already created and registered will be returned; (this is the
    case for imported _pb2 modules)
    But unlike MessageFactory, this version also returns already defined nested
    messages, but does not register any message extensions.

    Args:
      files: The file names to extract messages from.

    Returns:
      A dictionary mapping proto names to the message classes.

    Raises:
      KeyError: if a file could not be found.
    """

    def _GetAllMessages(desc):
      """Walk a message Descriptor and recursively yields all message names."""
      yield desc
      for msg_desc in desc.nested_types:
        for nested_desc in _GetAllMessages(msg_desc):
          yield nested_desc

    result = {}
    for file_name in files:
      file_desc = self.pool.FindFileByName(file_name)
      for msg_desc in file_desc.message_types_by_name.values():
        for desc in _GetAllMessages(msg_desc):
          try:
            result[desc.full_name] = self._classes[desc]
          except KeyError:
            # This descriptor has no registered class, skip it.
            pass
    return result


_DEFAULT = SymbolDatabase(pool=descriptor_pool.Default())


def Default():
  """Returns the default SymbolDatabase."""
  return _DEFAULT
PK�\�̖��protobuf/unittest_arena_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/unittest_arena.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import unittest_no_arena_import_pb2 as google_dot_protobuf_dot_unittest__no__arena__import__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/unittest_arena.proto',
  package='proto2_arena_unittest',
  syntax='proto2',
  serialized_pb=_b('\n$google/protobuf/unittest_arena.proto\x12\x15proto2_arena_unittest\x1a.google/protobuf/unittest_no_arena_import.proto\"\x1a\n\rNestedMessage\x12\t\n\x01\x64\x18\x01 \x01(\x05\"\xb2\x01\n\x0c\x41renaMessage\x12\x45\n\x17repeated_nested_message\x18\x01 \x03(\x0b\x32$.proto2_arena_unittest.NestedMessage\x12[\n repeated_import_no_arena_message\x18\x02 \x03(\x0b\x32\x31.proto2_arena_unittest.ImportNoArenaNestedMessageB\x03\xf8\x01\x01')
  ,
  dependencies=[google_dot_protobuf_dot_unittest__no__arena__import__pb2.DESCRIPTOR,])




_NESTEDMESSAGE = _descriptor.Descriptor(
  name='NestedMessage',
  full_name='proto2_arena_unittest.NestedMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='d', full_name='proto2_arena_unittest.NestedMessage.d', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=111,
  serialized_end=137,
)


_ARENAMESSAGE = _descriptor.Descriptor(
  name='ArenaMessage',
  full_name='proto2_arena_unittest.ArenaMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='repeated_nested_message', full_name='proto2_arena_unittest.ArenaMessage.repeated_nested_message', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='repeated_import_no_arena_message', full_name='proto2_arena_unittest.ArenaMessage.repeated_import_no_arena_message', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=140,
  serialized_end=318,
)

_ARENAMESSAGE.fields_by_name['repeated_nested_message'].message_type = _NESTEDMESSAGE
_ARENAMESSAGE.fields_by_name['repeated_import_no_arena_message'].message_type = google_dot_protobuf_dot_unittest__no__arena__import__pb2._IMPORTNOARENANESTEDMESSAGE
DESCRIPTOR.message_types_by_name['NestedMessage'] = _NESTEDMESSAGE
DESCRIPTOR.message_types_by_name['ArenaMessage'] = _ARENAMESSAGE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

NestedMessage = _reflection.GeneratedProtocolMessageType('NestedMessage', (_message.Message,), dict(
  DESCRIPTOR = _NESTEDMESSAGE,
  __module__ = 'google.protobuf.unittest_arena_pb2'
  # @@protoc_insertion_point(class_scope:proto2_arena_unittest.NestedMessage)
  ))
_sym_db.RegisterMessage(NestedMessage)

ArenaMessage = _reflection.GeneratedProtocolMessageType('ArenaMessage', (_message.Message,), dict(
  DESCRIPTOR = _ARENAMESSAGE,
  __module__ = 'google.protobuf.unittest_arena_pb2'
  # @@protoc_insertion_point(class_scope:proto2_arena_unittest.ArenaMessage)
  ))
_sym_db.RegisterMessage(ArenaMessage)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\370\001\001'))
# @@protoc_insertion_point(module_scope)
PK�\B�`ٙ�protobuf/__init__.pycnu�[����
���hc@s\dZedkrXyed�je�WqXek
rTed�jee�ZqXXndS(s3.5.0t__main__t
pkg_resourcestpkgutilN(t__version__t__name__t
__import__tdeclare_namespacetImportErrortextend_patht__path__(((s</usr/lib/python2.7/site-packages/google/protobuf/__init__.pyt<module>!s

PK�\_1�99protobuf/timestamp_pb2.pycnu�[����
���hc.@stddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejddddddddddd d!d"dd#ed$dd%dd&dddd'ed(dd)dde�ejdd*dd+dddd!dd,d dd"dd#ed$dd%dd&dddd'ed(dd)dde�gd-gd.gd/gd)dd0eddd1gd2gd3d4d5d6�Zeejd<eje�e	jdejfed7ed8d9��Zeje�ee_ejej �ed:��e_!dS(;i����NiicCs|S(N((tx((sA/usr/lib/python2.7/site-packages/google/protobuf/timestamp_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sA/usr/lib/python2.7/site-packages/google/protobuf/timestamp_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/timestamp.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/timestamp.protogoogle.protobuf"+
	Timestamp
seconds (
nanos (B~
com.google.protobufBTimestampProtoPZ+github.com/golang/protobuf/ptypes/timestamp��GPB�Google.Protobuf.WellKnownTypesbproto3t	Timestampt	full_namesgoogle.protobuf.Timestamptfilenametfiletcontaining_typetfieldstsecondss!google.protobuf.Timestamp.secondstindextnumberittypetcpp_typeitlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionstnanossgoogle.protobuf.Timestamp.nanosit
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti4tserialized_endi_t
DESCRIPTORt
__module__sgoogle.protobuf.timestamp_pb2s~
com.google.protobufBTimestampProtoPZ+github.com/golang/protobuf/ptypes/timestamp��GPB�Google.Protobuf.WellKnownTypes("tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR+t
DescriptortNonetFieldDescriptortFalset
_TIMESTAMPtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((sA/usr/lib/python2.7/site-packages/google/protobuf/timestamp_pb2.pyt<module>sd%					


	PK�\�Ҁ

protobuf/text_encoding.pycnu�[����
���hc@s�dZddlZddlZgedd�D]Zee�^q.Zded<ded<d	ed
<ded<d
ed<ded<gedd�D]Zde^q�gedd�D]Zee�^q�gedd�D]Zde^q�Zded<ded<d	ed
<ded<d
ed<ded<d�Zej	d�Z
gedd�D]Zee�^qVgedd�D]Zde^q{Zd�ZdS(sEncoding related utilities.i����Niis\ti	s\ni
s\ri
s\'i's\"i"s\\i\i s\%03oicsat|tj�rtnd��|rDdj�fd�|D��Sdj�fd�|D��S(s-Escape a bytes string for use in an ascii protocol buffer.

  text.encode('string_escape') does not seem to satisfy our needs as it
  encodes unprintable characters using two-digit hex escapes whereas our
  C++ unescaping function allows hex escapes to be any length.  So,
  "1".encode('string_escape') ends up being "\x011", which will be
  decoded in C++ as a single-character string with char code 0x11.

  Args:
    text: A byte string to be escaped
    as_utf8: Specifies if result should be returned in UTF-8 encoding
  Returns:
    Escaped string
  cSs|S(N((tx((sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pyt<lambda>LtRc3s|]}t�|�VqdS(N(t_cescape_utf8_to_str(t.0tc(tOrd(sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pys	<genexpr>Nsc3s|]}t�|�VqdS(N(t_cescape_byte_to_str(RR(R(sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pys	<genexpr>Os(t
isinstancetsixtstring_typestordtjoin(ttexttas_utf8((RsA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pytCEscape;s!s"(\\+)x([0-9a-fA-F])(?![0-9a-fA-F])cCsld�}tj||�}ttkr4|jd�Sdjd�|D��}|jd�jd�jd�S(sDUnescape a text string with C-style escape sequences to UTF-8 bytes.cSsDt|jd��d@r7|jd�d|jd�S|jd�S(Nitx0ii(tlentgroup(tm((sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pyt
ReplaceHexZst
string_escapeRcss|]}tt|�VqdS(N(t_cescape_highbit_to_strR(RR((sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pys	<genexpr>gstasciitunicode_escapetraw_unicode_escape(t_CUNESCAPE_HEXtsubtstrtbytestdecodeRtencode(R
Rtresult((sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pyt	CUnescapeWs		
	(
t__doc__treR	trangetitchrRRRtcompileRRR!(((sA/usr/lib/python2.7/site-packages/google/protobuf/text_encoding.pyt<module>s,(





I'





	%'PK�\+��*�*protobuf/api_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/api.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import source_context_pb2 as google_dot_protobuf_dot_source__context__pb2
from google.protobuf import type_pb2 as google_dot_protobuf_dot_type__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/api.proto',
  package='google.protobuf',
  syntax='proto3',
  serialized_pb=_b('\n\x19google/protobuf/api.proto\x12\x0fgoogle.protobuf\x1a$google/protobuf/source_context.proto\x1a\x1agoogle/protobuf/type.proto\"\x81\x02\n\x03\x41pi\x12\x0c\n\x04name\x18\x01 \x01(\t\x12(\n\x07methods\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Method\x12(\n\x07options\x18\x03 \x03(\x0b\x32\x17.google.protobuf.Option\x12\x0f\n\x07version\x18\x04 \x01(\t\x12\x36\n\x0esource_context\x18\x05 \x01(\x0b\x32\x1e.google.protobuf.SourceContext\x12&\n\x06mixins\x18\x06 \x03(\x0b\x32\x16.google.protobuf.Mixin\x12\'\n\x06syntax\x18\x07 \x01(\x0e\x32\x17.google.protobuf.Syntax\"\xd5\x01\n\x06Method\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x10request_type_url\x18\x02 \x01(\t\x12\x19\n\x11request_streaming\x18\x03 \x01(\x08\x12\x19\n\x11response_type_url\x18\x04 \x01(\t\x12\x1a\n\x12response_streaming\x18\x05 \x01(\x08\x12(\n\x07options\x18\x06 \x03(\x0b\x32\x17.google.protobuf.Option\x12\'\n\x06syntax\x18\x07 \x01(\x0e\x32\x17.google.protobuf.Syntax\"#\n\x05Mixin\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04root\x18\x02 \x01(\tBu\n\x13\x63om.google.protobufB\x08\x41piProtoP\x01Z+google.golang.org/genproto/protobuf/api;api\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_source__context__pb2.DESCRIPTOR,google_dot_protobuf_dot_type__pb2.DESCRIPTOR,])




_API = _descriptor.Descriptor(
  name='Api',
  full_name='google.protobuf.Api',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.Api.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='methods', full_name='google.protobuf.Api.methods', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.Api.options', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='version', full_name='google.protobuf.Api.version', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='source_context', full_name='google.protobuf.Api.source_context', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='mixins', full_name='google.protobuf.Api.mixins', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='syntax', full_name='google.protobuf.Api.syntax', index=6,
      number=7, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=113,
  serialized_end=370,
)


_METHOD = _descriptor.Descriptor(
  name='Method',
  full_name='google.protobuf.Method',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.Method.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='request_type_url', full_name='google.protobuf.Method.request_type_url', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='request_streaming', full_name='google.protobuf.Method.request_streaming', index=2,
      number=3, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='response_type_url', full_name='google.protobuf.Method.response_type_url', index=3,
      number=4, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='response_streaming', full_name='google.protobuf.Method.response_streaming', index=4,
      number=5, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='options', full_name='google.protobuf.Method.options', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='syntax', full_name='google.protobuf.Method.syntax', index=6,
      number=7, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=373,
  serialized_end=586,
)


_MIXIN = _descriptor.Descriptor(
  name='Mixin',
  full_name='google.protobuf.Mixin',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='google.protobuf.Mixin.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='root', full_name='google.protobuf.Mixin.root', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=588,
  serialized_end=623,
)

_API.fields_by_name['methods'].message_type = _METHOD
_API.fields_by_name['options'].message_type = google_dot_protobuf_dot_type__pb2._OPTION
_API.fields_by_name['source_context'].message_type = google_dot_protobuf_dot_source__context__pb2._SOURCECONTEXT
_API.fields_by_name['mixins'].message_type = _MIXIN
_API.fields_by_name['syntax'].enum_type = google_dot_protobuf_dot_type__pb2._SYNTAX
_METHOD.fields_by_name['options'].message_type = google_dot_protobuf_dot_type__pb2._OPTION
_METHOD.fields_by_name['syntax'].enum_type = google_dot_protobuf_dot_type__pb2._SYNTAX
DESCRIPTOR.message_types_by_name['Api'] = _API
DESCRIPTOR.message_types_by_name['Method'] = _METHOD
DESCRIPTOR.message_types_by_name['Mixin'] = _MIXIN
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Api = _reflection.GeneratedProtocolMessageType('Api', (_message.Message,), dict(
  DESCRIPTOR = _API,
  __module__ = 'google.protobuf.api_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Api)
  ))
_sym_db.RegisterMessage(Api)

Method = _reflection.GeneratedProtocolMessageType('Method', (_message.Message,), dict(
  DESCRIPTOR = _METHOD,
  __module__ = 'google.protobuf.api_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Method)
  ))
_sym_db.RegisterMessage(Method)

Mixin = _reflection.GeneratedProtocolMessageType('Mixin', (_message.Message,), dict(
  DESCRIPTOR = _MIXIN,
  __module__ = 'google.protobuf.api_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Mixin)
  ))
_sym_db.RegisterMessage(Mixin)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.google.protobufB\010ApiProtoP\001Z+google.golang.org/genproto/protobuf/api;api\242\002\003GPB\252\002\036Google.Protobuf.WellKnownTypes'))
# @@protoc_insertion_point(module_scope)
PK�\��ö��protobuf/empty_pb2.pycnu�[����
���hc!@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddgdgdgdgdddedddgd gd!d"d#d$�Zeejd<eje�e	jdejfed%ed&d'��Zeje�ee_ejej�ed(��e_ dS()i����NiicCs|S(N((tx((s=/usr/lib/python2.7/site-packages/google/protobuf/empty_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s=/usr/lib/python2.7/site-packages/google/protobuf/empty_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/empty.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/empty.protogoogle.protobuf"
EmptyBv
com.google.protobufB
EmptyProtoPZ'github.com/golang/protobuf/ptypes/empty��GPB�Google.Protobuf.WellKnownTypesbproto3tEmptyt	full_namesgoogle.protobuf.Emptytfilenametfiletcontaining_typetfieldst
extensionstnested_typest
enum_typestoptionst
is_extendabletextension_rangestoneofstserialized_starti0tserialized_endi7t
DESCRIPTORt
__module__sgoogle.protobuf.empty_pb2sv
com.google.protobufB
EmptyProtoPZ'github.com/golang/protobuf/ptypes/empty��GPB�Google.Protobuf.WellKnownTypes(!tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorRt
DescriptortNonetFalset_EMPTYtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((s=/usr/lib/python2.7/site-packages/google/protobuf/empty_pb2.pyt<module>sJ%			


	PK�\�2�Kff$protobuf/map_proto2_unittest_pb2.pyonu�[����
���hc8@s�1ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZy
ejZWn ek
r�ejjjZnXejd
dddddded�dejg�Zejd
ddddddedejd
dddddddd d�ejd
d!dd"dd"ddd d�ejd
d#dd$dd$ddd d�gd%dddd&d'd(d)�	Zeje�eje�Z ejd
d*dd+dddedejd
d,ddddddd d�ejd
d-dd"dd"ddd d�ejd
d.dd$dd$ddd d�ejd
d/ddddddd d�gd%dddd&d0d(d1�	Z!eje!�eje!�Z"dZ#d"Z$d$Z%dZ&d"Z'd$Z(dZ)ej*d
d2dd3ddded%dd4ej+d
d5dd6dddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@ddAdd"dd$d dBd8dCd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&dKd(dL�Z/ej*d
dMddNddded%dd4ej+d
d5ddOdddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@ddPdd"dd$d dBd8dCd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&dQd(dR�Z0ej*d
dSddTddded%dd4ej+d
dUddVddddWd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
dZdd[dd"dd\d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�gdDgdEe/e0gdFgdddHe,dddIgdJgd&d]d(dR�Z1ej*d
d2dd^ddded%dd4ej+d
d5dd_dddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd`dd"dd$d dBd8dCd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&dad(db�Z2ej*d
dMddcddded%dd4ej+d
d5ddddddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@ddedd"dd$d dBd8dCd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&dfd(dg�Z3ej*d
dhddiddded%dd4ej+d
dUddjddddWd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
dZddkdd"dd\d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�gdDgdEe2e3gdFgdddHe,dddIgdJgd&dld(dg�Z4ej*d
dmddnddded%dd4ej+d
d5ddodddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@ddpdd"dd$d dBd8dCd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&dqd(dr�Z5ej*d
dsddtddded%dd4ej+d
duddvdddd"d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�gdDgdEe5gdFgdddHe,dddIgdJgd&dwd(dr�Z6ej*d
dxddyddded%dd4ej+d
d5ddzdddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd{dd"dd$d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d|d(d}�Z7ej*d
d~ddddded%dd4ej+d
d�dd�dddd"d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�gdDgdEe7gdFgdddHe,dddIgdJgd&d�d(d}�Z8ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d7d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z9ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d dd8d$d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z:ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8dd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z;ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d�d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z<ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z=ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d$d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z>ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8dd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z?ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d�d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��Z@ej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d"d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��ZAej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d$d9d"d:e,d;dd<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��ZBej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d dCd8d�d9d"d:e,d;e,d<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��ZCej*d
d�dd�ddded%dd4ej+d
d5dd�dddd"d d�d8d�d9d"d:e,d;ed��jDd��d<dd=dd%dd>e,d?dddde�ej+d
d@dd�dd"dd$d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdej-ej.�edG��dHe,dddIgdJgd&d�d(d��ZEej*d
d�dd�ddded%dd4ej+d
d�dd�dddd"d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd"dd$d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd$ddd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dddd�d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd�dd7d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd7dd�d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd�dd�d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd�ddCd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�ddCdd�d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�dd�ddYd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�ddYddXd dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�ej+d
d�dd�ddXdd�d dXd8dYd9dd:e,d;gd<dd=dd%dd>e,d?dddde�gdDgdEe9e:e;e<e=e>e?e@eAeBeCeEgdFgdddHe,dddIgdJgd&d�d(d��ZFej*d
d�dd�ddded%dd4ej+d
d�dd�dddd"d dXd8dYd9d"d:e,d;dd<dd=dd%dd>e,d?dddde�gdDgdEgdFgdddHe,dddIgdJgd&d�d(d��ZGee/jHd@_Ie1e/_Jee0jHd@_Ie1e0_Je/e1jHdU_Ke0e1jHdZ_Ke!e2jHd@_Ie4e2_Je!e3jHd@_Ie4e3_Je2e4jHdU_Ke3e4jHdZ_KejLe5jHd@_Ie6e5_Je5e6jHdu_Ke8e7_Je7e8jHd�_Ke8e9jHd@_KeFe9_Je8e:jHd@_KeFe:_Je8e;jHd@_KeFe;_Je8e<jHd@_KeFe<_Je8e=jHd@_KeFe=_Je8e>jHd@_KeFe>_Je8e?jHd@_KeFe?_Je8e@jHd@_KeFe@_Je8eAjHd@_KeFeA_Je8eBjHd@_KeFeB_Je8eCjHd@_KeFeC_Je8eEjHd@_KeFeE_Je9eFjHd�_Ke:eFjHd�_Ke;eFjHd�_Ke<eFjHd�_Ke=eFjHd�_Ke>eFjHd�_Ke?eFjHd�_Ke@eFjHd�_KeAeFjHd�_KeBeFjHd�_KeCeFjHd�_KeEeFjHd�_KeFeGjHd�_Ke1ejMdS<e4ejMdh<e6ejMds<e8ejMd~<eFejMd�<eGejMd�<eejNd<e!ejNd*<ejOe�ejPdSe	jQfeRd2ejPd2e	jQfeRd�e/d�d���dMejPdMe	jQfeRd�e0d�d���d�e1d�d���ZSejTeS�ejTeSjU�ejTeSjV�ejPdhe	jQfeRd2ejPd2e	jQfeRd�e2d�d���dMejPdMe	jQfeRd�e3d�d���d�e4d�d���ZWejTeW�ejTeWjU�ejTeWjV�ejPdse	jQfeRdmejPdme	jQfeRd�e5d�d���d�e6d�d���ZXejTeX�ejTeXjY�ejPd~e	jQfeRdxejPdxe	jQfeRd�e7d�d���d�e8d�d���ZZejTeZ�ejTeZj[�ejPd�e	jQfeRd�ejPd�e	jQfeRd�e9d�d���d�ejPd�e	jQfeRd�e:d�d���d�ejPd�e	jQfeRd�e;d�d���d�ejPd�e	jQfeRd�e<d�d���d�ejPd�e	jQfeRd�e=d�d���d�ejPd�e	jQfeRd�e>d�d���d�ejPd�e	jQfeRd�e?d�d���d�ejPd�e	jQfeRd�e@d�d���d�ejPd�e	jQfeRd�eAd�d���d�ejPd�e	jQfeRd�eBd�d���d�ejPd�e	jQfeRd�eCd�d���d�ejPd�e	jQfeRd�eEd�d���d�eFd�d���Z\ejTe\�ejTe\j]�ejTe\j^�ejTe\j_�ejTe\j`�ejTe\ja�ejTe\jb�ejTe\jc�ejTe\jd�ejTe\je�ejTe\jf�ejTe\jg�ejTe\jh�ejPd�e	jQfeRd�eGd�d���ZiejTei�eje_kej-ejl�ed���e_meje/_kej-ej.�edG��e/_meje0_kej-ej.�edG��e0_meje2_kej-ej.�edG��e2_meje3_kej-ej.�edG��e3_meje5_kej-ej.�edG��e5_meje7_kej-ej.�edG��e7_meje9_kej-ej.�edG��e9_meje:_kej-ej.�edG��e:_meje;_kej-ej.�edG��e;_meje<_kej-ej.�edG��e<_meje=_kej-ej.�edG��e=_meje>_kej-ej.�edG��e>_meje?_kej-ej.�edG��e?_meje@_kej-ej.�edG��e@_mejeA_kej-ej.�edG��eA_mejeB_kej-ej.�edG��eB_mejeC_kej-ej.�edG��eC_mejeE_kej-ej.�edG��eE_mdS(�i����NiicCs|S(N((tx((sK/usr/lib/python2.7/site-packages/google/protobuf/map_proto2_unittest_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sK/usr/lib/python2.7/site-packages/google/protobuf/map_proto2_unittest_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_import_pb2tnames)google/protobuf/map_proto2_unittest.prototpackagetprotobuf_unittesttsyntaxtproto2t
serialized_pbsj
)google/protobuf/map_proto2_unittest.protoprotobuf_unittest%google/protobuf/unittest_import.proto"�
TestEnumMapJ
known_map_fielde (21.protobuf_unittest.TestEnumMap.KnownMapFieldEntryN
unknown_map_fieldf (23.protobuf_unittest.TestEnumMap.UnknownMapFieldEntryV
KnownMapFieldEntry
key (/
value (2 .protobuf_unittest.Proto2MapEnum:8X
UnknownMapFieldEntry
key (/
value (2 .protobuf_unittest.Proto2MapEnum:8"�
TestEnumMapPlusExtraS
known_map_fielde (2:.protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntryW
unknown_map_fieldf (2<.protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry_
KnownMapFieldEntry
key (8
value (2).protobuf_unittest.Proto2MapEnumPlusExtra:8a
UnknownMapFieldEntry
key (8
value (2).protobuf_unittest.Proto2MapEnumPlusExtra:8"�
TestImportEnumMapP
import_enum_amp (27.protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry`
ImportEnumAmpEntry
key (9
value (2*.protobuf_unittest_import.ImportEnumForMap:8"m

TestIntIntMap2
m (2'.protobuf_unittest.TestIntIntMap.MEntry(
MEntry
key (
value (:8"�
TestMaps8
m_int32 (2'.protobuf_unittest.TestMaps.MInt32Entry8
m_int64 (2'.protobuf_unittest.TestMaps.MInt64Entry:
m_uint32 (2(.protobuf_unittest.TestMaps.MUint32Entry:
m_uint64 (2(.protobuf_unittest.TestMaps.MUint64Entry:
m_sint32 (2(.protobuf_unittest.TestMaps.MSint32Entry:
m_sint64 (2(.protobuf_unittest.TestMaps.MSint64Entry<
	m_fixed32 (2).protobuf_unittest.TestMaps.MFixed32Entry<
	m_fixed64 (2).protobuf_unittest.TestMaps.MFixed64Entry>

m_sfixed32	 (2*.protobuf_unittest.TestMaps.MSfixed32Entry>

m_sfixed64
 (2*.protobuf_unittest.TestMaps.MSfixed64Entry6
m_bool (2&.protobuf_unittest.TestMaps.MBoolEntry:
m_string (2(.protobuf_unittest.TestMaps.MStringEntryO
MInt32Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8O
MInt64Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8P
MUint32Entry
key (
/
value (2 .protobuf_unittest.TestIntIntMap:8P
MUint64Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8P
MSint32Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8P
MSint64Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8Q

MFixed32Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8Q

MFixed64Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8R
MSfixed32Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8R
MSfixed64Entry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8N

MBoolEntry
key (/
value (2 .protobuf_unittest.TestIntIntMap:8P
MStringEntry
key (	/
value (2 .protobuf_unittest.TestIntIntMap:8"<
TestSubmessageMaps&
m (2.protobuf_unittest.TestMaps*Z

Proto2MapEnum
PROTO2_MAP_ENUM_FOO
PROTO2_MAP_ENUM_BAR
PROTO2_MAP_ENUM_BAZ*�
Proto2MapEnumPlusExtra
E_PROTO2_MAP_ENUM_FOO
E_PROTO2_MAP_ENUM_BAR
E_PROTO2_MAP_ENUM_BAZ
E_PROTO2_MAP_ENUM_EXTRAB�tdependenciest
Proto2MapEnumt	full_namesprotobuf_unittest.Proto2MapEnumtfilenametfiletvaluestPROTO2_MAP_ENUM_FOOtindextnumbertoptionsttypetPROTO2_MAP_ENUM_BARitPROTO2_MAP_ENUM_BAZitcontaining_typetserialized_starti�tserialized_endi�tProto2MapEnumPlusExtras(protobuf_unittest.Proto2MapEnumPlusExtratE_PROTO2_MAP_ENUM_FOOtE_PROTO2_MAP_ENUM_BARtE_PROTO2_MAP_ENUM_BAZtE_PROTO2_MAP_ENUM_EXTRAi�ietKnownMapFieldEntrys0protobuf_unittest.TestEnumMap.KnownMapFieldEntrytfieldstkeys4protobuf_unittest.TestEnumMap.KnownMapFieldEntry.keyitcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetvalues6protobuf_unittest.TestEnumMap.KnownMapFieldEntry.valueiit
extensionstnested_typest
enum_typess8t
is_extendabletextension_rangestoneofsiiitUnknownMapFieldEntrys2protobuf_unittest.TestEnumMap.UnknownMapFieldEntrys6protobuf_unittest.TestEnumMap.UnknownMapFieldEntry.keys8protobuf_unittest.TestEnumMap.UnknownMapFieldEntry.valueiki�tTestEnumMapsprotobuf_unittest.TestEnumMaptknown_map_fields-protobuf_unittest.TestEnumMap.known_map_fieldieii
tunknown_map_fields/protobuf_unittest.TestEnumMap.unknown_map_fieldifihs9protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntrys=protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntry.keys?protobuf_unittest.TestEnumMapPlusExtra.KnownMapFieldEntry.valuei�i�s;protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntrys?protobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry.keysAprotobuf_unittest.TestEnumMapPlusExtra.UnknownMapFieldEntry.valuei�iNtTestEnumMapPlusExtras&protobuf_unittest.TestEnumMapPlusExtras6protobuf_unittest.TestEnumMapPlusExtra.known_map_fields8protobuf_unittest.TestEnumMapPlusExtra.unknown_map_fieldi�tImportEnumAmpEntrys6protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntrys:protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry.keys<protobuf_unittest.TestImportEnumMap.ImportEnumAmpEntry.valuei�itTestImportEnumMaps#protobuf_unittest.TestImportEnumMaptimport_enum_amps3protobuf_unittest.TestImportEnumMap.import_enum_ampiQtMEntrys&protobuf_unittest.TestIntIntMap.MEntrys*protobuf_unittest.TestIntIntMap.MEntry.keys,protobuf_unittest.TestIntIntMap.MEntry.valuei_i�t
TestIntIntMapsprotobuf_unittest.TestIntIntMaptms!protobuf_unittest.TestIntIntMap.mitMInt32Entrys&protobuf_unittest.TestMaps.MInt32Entrys*protobuf_unittest.TestMaps.MInt32Entry.keys,protobuf_unittest.TestMaps.MInt32Entry.valueiji�tMInt64Entrys&protobuf_unittest.TestMaps.MInt64Entrys*protobuf_unittest.TestMaps.MInt64Entry.keys,protobuf_unittest.TestMaps.MInt64Entry.valuei�i
tMUint32Entrys'protobuf_unittest.TestMaps.MUint32Entrys+protobuf_unittest.TestMaps.MUint32Entry.keyi
s-protobuf_unittest.TestMaps.MUint32Entry.valueii\tMUint64Entrys'protobuf_unittest.TestMaps.MUint64Entrys+protobuf_unittest.TestMaps.MUint64Entry.keyis-protobuf_unittest.TestMaps.MUint64Entry.valuei^i�tMSint32Entrys'protobuf_unittest.TestMaps.MSint32Entrys+protobuf_unittest.TestMaps.MSint32Entry.keyis-protobuf_unittest.TestMaps.MSint32Entry.valuei�i	tMSint64Entrys'protobuf_unittest.TestMaps.MSint64Entrys+protobuf_unittest.TestMaps.MSint64Entry.keyis-protobuf_unittest.TestMaps.MSint64Entry.valuei	iR	t
MFixed32Entrys(protobuf_unittest.TestMaps.MFixed32Entrys,protobuf_unittest.TestMaps.MFixed32Entry.keyis.protobuf_unittest.TestMaps.MFixed32Entry.valueiT	i�	t
MFixed64Entrys(protobuf_unittest.TestMaps.MFixed64Entrys,protobuf_unittest.TestMaps.MFixed64Entry.keyis.protobuf_unittest.TestMaps.MFixed64Entry.valuei�	i�	tMSfixed32Entrys)protobuf_unittest.TestMaps.MSfixed32Entrys-protobuf_unittest.TestMaps.MSfixed32Entry.keyis/protobuf_unittest.TestMaps.MSfixed32Entry.valuei�	iL
tMSfixed64Entrys)protobuf_unittest.TestMaps.MSfixed64Entrys-protobuf_unittest.TestMaps.MSfixed64Entry.keyis/protobuf_unittest.TestMaps.MSfixed64Entry.valueiN
i�
t
MBoolEntrys%protobuf_unittest.TestMaps.MBoolEntrys)protobuf_unittest.TestMaps.MBoolEntry.keys+protobuf_unittest.TestMaps.MBoolEntry.valuei�
i�
tMStringEntrys'protobuf_unittest.TestMaps.MStringEntrys+protobuf_unittest.TestMaps.MStringEntry.keyi	Rsutf-8s-protobuf_unittest.TestMaps.MStringEntry.valuei�
iBtTestMapssprotobuf_unittest.TestMapstm_int32s"protobuf_unittest.TestMaps.m_int32tm_int64s"protobuf_unittest.TestMaps.m_int64tm_uint32s#protobuf_unittest.TestMaps.m_uint32tm_uint64s#protobuf_unittest.TestMaps.m_uint64tm_sint32s#protobuf_unittest.TestMaps.m_sint32tm_sint64s#protobuf_unittest.TestMaps.m_sint64t	m_fixed32s$protobuf_unittest.TestMaps.m_fixed32t	m_fixed64s$protobuf_unittest.TestMaps.m_fixed64t
m_sfixed32s%protobuf_unittest.TestMaps.m_sfixed32t
m_sfixed64s%protobuf_unittest.TestMaps.m_sfixed64tm_bools!protobuf_unittest.TestMaps.m_booltm_strings#protobuf_unittest.TestMaps.m_stringii�tTestSubmessageMapss$protobuf_unittest.TestSubmessageMapss&protobuf_unittest.TestSubmessageMaps.miDi�t
DESCRIPTORt
__module__s'google.protobuf.map_proto2_unittest_pb2s�(ntsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt-google_dot_protobuf_dot_unittest__import__pb2t5google_dot_protobuf_dot_unittest__import__public__pb2tAttributeErrortgoogletprotobuftunittest_import_public_pb2tFileDescriptorR^tEnumDescriptortNonetEnumValueDescriptort_PROTO2MAPENUMtRegisterEnumDescriptortEnumTypeWrapperRt_PROTO2MAPENUMPLUSEXTRAR"RRRR#R$R%R&t
DescriptortFieldDescriptortFalset
_ParseOptionstMessageOptionst_TESTENUMMAP_KNOWNMAPFIELDENTRYt!_TESTENUMMAP_UNKNOWNMAPFIELDENTRYt_TESTENUMMAPt(_TESTENUMMAPPLUSEXTRA_KNOWNMAPFIELDENTRYt*_TESTENUMMAPPLUSEXTRA_UNKNOWNMAPFIELDENTRYt_TESTENUMMAPPLUSEXTRAt%_TESTIMPORTENUMMAP_IMPORTENUMAMPENTRYt_TESTIMPORTENUMMAPt_TESTINTINTMAP_MENTRYt_TESTINTINTMAPt_TESTMAPS_MINT32ENTRYt_TESTMAPS_MINT64ENTRYt_TESTMAPS_MUINT32ENTRYt_TESTMAPS_MUINT64ENTRYt_TESTMAPS_MSINT32ENTRYt_TESTMAPS_MSINT64ENTRYt_TESTMAPS_MFIXED32ENTRYt_TESTMAPS_MFIXED64ENTRYt_TESTMAPS_MSFIXED32ENTRYt_TESTMAPS_MSFIXED64ENTRYt_TESTMAPS_MBOOLENTRYtdecodet_TESTMAPS_MSTRINGENTRYt	_TESTMAPSt_TESTSUBMESSAGEMAPStfields_by_nameR/RR.t_IMPORTENUMFORMAPtmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR:tRegisterMessageR'R9R=R?R>RBRARPRDRERFRGRHRIRJRKRLRMRNROR]tTruethas_optionstFileOptionst_options(((sK/usr/lib/python2.7/site-packages/google/protobuf/map_proto2_unittest_pb2.pyt<module>s$%

						
						
																																																																																																					*																						














	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	PK�\��%2����protobuf/descriptor.pynu�[���# Protocol Buffers - Google's data interchange format
# Copyright 2008 Google Inc.  All rights reserved.
# https://developers.google.com/protocol-buffers/
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

"""Descriptors essentially contain exactly the information found in a .proto
file, in types that make this information accessible in Python.
"""

__author__ = 'robinson@google.com (Will Robinson)'

import six

from google.protobuf.internal import api_implementation

_USE_C_DESCRIPTORS = False
if api_implementation.Type() == 'cpp':
  # Used by MakeDescriptor in cpp mode
  import os
  import uuid
  from google.protobuf.pyext import _message
  _USE_C_DESCRIPTORS = getattr(_message, '_USE_C_DESCRIPTORS', False)


class Error(Exception):
  """Base error for this module."""


class TypeTransformationError(Error):
  """Error transforming between python proto type and corresponding C++ type."""


if _USE_C_DESCRIPTORS:
  # This metaclass allows to override the behavior of code like
  #     isinstance(my_descriptor, FieldDescriptor)
  # and make it return True when the descriptor is an instance of the extension
  # type written in C++.
  class DescriptorMetaclass(type):
    def __instancecheck__(cls, obj):
      if super(DescriptorMetaclass, cls).__instancecheck__(obj):
        return True
      if isinstance(obj, cls._C_DESCRIPTOR_CLASS):
        return True
      return False
else:
  # The standard metaclass; nothing changes.
  DescriptorMetaclass = type


class DescriptorBase(six.with_metaclass(DescriptorMetaclass)):

  """Descriptors base class.

  This class is the base of all descriptor classes. It provides common options
  related functionality.

  Attributes:
    has_options:  True if the descriptor has non-default options.  Usually it
        is not necessary to read this -- just call GetOptions() which will
        happily return the default instance.  However, it's sometimes useful
        for efficiency, and also useful inside the protobuf implementation to
        avoid some bootstrapping issues.
  """

  if _USE_C_DESCRIPTORS:
    # The class, or tuple of classes, that are considered as "virtual
    # subclasses" of this descriptor class.
    _C_DESCRIPTOR_CLASS = ()

  def __init__(self, options, options_class_name):
    """Initialize the descriptor given its options message and the name of the
    class of the options message. The name of the class is required in case
    the options message is None and has to be created.
    """
    self._options = options
    self._options_class_name = options_class_name

    # Does this descriptor have non-default options?
    self.has_options = options is not None

  def _SetOptions(self, options, options_class_name):
    """Sets the descriptor's options

    This function is used in generated proto2 files to update descriptor
    options. It must not be used outside proto2.
    """
    self._options = options
    self._options_class_name = options_class_name

    # Does this descriptor have non-default options?
    self.has_options = options is not None

  def GetOptions(self):
    """Retrieves descriptor options.

    This method returns the options set or creates the default options for the
    descriptor.
    """
    if self._options:
      return self._options
    from google.protobuf import descriptor_pb2
    try:
      options_class = getattr(descriptor_pb2, self._options_class_name)
    except AttributeError:
      raise RuntimeError('Unknown options class name %s!' %
                         (self._options_class_name))
    self._options = options_class()
    return self._options


class _NestedDescriptorBase(DescriptorBase):
  """Common class for descriptors that can be nested."""

  def __init__(self, options, options_class_name, name, full_name,
               file, containing_type, serialized_start=None,
               serialized_end=None):
    """Constructor.

    Args:
      options: Protocol message options or None
        to use default message options.
      options_class_name: (str) The class name of the above options.

      name: (str) Name of this protocol message type.
      full_name: (str) Fully-qualified name of this protocol message type,
        which will include protocol "package" name and the name of any
        enclosing types.
      file: (FileDescriptor) Reference to file info.
      containing_type: if provided, this is a nested descriptor, with this
        descriptor as parent, otherwise None.
      serialized_start: The start index (inclusive) in block in the
        file.serialized_pb that describes this descriptor.
      serialized_end: The end index (exclusive) in block in the
        file.serialized_pb that describes this descriptor.
    """
    super(_NestedDescriptorBase, self).__init__(
        options, options_class_name)

    self.name = name
    # TODO(falk): Add function to calculate full_name instead of having it in
    #             memory?
    self.full_name = full_name
    self.file = file
    self.containing_type = containing_type

    self._serialized_start = serialized_start
    self._serialized_end = serialized_end

  def CopyToProto(self, proto):
    """Copies this to the matching proto in descriptor_pb2.

    Args:
      proto: An empty proto instance from descriptor_pb2.

    Raises:
      Error: If self couldnt be serialized, due to to few constructor arguments.
    """
    if (self.file is not None and
        self._serialized_start is not None and
        self._serialized_end is not None):
      proto.ParseFromString(self.file.serialized_pb[
          self._serialized_start:self._serialized_end])
    else:
      raise Error('Descriptor does not contain serialization.')


class Descriptor(_NestedDescriptorBase):

  """Descriptor for a protocol message type.

  A Descriptor instance has the following attributes:

    name: (str) Name of this protocol message type.
    full_name: (str) Fully-qualified name of this protocol message type,
      which will include protocol "package" name and the name of any
      enclosing types.

    containing_type: (Descriptor) Reference to the descriptor of the
      type containing us, or None if this is top-level.

    fields: (list of FieldDescriptors) Field descriptors for all
      fields in this type.
    fields_by_number: (dict int -> FieldDescriptor) Same FieldDescriptor
      objects as in |fields|, but indexed by "number" attribute in each
      FieldDescriptor.
    fields_by_name: (dict str -> FieldDescriptor) Same FieldDescriptor
      objects as in |fields|, but indexed by "name" attribute in each
      FieldDescriptor.
    fields_by_camelcase_name: (dict str -> FieldDescriptor) Same
      FieldDescriptor objects as in |fields|, but indexed by
      "camelcase_name" attribute in each FieldDescriptor.

    nested_types: (list of Descriptors) Descriptor references
      for all protocol message types nested within this one.
    nested_types_by_name: (dict str -> Descriptor) Same Descriptor
      objects as in |nested_types|, but indexed by "name" attribute
      in each Descriptor.

    enum_types: (list of EnumDescriptors) EnumDescriptor references
      for all enums contained within this type.
    enum_types_by_name: (dict str ->EnumDescriptor) Same EnumDescriptor
      objects as in |enum_types|, but indexed by "name" attribute
      in each EnumDescriptor.
    enum_values_by_name: (dict str -> EnumValueDescriptor) Dict mapping
      from enum value name to EnumValueDescriptor for that value.

    extensions: (list of FieldDescriptor) All extensions defined directly
      within this message type (NOT within a nested type).
    extensions_by_name: (dict, string -> FieldDescriptor) Same FieldDescriptor
      objects as |extensions|, but indexed by "name" attribute of each
      FieldDescriptor.

    is_extendable:  Does this type define any extension ranges?

    oneofs: (list of OneofDescriptor) The list of descriptors for oneof fields
      in this message.
    oneofs_by_name: (dict str -> OneofDescriptor) Same objects as in |oneofs|,
      but indexed by "name" attribute.

    file: (FileDescriptor) Reference to file descriptor.
  """

  if _USE_C_DESCRIPTORS:
    _C_DESCRIPTOR_CLASS = _message.Descriptor

    def __new__(cls, name, full_name, filename, containing_type, fields,
                nested_types, enum_types, extensions, options=None,
                is_extendable=True, extension_ranges=None, oneofs=None,
                file=None, serialized_start=None, serialized_end=None,  # pylint: disable=redefined-builtin
                syntax=None):
      _message.Message._CheckCalledFromGeneratedFile()
      return _message.default_pool.FindMessageTypeByName(full_name)

  # NOTE(tmarek): The file argument redefining a builtin is nothing we can
  # fix right now since we don't know how many clients already rely on the
  # name of the argument.
  def __init__(self, name, full_name, filename, containing_type, fields,
               nested_types, enum_types, extensions, options=None,
               is_extendable=True, extension_ranges=None, oneofs=None,
               file=None, serialized_start=None, serialized_end=None,  # pylint: disable=redefined-builtin
               syntax=None):
    """Arguments to __init__() are as described in the description
    of Descriptor fields above.

    Note that filename is an obsolete argument, that is not used anymore.
    Please use file.name to access this as an attribute.
    """
    super(Descriptor, self).__init__(
        options, 'MessageOptions', name, full_name, file,
        containing_type, serialized_start=serialized_start,
        serialized_end=serialized_end)

    # We have fields in addition to fields_by_name and fields_by_number,
    # so that:
    #   1. Clients can index fields by "order in which they're listed."
    #   2. Clients can easily iterate over all fields with the terse
    #      syntax: for f in descriptor.fields: ...
    self.fields = fields
    for field in self.fields:
      field.containing_type = self
    self.fields_by_number = dict((f.number, f) for f in fields)
    self.fields_by_name = dict((f.name, f) for f in fields)
    self._fields_by_camelcase_name = None

    self.nested_types = nested_types
    for nested_type in nested_types:
      nested_type.containing_type = self
    self.nested_types_by_name = dict((t.name, t) for t in nested_types)

    self.enum_types = enum_types
    for enum_type in self.enum_types:
      enum_type.containing_type = self
    self.enum_types_by_name = dict((t.name, t) for t in enum_types)
    self.enum_values_by_name = dict(
        (v.name, v) for t in enum_types for v in t.values)

    self.extensions = extensions
    for extension in self.extensions:
      extension.extension_scope = self
    self.extensions_by_name = dict((f.name, f) for f in extensions)
    self.is_extendable = is_extendable
    self.extension_ranges = extension_ranges
    self.oneofs = oneofs if oneofs is not None else []
    self.oneofs_by_name = dict((o.name, o) for o in self.oneofs)
    for oneof in self.oneofs:
      oneof.containing_type = self
    self.syntax = syntax or "proto2"

  @property
  def fields_by_camelcase_name(self):
    if self._fields_by_camelcase_name is None:
      self._fields_by_camelcase_name = dict(
          (f.camelcase_name, f) for f in self.fields)
    return self._fields_by_camelcase_name

  def EnumValueName(self, enum, value):
    """Returns the string name of an enum value.

    This is just a small helper method to simplify a common operation.

    Args:
      enum: string name of the Enum.
      value: int, value of the enum.

    Returns:
      string name of the enum value.

    Raises:
      KeyError if either the Enum doesn't exist or the value is not a valid
        value for the enum.
    """
    return self.enum_types_by_name[enum].values_by_number[value].name

  def CopyToProto(self, proto):
    """Copies this to a descriptor_pb2.DescriptorProto.

    Args:
      proto: An empty descriptor_pb2.DescriptorProto.
    """
    # This function is overridden to give a better doc comment.
    super(Descriptor, self).CopyToProto(proto)


# TODO(robinson): We should have aggressive checking here,
# for example:
#   * If you specify a repeated field, you should not be allowed
#     to specify a default value.
#   * [Other examples here as needed].
#
# TODO(robinson): for this and other *Descriptor classes, we
# might also want to lock things down aggressively (e.g.,
# prevent clients from setting the attributes).  Having
# stronger invariants here in general will reduce the number
# of runtime checks we must do in reflection.py...
class FieldDescriptor(DescriptorBase):

  """Descriptor for a single field in a .proto file.

  A FieldDescriptor instance has the following attributes:

    name: (str) Name of this field, exactly as it appears in .proto.
    full_name: (str) Name of this field, including containing scope.  This is
      particularly relevant for extensions.
    camelcase_name: (str) Camelcase name of this field.
    index: (int) Dense, 0-indexed index giving the order that this
      field textually appears within its message in the .proto file.
    number: (int) Tag number declared for this field in the .proto file.

    type: (One of the TYPE_* constants below) Declared type.
    cpp_type: (One of the CPPTYPE_* constants below) C++ type used to
      represent this field.

    label: (One of the LABEL_* constants below) Tells whether this
      field is optional, required, or repeated.
    has_default_value: (bool) True if this field has a default value defined,
      otherwise false.
    default_value: (Varies) Default value of this field.  Only
      meaningful for non-repeated scalar fields.  Repeated fields
      should always set this to [], and non-repeated composite
      fields should always set this to None.

    containing_type: (Descriptor) Descriptor of the protocol message
      type that contains this field.  Set by the Descriptor constructor
      if we're passed into one.
      Somewhat confusingly, for extension fields, this is the
      descriptor of the EXTENDED message, not the descriptor
      of the message containing this field.  (See is_extension and
      extension_scope below).
    message_type: (Descriptor) If a composite field, a descriptor
      of the message type contained in this field.  Otherwise, this is None.
    enum_type: (EnumDescriptor) If this field contains an enum, a
      descriptor of that enum.  Otherwise, this is None.

    is_extension: True iff this describes an extension field.
    extension_scope: (Descriptor) Only meaningful if is_extension is True.
      Gives the message that immediately contains this extension field.
      Will be None iff we're a top-level (file-level) extension field.

    options: (descriptor_pb2.FieldOptions) Protocol message field options or
      None to use default field options.

    containing_oneof: (OneofDescriptor) If the field is a member of a oneof
      union, contains its descriptor. Otherwise, None.

    file: (FileDescriptor) Reference to file descriptor.
  """

  # Must be consistent with C++ FieldDescriptor::Type enum in
  # descriptor.h.
  #
  # TODO(robinson): Find a way to eliminate this repetition.
  TYPE_DOUBLE         = 1
  TYPE_FLOAT          = 2
  TYPE_INT64          = 3
  TYPE_UINT64         = 4
  TYPE_INT32          = 5
  TYPE_FIXED64        = 6
  TYPE_FIXED32        = 7
  TYPE_BOOL           = 8
  TYPE_STRING         = 9
  TYPE_GROUP          = 10
  TYPE_MESSAGE        = 11
  TYPE_BYTES          = 12
  TYPE_UINT32         = 13
  TYPE_ENUM           = 14
  TYPE_SFIXED32       = 15
  TYPE_SFIXED64       = 16
  TYPE_SINT32         = 17
  TYPE_SINT64         = 18
  MAX_TYPE            = 18

  # Must be consistent with C++ FieldDescriptor::CppType enum in
  # descriptor.h.
  #
  # TODO(robinson): Find a way to eliminate this repetition.
  CPPTYPE_INT32       = 1
  CPPTYPE_INT64       = 2
  CPPTYPE_UINT32      = 3
  CPPTYPE_UINT64      = 4
  CPPTYPE_DOUBLE      = 5
  CPPTYPE_FLOAT       = 6
  CPPTYPE_BOOL        = 7
  CPPTYPE_ENUM        = 8
  CPPTYPE_STRING      = 9
  CPPTYPE_MESSAGE     = 10
  MAX_CPPTYPE         = 10

  _PYTHON_TO_CPP_PROTO_TYPE_MAP = {
      TYPE_DOUBLE: CPPTYPE_DOUBLE,
      TYPE_FLOAT: CPPTYPE_FLOAT,
      TYPE_ENUM: CPPTYPE_ENUM,
      TYPE_INT64: CPPTYPE_INT64,
      TYPE_SINT64: CPPTYPE_INT64,
      TYPE_SFIXED64: CPPTYPE_INT64,
      TYPE_UINT64: CPPTYPE_UINT64,
      TYPE_FIXED64: CPPTYPE_UINT64,
      TYPE_INT32: CPPTYPE_INT32,
      TYPE_SFIXED32: CPPTYPE_INT32,
      TYPE_SINT32: CPPTYPE_INT32,
      TYPE_UINT32: CPPTYPE_UINT32,
      TYPE_FIXED32: CPPTYPE_UINT32,
      TYPE_BYTES: CPPTYPE_STRING,
      TYPE_STRING: CPPTYPE_STRING,
      TYPE_BOOL: CPPTYPE_BOOL,
      TYPE_MESSAGE: CPPTYPE_MESSAGE,
      TYPE_GROUP: CPPTYPE_MESSAGE
      }

  # Must be consistent with C++ FieldDescriptor::Label enum in
  # descriptor.h.
  #
  # TODO(robinson): Find a way to eliminate this repetition.
  LABEL_OPTIONAL      = 1
  LABEL_REQUIRED      = 2
  LABEL_REPEATED      = 3
  MAX_LABEL           = 3

  # Must be consistent with C++ constants kMaxNumber, kFirstReservedNumber,
  # and kLastReservedNumber in descriptor.h
  MAX_FIELD_NUMBER = (1 << 29) - 1
  FIRST_RESERVED_FIELD_NUMBER = 19000
  LAST_RESERVED_FIELD_NUMBER = 19999

  if _USE_C_DESCRIPTORS:
    _C_DESCRIPTOR_CLASS = _message.FieldDescriptor

    def __new__(cls, name, full_name, index, number, type, cpp_type, label,
                default_value, message_type, enum_type, containing_type,
                is_extension, extension_scope, options=None,
                has_default_value=True, containing_oneof=None, json_name=None,
                file=None):
      _message.Message._CheckCalledFromGeneratedFile()
      if is_extension:
        return _message.default_pool.FindExtensionByName(full_name)
      else:
        return _message.default_pool.FindFieldByName(full_name)

  def __init__(self, name, full_name, index, number, type, cpp_type, label,
               default_value, message_type, enum_type, containing_type,
               is_extension, extension_scope, options=None,
               has_default_value=True, containing_oneof=None, json_name=None,
               file=None):
    """The arguments are as described in the description of FieldDescriptor
    attributes above.

    Note that containing_type may be None, and may be set later if necessary
    (to deal with circular references between message types, for example).
    Likewise for extension_scope.
    """
    super(FieldDescriptor, self).__init__(options, 'FieldOptions')
    self.name = name
    self.full_name = full_name
    self.file = file
    self._camelcase_name = None
    if json_name is None:
      self.json_name = _ToJsonName(name)
    else:
      self.json_name = json_name
    self.index = index
    self.number = number
    self.type = type
    self.cpp_type = cpp_type
    self.label = label
    self.has_default_value = has_default_value
    self.default_value = default_value
    self.containing_type = containing_type
    self.message_type = message_type
    self.enum_type = enum_type
    self.is_extension = is_extension
    self.extension_scope = extension_scope
    self.containing_oneof = containing_oneof
    if api_implementation.Type() == 'cpp':
      if is_extension:
        self._cdescriptor = _message.default_pool.FindExtensionByName(full_name)
      else:
        self._cdescriptor = _message.default_pool.FindFieldByName(full_name)
    else:
      self._cdescriptor = None

  @property
  def camelcase_name(self):
    if self._camelcase_name is None:
      self._camelcase_name = _ToCamelCase(self.name)
    return self._camelcase_name

  @staticmethod
  def ProtoTypeToCppProtoType(proto_type):
    """Converts from a Python proto type to a C++ Proto Type.

    The Python ProtocolBuffer classes specify both the 'Python' datatype and the
    'C++' datatype - and they're not the same. This helper method should
    translate from one to another.

    Args:
      proto_type: the Python proto type (descriptor.FieldDescriptor.TYPE_*)
    Returns:
      descriptor.FieldDescriptor.CPPTYPE_*, the C++ type.
    Raises:
      TypeTransformationError: when the Python proto type isn't known.
    """
    try:
      return FieldDescriptor._PYTHON_TO_CPP_PROTO_TYPE_MAP[proto_type]
    except KeyError:
      raise TypeTransformationError('Unknown proto_type: %s' % proto_type)


class EnumDescriptor(_NestedDescriptorBase):

  """Descriptor for an enum defined in a .proto file.

  An EnumDescriptor instance has the following attributes:

    name: (str) Name of the enum type.
    full_name: (str) Full name of the type, including package name
      and any enclosing type(s).

    values: (list of EnumValueDescriptors) List of the values
      in this enum.
    values_by_name: (dict str -> EnumValueDescriptor) Same as |values|,
      but indexed by the "name" field of each EnumValueDescriptor.
    values_by_number: (dict int -> EnumValueDescriptor) Same as |values|,
      but indexed by the "number" field of each EnumValueDescriptor.
    containing_type: (Descriptor) Descriptor of the immediate containing
      type of this enum, or None if this is an enum defined at the
      top level in a .proto file.  Set by Descriptor's constructor
      if we're passed into one.
    file: (FileDescriptor) Reference to file descriptor.
    options: (descriptor_pb2.EnumOptions) Enum options message or
      None to use default enum options.
  """

  if _USE_C_DESCRIPTORS:
    _C_DESCRIPTOR_CLASS = _message.EnumDescriptor

    def __new__(cls, name, full_name, filename, values,
                containing_type=None, options=None, file=None,
                serialized_start=None, serialized_end=None):
      _message.Message._CheckCalledFromGeneratedFile()
      return _message.default_pool.FindEnumTypeByName(full_name)

  def __init__(self, name, full_name, filename, values,
               containing_type=None, options=None, file=None,
               serialized_start=None, serialized_end=None):
    """Arguments are as described in the attribute description above.

    Note that filename is an obsolete argument, that is not used anymore.
    Please use file.name to access this as an attribute.
    """
    super(EnumDescriptor, self).__init__(
        options, 'EnumOptions', name, full_name, file,
        containing_type, serialized_start=serialized_start,
        serialized_end=serialized_end)

    self.values = values
    for value in self.values:
      value.type = self
    self.values_by_name = dict((v.name, v) for v in values)
    self.values_by_number = dict((v.number, v) for v in values)

  def CopyToProto(self, proto):
    """Copies this to a descriptor_pb2.EnumDescriptorProto.

    Args:
      proto: An empty descriptor_pb2.EnumDescriptorProto.
    """
    # This function is overridden to give a better doc comment.
    super(EnumDescriptor, self).CopyToProto(proto)


class EnumValueDescriptor(DescriptorBase):

  """Descriptor for a single value within an enum.

    name: (str) Name of this value.
    index: (int) Dense, 0-indexed index giving the order that this
      value appears textually within its enum in the .proto file.
    number: (int) Actual number assigned to this enum value.
    type: (EnumDescriptor) EnumDescriptor to which this value
      belongs.  Set by EnumDescriptor's constructor if we're
      passed into one.
    options: (descriptor_pb2.EnumValueOptions) Enum value options message or
      None to use default enum value options options.
  """

  if _USE_C_DESCRIPTORS:
    _C_DESCRIPTOR_CLASS = _message.EnumValueDescriptor

    def __new__(cls, name, index, number, type=None, options=None):
      _message.Message._CheckCalledFromGeneratedFile()
      # There is no way we can build a complete EnumValueDescriptor with the
      # given parameters (the name of the Enum is not known, for example).
      # Fortunately generated files just pass it to the EnumDescriptor()
      # constructor, which will ignore it, so returning None is good enough.
      return None

  def __init__(self, name, index, number, type=None, options=None):
    """Arguments are as described in the attribute description above."""
    super(EnumValueDescriptor, self).__init__(options, 'EnumValueOptions')
    self.name = name
    self.index = index
    self.number = number
    self.type = type


class OneofDescriptor(DescriptorBase):
  """Descriptor for a oneof field.

    name: (str) Name of the oneof field.
    full_name: (str) Full name of the oneof field, including package name.
    index: (int) 0-based index giving the order of the oneof field inside
      its containing type.
    containing_type: (Descriptor) Descriptor of the protocol message
      type that contains this field.  Set by the Descriptor constructor
      if we're passed into one.
    fields: (list of FieldDescriptor) The list of field descriptors this
      oneof can contain.
  """

  if _USE_C_DESCRIPTORS:
    _C_DESCRIPTOR_CLASS = _message.OneofDescriptor

    def __new__(
        cls, name, full_name, index, containing_type, fields, options=None):
      _message.Message._CheckCalledFromGeneratedFile()
      return _message.default_pool.FindOneofByName(full_name)

  def __init__(
      self, name, full_name, index, containing_type, fields, options=None):
    """Arguments are as described in the attribute description above."""
    super(OneofDescriptor, self).__init__(options, 'OneofOptions')
    self.name = name
    self.full_name = full_name
    self.index = index
    self.containing_type = containing_type
    self.fields = fields


class ServiceDescriptor(_NestedDescriptorBase):

  """Descriptor for a service.

    name: (str) Name of the service.
    full_name: (str) Full name of the service, including package name.
    index: (int) 0-indexed index giving the order that this services
      definition appears withing the .proto file.
    methods: (list of MethodDescriptor) List of methods provided by this
      service.
    methods_by_name: (dict str -> MethodDescriptor) Same MethodDescriptor
      objects as in |methods_by_name|, but indexed by "name" attribute in each
      MethodDescriptor.
    options: (descriptor_pb2.ServiceOptions) Service options message or
      None to use default service options.
    file: (FileDescriptor) Reference to file info.
  """

  if _USE_C_DESCRIPTORS:
    _C_DESCRIPTOR_CLASS = _message.ServiceDescriptor

    def __new__(cls, name, full_name, index, methods, options=None, file=None,  # pylint: disable=redefined-builtin
                serialized_start=None, serialized_end=None):
      _message.Message._CheckCalledFromGeneratedFile()  # pylint: disable=protected-access
      return _message.default_pool.FindServiceByName(full_name)

  def __init__(self, name, full_name, index, methods, options=None, file=None,
               serialized_start=None, serialized_end=None):
    super(ServiceDescriptor, self).__init__(
        options, 'ServiceOptions', name, full_name, file,
        None, serialized_start=serialized_start,
        serialized_end=serialized_end)
    self.index = index
    self.methods = methods
    self.methods_by_name = dict((m.name, m) for m in methods)
    # Set the containing service for each method in this service.
    for method in self.methods:
      method.containing_service = self

  def FindMethodByName(self, name):
    """Searches for the specified method, and returns its descriptor."""
    return self.methods_by_name.get(name, None)

  def CopyToProto(self, proto):
    """Copies this to a descriptor_pb2.ServiceDescriptorProto.

    Args:
      proto: An empty descriptor_pb2.ServiceDescriptorProto.
    """
    # This function is overridden to give a better doc comment.
    super(ServiceDescriptor, self).CopyToProto(proto)


class MethodDescriptor(DescriptorBase):

  """Descriptor for a method in a service.

  name: (str) Name of the method within the service.
  full_name: (str) Full name of method.
  index: (int) 0-indexed index of the method inside the service.
  containing_service: (ServiceDescriptor) The service that contains this
    method.
  input_type: The descriptor of the message that this method accepts.
  output_type: The descriptor of the message that this method returns.
  options: (descriptor_pb2.MethodOptions) Method options message or
    None to use default method options.
  """

  if _USE_C_DESCRIPTORS:
    _C_DESCRIPTOR_CLASS = _message.MethodDescriptor

    def __new__(cls, name, full_name, index, containing_service,
                input_type, output_type, options=None):
      _message.Message._CheckCalledFromGeneratedFile()  # pylint: disable=protected-access
      return _message.default_pool.FindMethodByName(full_name)

  def __init__(self, name, full_name, index, containing_service,
               input_type, output_type, options=None):
    """The arguments are as described in the description of MethodDescriptor
    attributes above.

    Note that containing_service may be None, and may be set later if necessary.
    """
    super(MethodDescriptor, self).__init__(options, 'MethodOptions')
    self.name = name
    self.full_name = full_name
    self.index = index
    self.containing_service = containing_service
    self.input_type = input_type
    self.output_type = output_type


class FileDescriptor(DescriptorBase):
  """Descriptor for a file. Mimics the descriptor_pb2.FileDescriptorProto.

  Note that enum_types_by_name, extensions_by_name, and dependencies
  fields are only set by the message_factory module, and not by the
  generated proto code.

  name: name of file, relative to root of source tree.
  package: name of the package
  syntax: string indicating syntax of the file (can be "proto2" or "proto3")
  serialized_pb: (str) Byte string of serialized
    descriptor_pb2.FileDescriptorProto.
  dependencies: List of other FileDescriptors this FileDescriptor depends on.
  public_dependencies: A list of FileDescriptors, subset of the dependencies
    above, which were declared as "public".
  message_types_by_name: Dict of message names of their descriptors.
  enum_types_by_name: Dict of enum names and their descriptors.
  extensions_by_name: Dict of extension names and their descriptors.
  services_by_name: Dict of services names and their descriptors.
  pool: the DescriptorPool this descriptor belongs to.  When not passed to the
    constructor, the global default pool is used.
  """

  if _USE_C_DESCRIPTORS:
    _C_DESCRIPTOR_CLASS = _message.FileDescriptor

    def __new__(cls, name, package, options=None, serialized_pb=None,
                dependencies=None, public_dependencies=None,
                syntax=None, pool=None):
      # FileDescriptor() is called from various places, not only from generated
      # files, to register dynamic proto files and messages.
      if serialized_pb:
        # TODO(amauryfa): use the pool passed as argument. This will work only
        # for C++-implemented DescriptorPools.
        return _message.default_pool.AddSerializedFile(serialized_pb)
      else:
        return super(FileDescriptor, cls).__new__(cls)

  def __init__(self, name, package, options=None, serialized_pb=None,
               dependencies=None, public_dependencies=None,
               syntax=None, pool=None):
    """Constructor."""
    super(FileDescriptor, self).__init__(options, 'FileOptions')

    if pool is None:
      from google.protobuf import descriptor_pool
      pool = descriptor_pool.Default()
    self.pool = pool
    self.message_types_by_name = {}
    self.name = name
    self.package = package
    self.syntax = syntax or "proto2"
    self.serialized_pb = serialized_pb

    self.enum_types_by_name = {}
    self.extensions_by_name = {}
    self.services_by_name = {}
    self.dependencies = (dependencies or [])
    self.public_dependencies = (public_dependencies or [])

    if (api_implementation.Type() == 'cpp' and
        self.serialized_pb is not None):
      _message.default_pool.AddSerializedFile(self.serialized_pb)

  def CopyToProto(self, proto):
    """Copies this to a descriptor_pb2.FileDescriptorProto.

    Args:
      proto: An empty descriptor_pb2.FileDescriptorProto.
    """
    proto.ParseFromString(self.serialized_pb)


def _ParseOptions(message, string):
  """Parses serialized options.

  This helper function is used to parse serialized options in generated
  proto2 files. It must not be used outside proto2.
  """
  message.ParseFromString(string)
  return message


def _ToCamelCase(name):
  """Converts name to camel-case and returns it."""
  capitalize_next = False
  result = []

  for c in name:
    if c == '_':
      if result:
        capitalize_next = True
    elif capitalize_next:
      result.append(c.upper())
      capitalize_next = False
    else:
      result += c

  # Lower-case the first letter.
  if result and result[0].isupper():
    result[0] = result[0].lower()
  return ''.join(result)


def _OptionsOrNone(descriptor_proto):
  """Returns the value of the field `options`, or None if it is not set."""
  if descriptor_proto.HasField('options'):
    return descriptor_proto.options
  else:
    return None


def _ToJsonName(name):
  """Converts name to Json name and returns it."""
  capitalize_next = False
  result = []

  for c in name:
    if c == '_':
      capitalize_next = True
    elif capitalize_next:
      result.append(c.upper())
      capitalize_next = False
    else:
      result += c

  return ''.join(result)


def MakeDescriptor(desc_proto, package='', build_file_if_cpp=True,
                   syntax=None):
  """Make a protobuf Descriptor given a DescriptorProto protobuf.

  Handles nested descriptors. Note that this is limited to the scope of defining
  a message inside of another message. Composite fields can currently only be
  resolved if the message is defined in the same scope as the field.

  Args:
    desc_proto: The descriptor_pb2.DescriptorProto protobuf message.
    package: Optional package name for the new message Descriptor (string).
    build_file_if_cpp: Update the C++ descriptor pool if api matches.
                       Set to False on recursion, so no duplicates are created.
    syntax: The syntax/semantics that should be used.  Set to "proto3" to get
            proto3 field presence semantics.
  Returns:
    A Descriptor for protobuf messages.
  """
  if api_implementation.Type() == 'cpp' and build_file_if_cpp:
    # The C++ implementation requires all descriptors to be backed by the same
    # definition in the C++ descriptor pool. To do this, we build a
    # FileDescriptorProto with the same definition as this descriptor and build
    # it into the pool.
    from google.protobuf import descriptor_pb2
    file_descriptor_proto = descriptor_pb2.FileDescriptorProto()
    file_descriptor_proto.message_type.add().MergeFrom(desc_proto)

    # Generate a random name for this proto file to prevent conflicts with any
    # imported ones. We need to specify a file name so the descriptor pool
    # accepts our FileDescriptorProto, but it is not important what that file
    # name is actually set to.
    proto_name = str(uuid.uuid4())

    if package:
      file_descriptor_proto.name = os.path.join(package.replace('.', '/'),
                                                proto_name + '.proto')
      file_descriptor_proto.package = package
    else:
      file_descriptor_proto.name = proto_name + '.proto'

    _message.default_pool.Add(file_descriptor_proto)
    result = _message.default_pool.FindFileByName(file_descriptor_proto.name)

    if _USE_C_DESCRIPTORS:
      return result.message_types_by_name[desc_proto.name]

  full_message_name = [desc_proto.name]
  if package: full_message_name.insert(0, package)

  # Create Descriptors for enum types
  enum_types = {}
  for enum_proto in desc_proto.enum_type:
    full_name = '.'.join(full_message_name + [enum_proto.name])
    enum_desc = EnumDescriptor(
      enum_proto.name, full_name, None, [
          EnumValueDescriptor(enum_val.name, ii, enum_val.number)
          for ii, enum_val in enumerate(enum_proto.value)])
    enum_types[full_name] = enum_desc

  # Create Descriptors for nested types
  nested_types = {}
  for nested_proto in desc_proto.nested_type:
    full_name = '.'.join(full_message_name + [nested_proto.name])
    # Nested types are just those defined inside of the message, not all types
    # used by fields in the message, so no loops are possible here.
    nested_desc = MakeDescriptor(nested_proto,
                                 package='.'.join(full_message_name),
                                 build_file_if_cpp=False,
                                 syntax=syntax)
    nested_types[full_name] = nested_desc

  fields = []
  for field_proto in desc_proto.field:
    full_name = '.'.join(full_message_name + [field_proto.name])
    enum_desc = None
    nested_desc = None
    if field_proto.json_name:
      json_name = field_proto.json_name
    else:
      json_name = None
    if field_proto.HasField('type_name'):
      type_name = field_proto.type_name
      full_type_name = '.'.join(full_message_name +
                                [type_name[type_name.rfind('.')+1:]])
      if full_type_name in nested_types:
        nested_desc = nested_types[full_type_name]
      elif full_type_name in enum_types:
        enum_desc = enum_types[full_type_name]
      # Else type_name references a non-local type, which isn't implemented
    field = FieldDescriptor(
        field_proto.name, full_name, field_proto.number - 1,
        field_proto.number, field_proto.type,
        FieldDescriptor.ProtoTypeToCppProtoType(field_proto.type),
        field_proto.label, None, nested_desc, enum_desc, None, False, None,
        options=_OptionsOrNone(field_proto), has_default_value=False,
        json_name=json_name)
    fields.append(field)

  desc_name = '.'.join(full_message_name)
  return Descriptor(desc_proto.name, desc_name, None, None, fields,
                    list(nested_types.values()), list(enum_types.values()), [],
                    options=_OptionsOrNone(desc_proto))
PK�\��g�`�`protobuf/json_format.pycnu�[����
���hc@s�dZdZyddlmZWn!ek
rCddlmZnXddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZdZeejjejjejjejjg�Zeejjejjg�Zeejjejjg�Zd	Zd
ZdZe	j e
j!d��Z"e	j d
�Z#de$fd��YZ%de%fd��YZ&de%fd��YZ'e(e(de(d�Z)e(e(d�Z*d�Z+de,fd��YZ-d�Z.d�Z/d�Z0e(d�Z1e(d�Z2e
j3e4fZ5de,fd ��YZ6e(d!�Z7d"�Z8d#�Z9d$�Z:id%d&gd'6d(d)gd*6d(d)gd+6d,d-gd.6d/d0gd16d(d)gd26d3d4gd56Z;dS(6stContains 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())
sjieluo@google.com (Jie Luo)i����(tOrderedDictN(tmethodcaller(t
descriptor(tsymbol_databases%Y-%m-%dT%H:%M:%StInfinitys	-InfinitytNaNsF[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]s\[[a-zA-Z0-9\._]*\]$tErrorcBseZdZRS(s'Top-level module error for json_format.(t__name__t
__module__t__doc__(((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyRPstSerializeToJsonErrorcBseZdZRS(s&Thrown if serialization to JSON fails.(RRR	(((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR
Tst
ParseErrorcBseZdZRS(s Thrown in case of parsing error.(RRR	(((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyRXsicCs"t||�}|j|||�S(s_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.

  Returns:
    A string containing the JSON formatted protocol buffer message.
  (t_PrintertToJsonString(tmessagetincluding_default_value_fieldstpreserving_proto_field_nametindentt	sort_keystprinter((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt
MessageToJson\s	cCst||�}|j|�S(s�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.

  Returns:
    A dict representation of the protocol buffer message.
  (Rt_MessageToJsonObject(RRRR((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt
MessageToDictxs	cCs1|jtjjko0|jjo0|jj�jS(N(ttypeRtFieldDescriptortTYPE_MESSAGEtmessage_typethas_optionst
GetOptionst	map_entry(tfield((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_IsMapEntry�sRcBsweZdZeed�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�ZRS(s)JSON format printer for protocol message.cCs||_||_dS(N(RR(tselfRR((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt__init__�s	cCs(|j|�}tj|d|d|�S(NRR(Rtjsontdumps(R RRRtjs((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR
�scCsh|j}|j}t|�r+|j|�S|tkrRtt|d|�|�Si}|j||�S(sEConverts message to an object according to Proto3 JSON Specification.i(t
DESCRIPTORt	full_namet_IsWrapperMessaget_WrapperMessageToJsonObjectt_WKTJSONMETHODSRt_RegularMessageToJsonObject(R Rtmessage_descriptorR&R$((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�s		
cCs�|j�}y�x�|D]�\}}|jr7|j}n	|j}t|�r�|jjd}i}xU|D]M}	t|	t�r�|	r�d}
q�d}
n|	}
|j	|||	�||
<qiW|||<q|j
tjj
krg|D]}|j	||�^q�||<q|jr�|}|jj�jr_|jtjjkr_|j
tjjkr_|j}nd|j|f}|j	||�||<q|j	||�||<qW|jr�|j}
x�|
jD]�}|j
tjj
kr�|jtjjks�|jrq�n|jr|j}n	|j}||kr0q�nt|�rIi||<q�|j
tjj
krkg||<q�|j	||j�||<q�WnWn.tk
r�}tdj|j|���nX|S(s?Converts normal message according to Proto3 JSON Specification.tvaluettruetfalses[%s.%s]s#Failed to serialize {0} field: {1}.( t
ListFieldsRtnamet	json_nameRRtfields_by_namet
isinstancetboolt_FieldToJsonObjecttlabelRRtLABEL_REPEATEDtis_extensiontcontaining_typeRtmessage_set_wire_formatRRtLABEL_OPTIONALR&RR%tfieldstcpp_typetCPPTYPE_MESSAGEtcontaining_oneoft
default_valuet
ValueErrorR
tformat(R RR$R<RR,R0tv_fieldtjs_maptkeytrecorded_keytktfR+te((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR*�sf		
		
)						

$cCsU|jtjjkr"|j|�S|jtjjkr�|jjj|d�}|dk	rb|j
S|jjdkrx|St
d��n�|jtjjkr�|jtjjkr�tj|�jd�S|Sn�|jtjjkr�t|�S|jtkrt|�S|jtkrQtj|�r;|dkr4tStSntj|�rQtSn|S(s<Converts field value according to Proto3 JSON Specification.tproto3sKEnum field contains an integer value which can not mapped to an enum value.sutf-8gN(R=RRR>RtCPPTYPE_ENUMt	enum_typetvalues_by_numbertgettNoneR0tfiletsyntaxR
tCPPTYPE_STRINGRt
TYPE_BYTEStbase64t	b64encodetdecodetCPPTYPE_BOOLR4t_INT64_TYPEStstrt_FLOAT_TYPEStmathtisinft
_NEG_INFINITYt	_INFINITYtisnant_NAN(R RR,t
enum_value((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR5�s2


cCs�|j�siSt�}|j}||d<t|�}|j|j�|j}|j}t|�r}|j	|�|d<|S|t
kr�tt
|d|�|�|d<|S|j||�S(s<Converts Any message according to Proto3 JSON Specification.s@typeR,i(
R/Rttype_urlt_CreateMessageFromTypeUrltParseFromStringR,R%R&R'R(R)RR*(R RR$Rbtsub_messageR+R&((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_AnyMessageToJsonObjects"		
		cCs
|j�S(s8Converts message according to Proto3 JSON Specification.(R
(R R((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_GenericMessageToJsonObject+scCs�|jd�}|dks'|dkr+dS|dkrG|j|j�S|dkr_|j}nt||�}|jj|}|j||�S(s>Converts Value message according to Proto3 JSON Specification.tkindt
null_valuet
list_valuetstruct_valueN(	t
WhichOneofROt_ListValueMessageToJsonObjectRjRktgetattrR%R2R5(R RtwhichR,toneof_descriptor((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_ValueMessageToJsonObject1scCs#g|jD]}|j|�^q
S(sBConverts ListValue message according to Proto3 JSON Specification.(tvaluesRq(R RR,((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyRmAscCs;|j}i}x%|D]}|j||�||<qW|S(s?Converts Struct message according to Proto3 JSON Specification.(R<Rq(R RR<tretRE((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_StructMessageToJsonObjectFs
	
cCs|j|jjd|j�S(NR,(R5R%R2R,(R R((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR(Ns(RRR	tFalseR!R
RR*R5RfRgRqRmRtR((((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�s			E	!					cCs|jjdkS(Nsgoogle/protobuf/wrappers.proto(RPR0(R+((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR'SscCsOi}xB|D]:\}}||kr=tdj|���n|||<q
W|S(Ns'Failed to load JSON: duplicate key {0}.(RRB(R$tresultR0R,((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_DuplicateCheckerWscCsttj�}|jd�d}y|jj|�}Wn&tk
r]tdj|���nX|j|�}|�S(Nt/i����s1Can not find message descriptor by type_url: {0}.(	RtDefaulttsplittpooltFindMessageTypeByNametKeyErrort	TypeErrorRBtGetPrototype(Rbtdbt	type_nameR+t
message_class((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyRc`s
cCs�t|tj�s$|jd�}ny:tjdkrHtj|�}ntj|dt�}Wn.t	k
r�}t
djt|����nXt
|||�S(sbParses 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.

  Returns:
    The same message passed as argument.

  Raises::
    ParseError: On JSON parsing problems.
  sutf-8iitobject_pairs_hooksFailed to load JSON: {0}.(ii(R3tsixt	text_typeRVtsystversion_infoR"tloadsRwRARRBRYt	ParseDict(ttextRtignore_unknown_fieldsR$RI((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pytParsenscCs t|�}|j||�|S(s.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.

  Returns:
    The same message passed as argument.
  (t_ParsertConvertMessage(tjs_dictRR�tparser((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��sR�cBsheZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZRS(s(JSON format parser for protocol message.cCs
||_dS(N(R�(R R�((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR!�scCsr|j}|j}t|�r1|j||�n=|tkr^tt|d||�|�n|j||�dS(s�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.
    iN(R%R&R't_ConvertWrapperMessageR)Rt_ConvertFieldValuePair(R R,RR+R&((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s
		!cCs�g}|j}td�|jD��}xk|D]c}y�|j|d�}|sh|jj|d�}n|r�tj|�r�|js�t	dj
|j���n|dd!}dj|j
d�d �}|jj|�}n|s|jr�w/nt	dj
|j||j���n||krFt	dj
|jj|���n|j|�|jdk	r�|jj}	|	|kr�t	dj
|jj|	���n|j|	�n||}
|
dkr|jtjjkr|jjd	krt||j�}d
|_n|j|j�w/nt|�rN|j|j�|j|
||�n�|jtjjkrl|j|j�t |
t!�s�t	dj
||
���n|jtjjkrx�|
D][}t||j�j"�}|dkr|jjd	krt	d��n|j#||�q�Wq�x�|
D]C}|dkrCt	d��nt||j�jt$||��q"Wny|jtjjkr�|j%r�|j|}nt||j�}|j&�|j#|
|�nt'||jt$|
|��Wq/t	k
r=}
|r(|jdkr(t	d
j
||
���q�t	t(|
���q/t)k
rg}
t	dj
||
���q/t*k
r�}
t	dj
||
���q/Xq/WdS(s�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.
    css|]}|j|fVqdS(N(R1(t.0RH((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pys	<genexpr>�ss)Message type {0} does not have extensionsii����t.sVMessage type "{0}" has no field named "{1}".
 Available Fields(except extensions): {2}s9Message type "{0}" should not have multiple "{1}" fields.s?Message type "{0}" should not have multiple "{1}" oneof fields.sgoogle.protobuf.Valueis.repeated field {0} must be in [] which is {1}.sAnull is not allowed to be used as an element in a repeated field.sFailed to parse {0} field: {1}sFailed to parse {0} field: {1}.N(+R%tdictR<RNROR2t_VALID_EXTENSION_NAMEtmatcht
is_extendableRRBR&tjoinRzt
Extensionst_FindExtensionByNameR�tappendR?R0R=RRR>RRnRit
ClearFieldRt_ConvertMapFieldValueR6R7R3tlisttaddR�t_ConvertScalarFieldValueR8tSetInParenttsetattrRYRAR~(R R$RtnamesR+tfields_by_json_nameR0Rt
identifiert
oneof_nameR,RetitemRI((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s�
		
		
			
	
	

	
 cCs�t|t�r|rdSy|d}Wntk
rGtd��nXt|�}|j}|j}t|�r�|j|d|�nH|t	kr�t
t	|d|d|�|�n|d=|j||�|j�|_
||_dS(s/Convert a JSON representation into Any message.Ns@types*@type is missing when parsing any message.R,i(R3R�R}RRcR%R&R'R�R)RR�tSerializeToStringR,Rb(R R,RRbReR+R&((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_ConvertAnyMessages$
		"cCs|j|�dS(s?Convert a JSON representation into message with FromJsonString.N(tFromJsonString(R R,R((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_ConvertGenericMessage7scCs�t|t�r%|j||j�n�t|t�rJ|j||j�nx|dkrbd|_n`t|t	�r}||_
nEt|tj�r�||_
n't|t�r�||_ntd��dS(s1Convert a JSON representation into Value message.is"Unexpected type for Value message.N(R3R�t_ConvertStructMessageRkR�t_ConvertListValueMessageRjRORiR4t
bool_valueR�tstring_typeststring_valuet
_INT_OR_FLOATtnumber_valueR(R R,R((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt_ConvertValueMessage=scCsbt|t�s'tdj|���n|jd�x'|D]}|j||jj��q;WdS(s5Convert a JSON representation into ListValue message.s%ListValue must be in [] which is {0}.RrN(R3R�RRBR�R�RrR�(R R,RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�Ns

cCsWt|t�s'tdj|���nx)|D]!}|j|||j|�q.WdS(s2Convert a JSON representation into Struct message.s&Struct must be in a dict which is {0}.N(R3R�RRBR�R<(R R,RRE((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�Ws
cCs-|jjd}t|dt||��dS(s3Convert a JSON representation into Wrapper message.R,N(R%R2R�R�(R R,RR((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�`scCs�t|t�s-tdj|j|���n|jjd}|jjd}x|D]w}t||t�}|j	t
jjkr�|j
||t||j�|�qTt|||�t||j�|<qTWdS(s5Convert 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.
    s-Map field {0} must be in a dict which is {1}.RER,N(R3R�RRBR0RR2R�tTrueR=RRR>R�Rn(R R,RRt	key_fieldtvalue_fieldREt	key_value((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR�es
(
RRR	R!R�R�R�R�R�R�R�R�R�(((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s			j								cCs�|jtkrt|�S|jtkr2t|�S|jtjjkrTt||�S|jtjj	kr�|j
tjjkr�tj
|�Stj|�r�td��n|Sn�|jtjjkr�|jjj|d�}|dkr�y(t|�}|jjj|d�}Wn/tk
rBtdj||jj���nX|dkr�|jjdkre|Stdj||jj���q�n|jSdS(sBConvert 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.
  sUnpaired surrogates)Invalid enum value {0} for enum type {1}.RJN(R=t
_INT_TYPESt_ConvertIntegerRZt
_ConvertFloatRRRWt_ConvertBoolRRRRSRTt	b64decodet_UNPAIRED_SURROGATE_PATTERNtsearchRRKRLtvalues_by_nameRNROtintRMRARBR&RPRQtnumber(R,Rtrequire_strRaR�((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s6




		cCs}t|t�r4|j�r4tdj|���nt|tj�rs|jd�dkrstdj|���nt|�S(s�Convert an integer.

  Args:
    value: A scalar value to convert.

  Returns:
    The integer value.

  Raises:
    ParseError: If an integer couldn't be consumed.
  sCouldn't parse integer: {0}.t i����sCouldn't parse integer: "{0}".(	R3tfloatt
is_integerRRBR�R�tfindR�(R,((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s
'cCs�|dkrtd��nyt|�SWnhtk
r�|tkrOtd�S|tkretd�S|tkr{td�Stdj|���nXdS(s!Convert an floating point number.tnans.Couldn't parse float "nan", use "NaN" instead.s-inftinfsCouldn't parse float: {0}.N(RR�RAR]R^R`RB(R,((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s



cCs`|r>|dkrtS|dkr&tStdj|���nt|t�s\td��n|S(s�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.
  R-R.s$Expected "true" or "false", not {0}.s&Expected true or false without quotes.(R�RuRRBR3R4(R,R�((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyR��s
RfR�sgoogle.protobuf.AnyRgR�sgoogle.protobuf.Durationsgoogle.protobuf.FieldMaskRmR�sgoogle.protobuf.ListValueRtR�sgoogle.protobuf.Structsgoogle.protobuf.TimestampRqR�sgoogle.protobuf.Value(<R	t
__author__tcollectionsRtImportErrortordereddictRTR"R[treR�R�toperatorRtgoogle.protobufRRt_TIMESTAMPFOMATt	frozensetRt
CPPTYPE_INT32tCPPTYPE_UINT32t
CPPTYPE_INT64tCPPTYPE_UINT64R�RXt
CPPTYPE_FLOATtCPPTYPE_DOUBLERZR^R]R`tcompiletuR�R�t	ExceptionRR
RRuRRRtobjectRR'RwRcR�R�t
integer_typesR�R�R�R�R�R�R�R)(((s?/usr/lib/python2.7/site-packages/google/protobuf/json_format.pyt<module>)s�
			�				�0			





PK�\@W�uAvAvprotobuf/descriptor_pool.pyonu�[����
���hc@s�dZdZddlZddlmZddlmZddlmZejZd�Zd�Z	d	�Z
d
efd��YZd�Z
er�ejjZn	e�Zd
�ZdS(sJProvides DescriptorPool to use as a container for proto2 descriptors.

The DescriptorPool is used in conjection with a DescriptorDatabase to maintain
a collection of protocol buffer descriptors for use when dynamically creating
message types at runtime.

For most applications protocol buffers should be used via modules generated by
the protocol buffer compiler tool. This should only be used when the type of
protocol buffers used in an application or library cannot be predetermined.

Below is a straightforward example on how to use this class:

  pool = DescriptorPool()
  file_descriptor_protos = [ ... ]
  for file_descriptor_proto in file_descriptor_protos:
    pool.Add(file_descriptor_proto)
  my_message_descriptor = pool.FindMessageTypeByName('some.package.MessageType')

The message descriptor can be used in conjunction with the message_factory
module in order to create a protocol buffer class that can be encoded and
decoded.

If you want to get a Python class for the specified proto, use the
helper functions inside google.protobuf.message_factory
directly instead of this class.
s"matthewtoia@google.com (Matt Toia)i����N(t
descriptor(tdescriptor_database(t
text_encodingcCs
|jd�S(sLRemove leading period from fully-qualified type name.

  Due to b/13860351 in descriptor_database.py, types in the root namespace are
  generated with a leading period. This function removes that prefix.

  Args:
    name: A str, the fully-qualified symbol name.

  Returns:
    A str, the normalized fully-qualified symbol name.
  t.(tlstrip(tname((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt_NormalizeFullyQualifiedNameFscCs|jd�r|jSdSdS(sCReturns the value of the field `options`, or None if it is not set.toptionsN(tHasFieldRtNone(tdescriptor_proto((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt_OptionsOrNoneUscCsO|joN|jjoN|jj�joN|jtjjkoN|j	tjj
kS(N(tis_extensiontcontaining_typethas_optionst
GetOptionstmessage_set_wire_formatttypeRtFieldDescriptortTYPE_MESSAGEtlabeltLABEL_OPTIONAL(tfield((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt_IsMessageSetExtension]s
	tDescriptorPoolcBsaeZdZer!d"d�Znd"d�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd"d"d"d"d�Zd"d"d"d"d�Zed�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d �Z%d!�Z&RS(#sGA collection of protobufs dynamically constructed by descriptor protos.cCstjj|�S(N(Rt_messageR(tclst
descriptor_db((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt__new__jscCsmtj�|_||_i|_i|_i|_i|_i|_t	j
t�|_t	j
t�|_
dS(s�Initializes a Pool of proto buffs.

    The descriptor_db argument to the constructor is provided to allow
    specialized file descriptor proto lookup code to be triggered on demand. An
    example would be an implementation which will read and compile a file
    specified in a call to FindFileByName() and not require the call to Add()
    at all. Results from this database will be cached internally here as well.

    Args:
      descriptor_db: A secondary source of file descriptors.
    N(RtDescriptorDatabaset_internal_dbt_descriptor_dbt_descriptorst_enum_descriptorst_service_descriptorst_file_descriptorst_toplevel_extensionstcollectionstdefaultdicttdictt_extensions_by_namet_extensions_by_number(tselfR((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt__init__ns
						cCs|jj|�dS(sAdds the FileDescriptorProto and its types to this pool.

    Args:
      file_desc_proto: The FileDescriptorProto to add.
    N(RtAdd(R*tfile_desc_proto((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR,�scCs3ddlm}|jj|�}|j|�dS(s�Adds the FileDescriptorProto and its types to this pool.

    Args:
      serialized_file_desc_proto: A bytes string, serialization of the
        FileDescriptorProto to add.
    i����(tdescriptor_pb2N(tgoogle.protobufR.tFileDescriptorProtot
FromStringR,(R*tserialized_file_desc_protoR.R-((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytAddSerializedFile�s			cCsEt|tj�s!td��n||j|j<|j|j�dS(sAdds a Descriptor to the pool, non-recursively.

    If the Descriptor contains nested messages or enums, the caller must
    explicitly register them. This method also registers the FileDescriptor
    associated with the message.

    Args:
      desc: A Descriptor.
    s+Expected instance of descriptor.Descriptor.N(t
isinstanceRt
Descriptort	TypeErrorR t	full_namet_AddFileDescriptortfile(R*tdesc((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt
AddDescriptor�s
cCsEt|tj�s!td��n||j|j<|j|j�dS(s�Adds an EnumDescriptor to the pool.

    This method also registers the FileDescriptor associated with the enum.

    Args:
      enum_desc: An EnumDescriptor.
    s/Expected instance of descriptor.EnumDescriptor.N(R4RtEnumDescriptorR6R!R7R8R9(R*t	enum_desc((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytAddEnumDescriptor�s	cCs5t|tj�s!td��n||j|j<dS(s^Adds a ServiceDescriptor to the pool.

    Args:
      service_desc: A ServiceDescriptor.
    s2Expected instance of descriptor.ServiceDescriptor.N(R4RtServiceDescriptorR6R"R7(R*tservice_desc((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytAddServiceDescriptor�scCst|tj�o|js*td��n|jdkrL||j|j<ny|j	|j
|j}Wntk
rzn;X||k	r�t
d|j|j|j
j|jf��n||j	|j
|j<||j|j
|j<t|�r||j|j
|jj<ndS(s;Adds a FieldDescriptor describing an extension to the pool.

    Args:
      extension: A FieldDescriptor.

    Raises:
      AssertionError: when another extension with the same number extends the
        same message.
      TypeError: when the specified extension is not a
        descriptor.FieldDescriptor.
    s!Expected an extension descriptor.sSExtensions "%s" and "%s" both try to extend message type "%s" with field number %d.N(R4RRRR6textension_scopeR	R$R7R)R
tnumbertKeyErrortAssertionErrorR(Rtmessage_type(R*t	extensiont
existing_desc((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytAddExtensionDescriptor�s&	
cCs|j|�dS(s�Adds a FileDescriptor to the pool, non-recursively.

    If the FileDescriptor contains messages or enums, the caller must explicitly
    register them.

    Args:
      file_desc: A FileDescriptor.
    N(R8(R*t	file_desc((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytAddFileDescriptor�s
cCs5t|tj�s!td��n||j|j<dS(s�Adds a FileDescriptor to the pool, non-recursively.

    If the FileDescriptor contains messages or enums, the caller must explicitly
    register them.

    Args:
      file_desc: A FileDescriptor.
    s/Expected instance of descriptor.FileDescriptor.N(R4RtFileDescriptorR6R#R(R*RJ((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR8s
cCs�y|j|SWntk
r"nXy|jj|�}Wn7tk
rr}|jri|jj|�}qs|�nX|s�td|��n|j|�S(s�Gets a FileDescriptor by file name.

    Args:
      file_name: The path to the file to get a descriptor for.

    Returns:
      A FileDescriptor for the named file.

    Raises:
      KeyError: if the file cannot be found in the pool.
    sCannot find a file named %s(R#RDRtFindFileByNameRt!_ConvertFileProtoToFileDescriptor(R*t	file_namet
file_prototerror((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRMs

	
cCs#t|�}y|j|jSWntk
r1nXy|j|jSWntk
rWnXy|j|jSWntk
r}nXy|j|�SWntk
r�nXy|j|jSWntk
r�nX|jd�\}}}y|j	|�}|jSWn!tk
rtd|��nXdS(sGets the FileDescriptor for the file containing the specified symbol.

    Args:
      symbol: The name of the symbol to search for.

    Returns:
      A FileDescriptor that contains the specified symbol.

    Raises:
      KeyError: if the file cannot be found in the pool.
    Rs Cannot find a file containing %sN(
RR R9RDR!R"t_FindFileContainingSymbolInDbR$t
rpartitiontFindMessageTypeByName(R*tsymboltmessage_namet_textension_nametmessage((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindFileContainingSymbol+s6






cCs6t|�}||jkr+|j|�n|j|S(s�Loads the named descriptor from the pool.

    Args:
      full_name: The full name of the descriptor to load.

    Returns:
      The descriptor for the named type.

    Raises:
      KeyError: if the message cannot be found in the pool.
    (RR RR(R*R7((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRT[s
cCs6t|�}||jkr+|j|�n|j|S(s�Loads the named enum descriptor from the pool.

    Args:
      full_name: The full name of the enum descriptor to load.

    Returns:
      The enum descriptor for the named type.

    Raises:
      KeyError: if the enum cannot be found in the pool.
    (RR!RR(R*R7((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindEnumTypeByNamems
cCs>t|�}|jd�\}}}|j|�}|j|S(sLoads the named field descriptor from the pool.

    Args:
      full_name: The full name of the field descriptor to load.

    Returns:
      The field descriptor for the named field.

    Raises:
      KeyError: if the field cannot be found in the pool.
    R(RRSRTtfields_by_name(R*R7RVRWt
field_nametmessage_descriptor((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindFieldByNamescCs>t|�}|jd�\}}}|j|�}|j|S(sLoads the named oneof descriptor from the pool.

    Args:
      full_name: The full name of the oneof descriptor to load.

    Returns:
      The oneof descriptor for the named oneof.

    Raises:
      KeyError: if the oneof cannot be found in the pool.
    R(RRSRTtoneofs_by_name(R*R7RVRWt
oneof_nameR^((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindOneofByName�scCs�t|�}y|j|SWntk
r.nX|jd�\}}}y|j|�}Wn tk
r||j|�}nX|j|S(sLoads the named extension descriptor from the pool.

    Args:
      full_name: The full name of the extension descriptor to load.

    Returns:
      A FieldDescriptor, describing the named extension.

    Raises:
      KeyError: if the extension cannot be found in the pool.
    R(RR$RDRSRTRRtextensions_by_name(R*R7RVRWRXtscope((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindExtensionByName�s

cCs|j||S(s�Gets the extension of the specified message with the specified number.

    Extensions have to be registered to this pool by calling
    AddExtensionDescriptor.

    Args:
      message_descriptor: descriptor of the extended message.
      number: integer, number of the extension field.

    Returns:
      A FieldDescriptor describing the extension.

    Raises:
      KeyError: when no extension with the given number is known for the
        specified message.
    (R)(R*R^RC((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindExtensionByNumber�scCst|j|j��S(s!Gets all the known extension of a given message.

    Extensions have to be registered to this pool by calling
    AddExtensionDescriptor.

    Args:
      message_descriptor: descriptor of the extended message.

    Returns:
      A list of FieldDescriptor describing the extensions.
    (tlistR)tvalues(R*R^((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindAllExtensions�scCs6t|�}||jkr+|j|�n|j|S(sLoads the named service descriptor from the pool.

    Args:
      full_name: The full name of the service descriptor to load.

    Returns:
      The service descriptor for the named service.

    Raises:
      KeyError: if the service cannot be found in the pool.
    (RR"RR(R*R7((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytFindServiceByName�scCsvy|jj|�}Wn7tk
rO}|jrF|jj|�}qP|�nX|sitd|��n|j|�S(s"Finds the file in descriptor DB containing the specified symbol.

    Args:
      symbol: The name of the symbol to search for.

    Returns:
      A FileDescriptor that contains the specified symbol.

    Raises:
      KeyError: if the file cannot be found in the descriptor database.
    s Cannot find a file containing %s(RRZRDRRN(R*RURPRQ((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRR�s	
cCs|j|jkrt|j|j��}g|jD]}|j|�^q4}g|jD]}||^qY}tjd|d|jd|j	d|j
dt|�d|j�d|d|�}i}xM|D]E}	|j
|j|	jj���|j
d	�|	jj�D��q�WxB|jD]7}
|j|
|j	|||j
�}||j|j<q Wx9|jD].}|j||j	|d|�|j|j<qeWx�t|j�D]t\}
}|j||j	|
|d
t�}|j|j	|j|�|_|j|||j	|�||j|j<q�Wx'|jD]}|j |j	||�q)W|j	rdt!|j	�}nd}x9|jD].}|j||j|�}||j|j<qtWxEt|j"�D]4\}
}|j#||
||j	|�|j$|j<q�W|j%|�||j|j<n|j|jS(
sDCreates a FileDescriptor from a proto or returns a cached copy.

    This method also has the side effect of loading all the symbols found in
    the file into the appropriate dictionaries in the pool.

    Args:
      file_proto: The proto to convert.

    Returns:
      A FileDescriptor matching the passed in proto.
    tpoolRtpackagetsyntaxRt
serialized_pbtdependenciestpublic_dependenciescss$|]}t|j�|fVqdS(N(t_PrefixWithDotR7(t.0tenum((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pys	<genexpr>,sRtN(&RR#Rgt_GetDepst
dependencyRMtpublic_dependencyRRLRlRmRtSerializeToStringtupdatet_ExtractSymbolstmessage_types_by_nameRhtenum_types_by_nameRFt_ConvertMessageDescriptort	enum_typet_ConvertEnumDescriptorR	t	enumerateRGt_MakeFieldDescriptortTruet_GetTypeFromScopetextendeeR
t
_SetFieldTypeRct_SetAllFieldTypesRqtservicet_MakeServiceDescriptortservices_by_nameR,(R*RPt
built_depstntdirect_depstitpublic_depstfile_descriptorRdRvRFtmessage_descR~tindextextension_prototextension_desct
desc_prototdesc_proto_prefixR:t
service_proto((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRNsf
% 					
	
	
c!Cs|r!dj||jf�}n	|j}|dkr?d}n	|j}|dkr]i}ng|jD]!}|j|||||�^qg}g|jD]!}	|j|	||d|�^q�}
gt|j�D]$\}}|j	||||�^q�}
gt|j
�D]*\}}|j	||||dt�^q	}gt|j�D]B\}}t
j|jdj||jf�|dg|j�^qI}g|jD]}|j|jf^q�}|r�t}nt}t
jd|jd|d|ddd|
d|d	|d
|
d|dt|�d
|d|d|ddddd|�}x|jD]}||_qMWx|jD]}	||	_qjWxat|j�D]P\}}|jd�r�|j}||jj|
|�|||
|_q�q�W||t|�<||j|<|S(s�Adds the proto to the pool in the specified package.

    Args:
      desc_proto: The descriptor_pb2.DescriptorProto protobuf message.
      package: The package the proto should be located in.
      file_desc: The file containing this message.
      scope: Dict mapping short and full symbols to message and enum types.
      syntax: string indicating syntax of the file ("proto2" or "proto3")

    Returns:
      The added descriptor.
    RRRR7tfilenameR
tfieldstoneofstnested_typest
enum_typest
extensionsRt
is_extendabletextension_rangesR9tserialized_starttserialized_endRmtoneof_indexN( tjoinRR	tnested_typeR}R~RR�RR�RGR�t
oneof_declRtOneofDescriptorRtextension_rangetstarttendtFalseR5RR�R
R�RR�R�tappendtcontaining_oneofRqR (R*R�RlRJRdRmt	desc_nameROtnestedRstenumsR�RR�RGR�R:R�trR�R�tfield_indext
field_descR�((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR}]sf				..7=U(				

	
cCs�|r!dj||jf�}n	|j}|d
kr?d
}n	|j}gt|j�D]\}}	|j|	|�^qX}
tjd|jd|d|d|d|
d|dt|��}||d	|<||j	|<|S(s�Make a protobuf EnumDescriptor given an EnumDescriptorProto protobuf.

    Args:
      enum_proto: The descriptor_pb2.EnumDescriptorProto protobuf message.
      package: Optional package name for the new message EnumDescriptor.
      file_desc: The file containing the enum descriptor.
      containing_type: The type containing this enum.
      scope: Scope containing available types.

    Returns:
      The added descriptor
    RRR7R�R9RhR
Rs.%sN(
R�RR	R�tvaluet_MakeEnumValueDescriptorRR<RR!(R*t
enum_protoRlRJR
Rdt	enum_nameROR�R�RhR:((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR�s$			1
c!Cs�|r!dj||jf�}n	|j}tjd|jd|d|d|jd|jddddd	dd
dd|jdtd
dd|dddt	|�d|�S(s�Creates a field descriptor from a FieldDescriptorProto.

    For message and enum type fields, this method will do a look up
    in the pool for the appropriate descriptor for that type. If it
    is unavailable, it will fall back to the _source function to
    create it. If this type is still unavailable, construction will
    fail.

    Args:
      field_proto: The proto describing the field.
      message_name: The name of the containing message.
      index: Index of the field
      file_desc: The file containing the field descriptor.
      is_extension: Indication that this field is for an extension.

    Returns:
      An initialized FieldDescriptor object
    RRR7R�RCRtcpp_typeRFR~R
Rthas_default_valuet
default_valueRRBRR9N(
R�RRRRCRR	RR�R(R*tfield_protoRVR�RJRR7((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR��s(						cCst|�}|j||j|�}|dkrBt|j�}ndj||jg�}x9t|j|j�D]"\}}|j||||�qpWxTt|j|j	�D]=\}}	|j||j
|�|	_|j||	||�q�Wx$|jD]}
|j
||
|�q�WdS(sSets all the descriptor's fields's types.

    This method also sets the containing types on any extensions.

    Args:
      package: The current package of desc_proto.
      desc_proto: The message descriptor to update.
      scope: Enclosing scope of available types.
    RN(RqR�RR�tzipRR�R�RGR�R�R
R�R�(R*RlR�Rdt	main_desctnested_packageR�R�R�R�R�((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR�s"cCs|jr$|j||j|�}nd}|jd�sot|tj�r]tjj|_	qotjj
|_	ntjj|j	�|_|j	tjjks�|j	tjj
kr�||_n|j	tjj
kr�||_n|jtjjkrt|_g|_n�|jd�r&t|_|j	tjjksJ|j	tjjkr_t|j�|_q�|j	tjjkr�|j|_q�|j	tjjkr�|jj�dk|_q�|j	tjj
kr�|jj|jj|_q�|j	tjjkrtj |j�|_q�t!|j�|_n�t|_|j	tjjksY|j	tjjkred|_n�|j	tjjkr�d|_ny|j	tjjkr�t|_nX|j	tjj
kr�|jj"dj|_n*|j	tjjkr�d|_n	d|_|j	|_	dS(	sSets the field's type, cpp_type, message_type and enum_type.

    Args:
      field_proto: Data about the field in proto format.
      field_desc: The descriptor to modiy.
      package: The package the field's container is in.
      scope: Enclosing scope of available types.
    RR�ttrueguiRtN(#t	type_nameR�R	RR4RR5RRRt	TYPE_ENUMtProtoTypeToCppProtoTypeR�t
TYPE_GROUPRFR~RtLABEL_REPEATEDR�R�R�R�tTYPE_DOUBLEt
TYPE_FLOATtfloattTYPE_STRINGt	TYPE_BOOLtlowertvalues_by_nameRCt
TYPE_BYTESRt	CUnescapetintRh(R*R�R�RlRdR:((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR� s^								cCs4tjd|jd|d|jdt|�dd�S(s�Creates a enum value descriptor object from a enum value proto.

    Args:
      value_proto: The proto describing the enum value.
      index: The index of the enum value.

    Returns:
      An initialized EnumValueDescriptor object.
    RR�RCRRN(RtEnumValueDescriptorRRCRR	(R*tvalue_protoR�((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR�fs			c
Cs�|r!dj||jf�}n	|j}gt|j�D]'\}}|j|||||�^q:}	tjd|jd|d|d|	dt|�d|�}
|
|j|<|
S(s�Make a protobuf ServiceDescriptor given a ServiceDescriptorProto.

    Args:
      service_proto: The descriptor_pb2.ServiceDescriptorProto protobuf message.
      service_index: The index of the service in the File.
      scope: Dict mapping short and full symbols to message and enum types.
      package: Optional package name for the new message EnumDescriptor.
      file_desc: The file containing the service descriptor.

    Returns:
      The added descriptor.
    RRR7R�tmethodsRR9(	R�RR�tmethodt_MakeMethodDescriptorRR?RR"(R*R�t
service_indexRdRlRJtservice_nameR�tmethod_protoR�R:((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR�xs	:	
c	Cs�dj||jf�}|j||j|�}|j||j|�}tjd|jd|d|dd	d|d|dt|��S(
s�Creates a method descriptor from a MethodDescriptorProto.

    Args:
      method_proto: The proto describing the method.
      service_name: The name of the containing service.
      package: Optional package name to look up for types.
      scope: Scope containing available types.
      index: Index of the method in the service.

    Returns:
      An initialized MethodDescriptor object.
    RRR7R�tcontaining_servicet
input_typetoutput_typeRN(	R�RR�R�R�RtMethodDescriptorR	R(	R*R�R�RlRdR�R7R�R�((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR��sccssxl|D]d}t|j�|fVx|j|j�D]}|Vq4Wx%|jD]}t|j�|fVqMWqWdS(s�Pulls out all the symbols from descriptor protos.

    Args:
      descriptors: The messages to extract descriptors from.
    Yields:
      A two element tuple of the type name and descriptor object.
    N(RqR7RzR�R�(R*tdescriptorsR:RURs((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRz�s	
	ccsBx;|D]3}|j|�}|Vx|jD]}|Vq+WqWdS(s�Recursively finds dependencies for file protos.

    Args:
      dependencies: The names of the files being depended on.

    Yields:
      Each direct and indirect dependency.
    N(RMRo(R*RoRvtdep_desct
parent_dep((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRu�s


cCsr||krjt|�jd�}xF|rfdj||g�}||krV|}Pq$|jd�q$Wn||S(s?Finds a given type name in the current scope.

    Args:
      package: The package the proto should be located in.
      type_name: The name of the type to be found in the scope.
      scope: Dict mapping short and full symbols to message and enum types.

    Returns:
      The descriptor for the requested type.
    Ri����(RqtsplitR�tpop(R*RlR�Rdt
componentstpossible_match((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyR��s	N('t__name__t
__module__t__doc__t_USE_C_DESCRIPTORSR	RR+R,R3R;R>RARIRKR8RMRZRTR[R_RbReRfRiRjRRRNR}RR�R�R�R�R�R�R�RzRuR�(((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyResJ							*				0										UP&+	 	F		 			cCs|jd�r|Sd|S(NRs.%s(t
startswith(R((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyRq�scCstS(N(t_DEFAULT(((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pytDefault�s(R�t
__author__R%R/RRRR�RRRtobjectRRqRtdefault_poolR�R�(((sC/usr/lib/python2.7/site-packages/google/protobuf/descriptor_pool.pyt<module>8s$				����		PK�\���m0m0protobuf/message.pyonu�[����
���hc@shdZdZdefd��YZdefd��YZdefd��YZdefd	��YZd
S(s6Contains an abstract base class for protocol messages.s#robinson@google.com (Will Robinson)tErrorcBseZRS((t__name__t
__module__(((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyR'stDecodeErrorcBseZRS((RR(((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyR(stEncodeErrorcBseZRS((RR(((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyR)stMessagecBseZdZgZdZdd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(sUAbstract base class for protocol messages.

  Protocol message classes are almost always generated by the protocol
  compiler.  These generated types subclass Message and implement the methods
  shown below.

  TODO(robinson): Link to an HTML document here.

  TODO(robinson): Document that instances of this class will also
  have an Extensions attribute with __getitem__ and __setitem__.
  Again, not sure how to best convey this.

  TODO(robinson): Document that the class must also have a static
    RegisterExtension(extension_field) method.
    Not sure how to best express at this point.
  cCs t|��}|j|�|S(N(ttypet	MergeFrom(tselftmemotclone((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__deepcopy__Es
cCs
t�dS(s9Recursively compares two messages by value and structure.N(tNotImplementedError(Rt	other_msg((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__eq__JscCs||kS(N((RR
((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__ne__NscCstd��dS(Nsunhashable object(t	TypeError(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__hash__RscCs
t�dS(s7Outputs a human-readable representation of the message.N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__str__UscCs
t�dS(s7Outputs a human-readable representation of the message.N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__unicode__YscCs
t�dS(s�Merges the contents of the specified message into current message.

    This method merges the contents of the specified message into the current
    message. Singular fields that are set in the specified message overwrite
    the corresponding fields in the current message. Repeated fields are
    appended. Singular sub-messages and groups are recursively merged.

    Args:
      other_msg: Message to merge into the current message.
    N(R(RR
((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyR]scCs+||krdS|j�|j|�dS(s�Copies the content of the specified message into the current message.

    The method clears the current message and then merges the specified
    message using MergeFrom.

    Args:
      other_msg: Message to copy into the current one.
    N(tClearR(RR
((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytCopyFromjs	
cCs
t�dS(s,Clears all data that was set in the message.N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyRxscCs
t�dS(sMark this as present in the parent.

    This normally happens automatically when you assign a field of a
    sub-message, but sometimes you want to make the sub-message
    present while keeping it empty.  If you find yourself using this,
    you may want to reconsider your design.N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytSetInParent|scCs
t�dS(s�Checks if the message is initialized.

    Returns:
      The method returns True if the message is initialized (i.e. all of its
      required fields are set).
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt
IsInitialized�scCs
t�dS(sZMerges serialized protocol buffer data into this message.

    When we find a field in |serialized| that is already present
    in this message:
      - If it's a "repeated" field, we append to the end of our list.
      - Else, if it's a scalar, we overwrite our field.
      - Else, (it's a nonrepeated composite), we recursively merge
        into the existing composite.

    TODO(robinson): Document handling of unknown fields.

    Args:
      serialized: Any object that allows us to call buffer(serialized)
        to access a string of bytes using the buffer interface.

    TODO(robinson): When we switch to a helper, this will return None.

    Returns:
      The number of bytes read from |serialized|.
      For non-group messages, this will always be len(serialized),
      but for messages which are actually groups, this will
      generally be less than len(serialized), since we must
      stop when we reach an END_GROUP tag.  Note that if
      we *do* stop because of an END_GROUP tag, the number
      of bytes returned does not include the bytes
      for the END_GROUP tag information.
    N(R(Rt
serialized((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytMergeFromString�scCs|j�|j|�dS(s�Parse serialized protocol buffer data into this message.

    Like MergeFromString(), except we clear the object first and
    do not return the value that MergeFromString returns.
    N(RR(RR((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytParseFromString�s
cKs
t�dS(sSerializes the protocol message to a binary string.

    Arguments:
      **kwargs: Keyword arguments to the serialize method, accepts
        the following keyword args:
        deterministic: If true, requests deterministic serialization of the
          protobuf, with predictable ordering of map keys.

    Returns:
      A binary string representation of the message if all of the required
      fields in the message are set (i.e. the message is initialized).

    Raises:
      message.EncodeError if the message isn't initialized.
    N(R(Rtkwargs((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytSerializeToString�scKs
t�dS(s�Serializes the protocol message to a binary string.

    This method is similar to SerializeToString but doesn't check if the
    message is initialized.

    Arguments:
      **kwargs: Keyword arguments to the serialize method, accepts
        the following keyword args:
        deterministic: If true, requests deterministic serialization of the
          protobuf, with predictable ordering of map keys.

    Returns:
      A string representation of the partial message.
    N(R(RR((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytSerializePartialToString�scCs
t�dS(s�Returns a list of (FieldDescriptor, value) tuples for all
    fields in the message which are not empty.  A message field is
    non-empty if HasField() would return true. A singular primitive field
    is non-empty if HasField() would return true in proto2 or it is non zero
    in proto3. A repeated field is non-empty if it contains at least one
    element.  The fields are ordered by field numberN(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt
ListFields�scCs
t�dS(s�Checks if a certain field is set for the message, or if any field inside
    a oneof group is set.  Note that if the field_name is not defined in the
    message descriptor, ValueError will be raised.N(R(Rt
field_name((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytHasField�scCs
t�dS(s�Clears the contents of a given field, or the field set inside a oneof
    group.  If the name neither refers to a defined field or oneof group,
    ValueError is raised.N(R(RR((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt
ClearField�scCs
t�dS(s�Returns the name of the field that is set inside a oneof group, or
    None if no field is set.  If no group with the given name exists, ValueError
    will be raised.N(R(Rtoneof_group((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt
WhichOneofscCs
t�dS(N(R(Rtextension_handle((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytHasExtension	scCs
t�dS(N(R(RR$((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytClearExtensionscCs
t�dS(N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytDiscardUnknownFieldsscCs
t�dS(smReturns the serialized size of this message.
    Recursively calls ByteSize() on all contained messages.
    N(R(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pytByteSizescCs
t�dS(s6Internal method used by the protocol message implementation.
    Clients should not call this directly.

    Sets a listener that this message will call on certain state transitions.

    The purpose of this method is to register back-edges from children to
    parents at runtime, for the purpose of setting "has" bits and
    byte-size-dirty bits in the parent and ancestor objects whenever a child or
    descendant object is modified.

    If the client wants to disconnect this Message from the object tree, she
    explicitly sets callback to None.

    If message_listener is None, unregisters any existing listener.  Otherwise,
    message_listener must implement the MessageListener interface in
    internal/message_listener.py, and we discard any listener registered
    via a previous _SetListener() call.
    N(R(Rtmessage_listener((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt_SetListenerscCstd|j��S(sSupport the pickle protocol.R(tdictR(R((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__getstate__-scCs|j�|j|d�dS(sSupport the pickle protocol.RN(t__init__R(Rtstate((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt__setstate__1s
N( RRt__doc__t	__slots__tNonet
DESCRIPTORRRRRRRRRRRRRRRRRR R!R#R%R&R'R(R*R,R/(((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyR,s:						
										!											N(R0t
__author__t	ExceptionRRRtobjectR(((s;/usr/lib/python2.7/site-packages/google/protobuf/message.pyt<module>#s
PK�\�Ɨo��protobuf/reflection.pyonu�[����
���hc@s�dZdZddlmZddlmZej�dkrQddlmZ	nddlm
Z	e	jZiZd�Z
d	�Zd
S(s
Contains a metaclass and helper functions used to create
protocol message classes from Descriptor objects at runtime.

Recall that a metaclass is the "type" of a class.
(A class is to a metaclass what an instance is to a class.)

In this case, we use the GeneratedProtocolMessageType metaclass
to inject all the useful functionality into the classes
output by the protocol compiler at compile-time.

The upshot of all this is that the real implementation
details for ALL pure-Python protocol buffers are *here in
this file*.
s#robinson@google.com (Will Robinson)i����(tapi_implementation(tmessagetcpp(tcpp_message(tpython_messagecCs&t|�}|�}|j|�|S(s�Generate a new Message instance from this Descriptor and a byte string.

  Args:
    descriptor: Protobuf Descriptor object
    byte_str: Serialized protocol buffer byte string

  Returns:
    Newly created protobuf Message object.
  (t	MakeClasstParseFromString(t
descriptortbyte_strtresult_classtnew_msg((s>/usr/lib/python2.7/site-packages/google/protobuf/reflection.pytParseMessageCs
	
cCs�|tkrt|Si}x-|jj�D]\}}t|�||<q*W||tj<tt|j�tj	f|�}|t|<|S(s�Construct a class object for a protobuf described by descriptor.

  Composite descriptors are handled by defining the new class as a member of the
  parent class, recursing as deep as necessary.
  This is the dynamic equivalent to:

  class Parent(message.Message):
    __metaclass__ = GeneratedProtocolMessageType
    DESCRIPTOR = descriptor
    class Child(message.Message):
      __metaclass__ = GeneratedProtocolMessageType
      DESCRIPTOR = descriptor.nested_types[0]

  Sample usage:
    file_descriptor = descriptor_pb2.FileDescriptorProto()
    file_descriptor.ParseFromString(proto2_string)
    msg_descriptor = descriptor.MakeDescriptor(file_descriptor.message_type[0])
    msg_class = reflection.MakeClass(msg_descriptor)
    msg = msg_class()

  Args:
    descriptor: A descriptor.Descriptor object describing the protobuf.
  Returns:
    The Message class object described by the descriptor.
  (
tMESSAGE_CLASS_CACHEtnested_types_by_nametitemsRtGeneratedProtocolMessageTypet_DESCRIPTOR_KEYtstrtnameRtMessage(Rt
attributesRtnested_typetresult((s>/usr/lib/python2.7/site-packages/google/protobuf/reflection.pyRSs

N(t__doc__t
__author__tgoogle.protobuf.internalRtgoogle.protobufRtTypetgoogle.protobuf.pyextRtmessage_implRRRRR(((s>/usr/lib/python2.7/site-packages/google/protobuf/reflection.pyt<module>.s		PK�\�\��a�a�protobuf/text_format.pycnu�[����
���hc
@s+dZdZddlZddlZddlZejrBeZnddlm	Z	ddl
mZddl
mZddd	d
dgZ
e	j�e	j�e	j�e	j�fZejdej�Zejd
ej�Zeejjejjg�Zeddf�ZdZdefd��YZdefd��YZ de!fd��YZ"e#e#e#e#e$e#e$de$d�	Z%d�Z&de#e#e#e#e$e#e$e$d�	Z'de#e#e#e#e$e$d�Z(de#e#e#e#e$e$d�Z)d�Z*de!fd��YZ+e#e#e$d �Z,e#e#e$d!�Z-e#e#e$d"�Z.e#e#e$d#�Z/d$e!fd%��YZ0d&�Z1d'�Z2d(�Z3d)�Z4d*e!fd+��YZ5e5Z6d,�Z7d-�Z8d.�Z9d/�Z:d0�Z;d1�Z<e#e#d2�Z=e#e#d3�Z>e#e#d4�Z?e#d5�Z@d6�ZAd7�ZBd8�ZCdS(9sbContains routines for printing protocol messages in text format.

Simple usage example:

  # Create a proto object and serialize it to a text proto string.
  message = my_proto_pb2.MyMessage(foo='bar')
  text_proto = text_format.MessageToString(message)

  # Parse a text proto string.
  message = text_format.Parse(text_proto, my_proto_pb2.MyMessage())
s kenton@google.com (Kenton Varda)i����N(t
type_checkers(t
descriptor(t
text_encodingtMessageToStringtPrintMessaget
PrintFieldtPrintFieldValuetMerges-?inf(?:inity)?f?snanf?t't"sgoogle.protobuf.AnytErrorcBseZdZRS(s'Top-level module error for text_format.(t__name__t
__module__t__doc__(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR
Ist
ParseErrorcBs2eZdZdddd�Zd�Zd�ZRS(s3Thrown in case of text parsing or tokenizing error.cCs�|dk	r[|dk	r[t|�}|dk	rF|dj|�7}ndj||�}n|dk	r�tt|�j|�ntt|�j�||_||_dS(Ns:{0}s	{0} : {1}(tNonetstrtformattsuperRt__init__t_linet_column(tselftmessagetlinetcolumntloc((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRPs	cCs|jS(N(R(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytGetLine]scCs|jS(N(R(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt	GetColumn`sN(RRR
RRRR(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRMs
	t
TextWritercBs,eZd�Zd�Zd�Zd�ZRS(cCs.tjrtj�|_ntj�|_dS(N(tsixtPY2tiotBytesIOt_writertStringIO(Rtas_utf8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRfs	cCs@tjr0t|tj�r0|jd�}q0n|jj|�S(Nsutf-8(RRt
isinstancet	text_typetencodeR"twrite(Rtval((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR(ls	cCs
|jj�S(N(R"tclose(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR*rscCs
|jj�S(N(R"tgetvalue(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR+us(RRRR(R*R+(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRds			ic

Csjt|�}
t|
|||||||||	�
}|j|�|
j�}|
j�|rf|j�S|S(s�Convert protobuf message to text format.

  Floating point values can be formatted compactly with 15 digits of
  precision (which is the most that IEEE 754 "double" can guarantee)
  using float_format='.15g'. To ensure that converting to text and back to a
  proto will result in an identical value, float_format='.17g' should be used.

  Args:
    message: The protocol buffers message.
    as_utf8: Produce text output in UTF8 format.
    as_one_line: Don't introduce newlines between fields.
    pointy_brackets: If True, use angle brackets instead of curly braces for
      nesting.
    use_index_order: If True, print fields of a proto message using the order
      defined in source code instead of the field number. By default, use the
      field number order.
    float_format: If set, use this to specify floating point number formatting
      (per the "Format Specification Mini-Language"); otherwise, str() is used.
    use_field_number: If True, print field numbers instead of names.
    descriptor_pool: A DescriptorPool used to resolve Any types.
    indent: The indent level, in terms of spaces, for pretty print.
    message_formatter: A function(message, indent, as_one_line): unicode|None
      to custom format selected sub-messages (usually based on message type).
      Use to pretty print parts of the protobuf for easier diffing.

  Returns:
    A string of the text formatted protocol buffer message.
  (Rt_PrinterRR+R*trstrip(
RR$tas_one_linetpointy_bracketstuse_index_ordertfloat_formattuse_field_numbertdescriptor_pooltindenttmessage_formattertouttprintertresult((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRys&	


cCs1|jtjjko0|jjo0|jj�jS(N(ttypeRtFieldDescriptortTYPE_MESSAGEtmessage_typethas_optionst
GetOptionst	map_entry(tfield((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_IsMapEntry�scCs8t|||||||||	|
�
}|j|�dS(N(R,R(RR6R4R$R.R/R0R1R2R3R5R7((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	c
	Cs5t||||||||	�}
|
j||�dS(s%Print a single field name/value pair.N(R,R(R@tvalueR6R4R$R.R/R0R1R5R7((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�sc
	Cs5t||||||||	�}
|
j||�dS(s0Print a single field value (not including name).N(R,R(R@RBR6R4R$R.R/R0R1R5R7((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�scCs�|dkr+ddlm}|j�}nddlm}|j�}y|j|�}Wntk
rndSX|j|�}|�S(s!Returns a protobuf message instance.

  Args:
    type_name: Fully-qualified protobuf  message type name string.
    descriptor_pool: DescriptorPool instance.

  Returns:
    A Message instance of type matching type_name, or None if the a Descriptor
    wasn't found matching type_name.
  i����(R3(tsymbol_databaseN(Rtgoogle.protobufR3tDefaultRCtFindMessageTypeByNametKeyErrortGetPrototype(t	type_nameR3tpool_modRCtdatabasetmessage_descriptorR<((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_BuildMessageFromTypeName�s
R,c
BsheZdZdeeeed	ed	d	d�	Zd�Zd�Zd�Zd�Z	d�Z
d�ZRS(
s)Text format printer for protocol message.icCs^||_||_||_||_||_||_||_||_|	|_|
|_	dS(sZInitialize the Printer.

    Floating point values can be formatted compactly with 15 digits of
    precision (which is the most that IEEE 754 "double" can guarantee)
    using float_format='.15g'. To ensure that converting to text and back to a
    proto will result in an identical value, float_format='.17g' should be used.

    Args:
      out: To record the text format result.
      indent: The indent level for pretty print.
      as_utf8: Produce text output in UTF8 format.
      as_one_line: Don't introduce newlines between fields.
      pointy_brackets: If True, use angle brackets instead of curly braces for
        nesting.
      use_index_order: If True, print fields of a proto message using the order
        defined in source code instead of the field number. By default, use the
        field number order.
      float_format: If set, use this to specify floating point number formatting
        (per the "Format Specification Mini-Language"); otherwise, str() is
        used.
      use_field_number: If True, print field numbers instead of names.
      descriptor_pool: A DescriptorPool used to resolve Any types.
      message_formatter: A function(message, indent, as_one_line): unicode|None
        to custom format selected sub-messages (usually based on message type).
        Use to pretty print parts of the protobuf for easier diffing.
    N(
R6R4R$R.R/R0R1R2R3R5(RR6R4R$R.R/R0R1R2R3R5((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s%									cCs�t|j�|j�}|r�|j|j�|jjd|jd|jf�|j	|�|jj|j
rwdnd�tStSdS(s5Serializes if message is a google.protobuf.Any field.s%s[%s]t s
N(
RMtTypeNameR3tMergeFromStringRBR6R(R4ttype_urlt_PrintMessageFieldValueR.tTruetFalse(RRtpacked_message((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_TryPrintAsAnyMessage.s$
cCsu|j||j|j�}|dkr+tS|j}|jd|j�|j|�|j|jrjdnd�tS(NRNs
(R5R4R.RRTR6R(RS(RRt	formattedR6((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_TryCustomFormatMessage;s	
cCs%|jr|j|�rdS|jjtkrA|j|�rAdS|j�}|jrl|jdd��nx�|D]�\}}t	|�r�x�t
|�D]5}|j�d|d||�}|j||�q�Wqs|j
tjjkr
x1|D]}|j||�q�Wqs|j||�qsWdS(seConvert protobuf message to text format.

    Args:
      message: The protocol buffers message.
    NtkeycSs|djS(Ni(tindex(tx((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt<lambda>StRB(R5RXt
DESCRIPTORt	full_namet_ANY_FULL_TYPE_NAMERVt
ListFieldsR0tsortRAtsortedt
GetEntryClassRtlabelRR:tLABEL_REPEATED(RRtfieldsR@RBRYtentry_submsgtelement((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRFs"	
cCsa|j}|jd|j�|jr?|jt|j��n�|jr�|jd�|jj�j	r�|j
tjj
kr�|jtjjkr�|j|jj�n|j|j�|jd�n;|j
tjjkr�|j|jj�n|j|j�|jtjjkr'|jd�n|j||�|jrP|jd�n
|jd�dS(s%Print a single field name/value pair.RNt[t]s: s
N(R6R(R4R2Rtnumbertis_extensiontcontaining_typeR>tmessage_set_wire_formatR9RR:R;RetLABEL_OPTIONALR<R_t
TYPE_GROUPtnametcpp_typetCPPTYPE_MESSAGERR.(RR@RBR6((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRds*			
	cCs�|jrd}d}nd}d}|jra|jjd|�|j|�|jj|�nZ|jjd|�|jd7_|j|�|jd8_|jjd|j|�dS(	Nt<t>t{t}s %s s %s
iRN(R/R.R6R(RR4(RRBtopenbtcloseb((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRR�s			

cCs�|j}|jtjjkr.|j|�n�|jtjjkr�|jjj	|d�}|dk	rz|j|j�q�|jt
|��n'|jtjjkr,|jd�t|tj�r�|jd�}n|}|jtjjkr�t}n	|j}|jtj||��|jd�n�|jtjjkrg|rW|jd�q�|jd�nP|jtkr�|jdk	r�|jdj|j|��n|jt
|��dS(s�Print a single field value (not including name).

    For repeated fields, the value should be a single element.

    Args:
      field: The descriptor of the field to be printed.
      value: The value of the field.
    s"sutf-8ttruetfalses{1:{0}}N(R6RsRR:RtRRtCPPTYPE_ENUMt	enum_typetvalues_by_numbertgetRR(RrRtCPPTYPE_STRINGR%RR&R'R9t
TYPE_BYTESRTR$RtCEscapetCPPTYPE_BOOLt_FLOAT_TYPESR1R(RR@RBR6t
enum_valuet	out_valuetout_as_utf8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s2		
		N(RRR
RTRRRVRXRRRRR(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR,�s &	
			!	cCs^t|t�s<tjr*|jd�}q<|jd�}nt|jd�|||d|�S(s�Parses a text representation of a protocol message into a message.

  NOTE: for historical reasons this function does not clear the input
  message. This is different from what the binary msg.ParseFrom(...) does.

  Example
    a = MyProto()
    a.repeated_field.append('test')
    b = MyProto()

    text_format.Parse(repr(a), b)
    text_format.Parse(repr(a), b) # repeated_field contains ["test", "test"]

    # Binary version:
    b.ParseFromString(a.SerializeToString()) # repeated_field is now "test"

  Caller is responsible for clearing the message as needed.

  Args:
    text: Message text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  sutf-8s
R3(R%RRtPY3tdecodeR't
ParseLinestsplit(ttextRtallow_unknown_extensiontallow_field_numberR3((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytParse�s%	cCs^t|t�s<tjr*|jd�}q<|jd�}nt|jd�|||d|�S(s^Parses a text representation of a protocol message into a message.

  Like Parse(), but allows repeated values for a non-repeated field, and uses
  the last one.

  Args:
    text: Message text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  sutf-8s
R3(R%RRR�R�R't
MergeLinesR�(R�RR�R�R3((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	cCs%t||d|�}|j||�S(sParses a text representation of a protocol message into a message.

  Args:
    lines: An iterable of lines of a message's text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  R3(t_ParserR�(tlinesRR�R�R3tparser((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	cCs%t||d|�}|j||�S(sParses a text representation of a protocol message into a message.

  Args:
    lines: An iterable of lines of a message's text representation.
    message: A protocol buffer message to merge into.
    allow_unknown_extension: if True, skip over missing extensions and keep
      parsing
    allow_field_number: if True, both field number and field name are allowed.
    descriptor_pool: A DescriptorPool used to resolve Any types.

  Returns:
    The same message passed as argument.

  Raises:
    ParseError: On text parsing problems.
  R3(R�R�(R�RR�R�R3R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�3s	R�cBs�eZdZeedd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ed
��Zd�ZRS(
s(Text format parser for protocol message.cCs||_||_||_dS(N(R�R�R3(RR�R�R3((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRQs		cCs:t|t�s!|jd�}n|j|jd�|�S(sBParses a text representation of a protocol message into a message.sutf-8s
(R%RR�R�R�(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytParseFromStringYscCst|_|j||�|S(sBParses a text representation of a protocol message into a message.(RTt_allow_multiple_scalarst
_ParseOrMerge(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�_s	cCs|j|jd�|�S(sBMerges a text representation of a protocol message into a message.s
(t_MergeLinesR�(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRPescCst|_|j||�|S(sBMerges a text representation of a protocol message into a message.(RSR�R�(RR�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�is	cCs3t|�}x |j�s.|j||�qWdS(s�Converts a text representation of a protocol message into a message.

    Args:
      lines: Lines of a message's text representation.
      message: A protocol buffer message to merge into.

    Raises:
      ParseError: On text parsing problems.
    N(t	TokenizertAtEndt_MergeField(RR�Rt	tokenizer((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�os
c	Cs�|j}|jd�r�|j�g}x&|jd�rO|j|j��q*Wdj|�}|js�|jd|j��n|jj	|�}|s�|j
r�d}q�|jd|��n.||jkr�|jd||jf��n|j
d�n(|j�}|jro|j�rot|tt�}|jj|d�}|r|jr|jj|�}qn�|jj|d�}|s�|jj|j�d�}|r�|jtjjkr�d}q�n|r|jtjjkr|jj|krd}n|s'|jd|j|f��n|r\|jr�|jr�|j |jj�}|dk	r�||jkr�|jd|j||jj|jf��q�n|j!tjj"kr�|jd	�|j#}n|j
d	�|j$}|j%tjj&krI|jd�rIxMtrE||||�|jd�r5Pn|j
d
�qWqu||||�n|j
skt'�t(|�|jd
�s�|jd�ndS(
s�Merges a single protocol message field into a message.

    Args:
      tokenizer: A tokenizer to parse the field name and values.
      message: A protocol message to record the data.

    Raises:
      ParseError: In case of text parsing problems.
    Rjt.s+Message type "%s" does not have extensions.s�Extension "%s" not registered. Did you import the _pb2 module which defines it? If you are trying to place the extension in the MessageSet field of another message that is in an Any or MessageSet field, that message's _pb2 module must be imported as wells1Extension "%s" does not extend message type "%s".Rks*Message type "%s" has no field named "%s".sbField "%s" is specified along with field "%s", another member of oneof "%s" for message type "%s".t:t,t;N()R^t
TryConsumetConsumeIdentifiertappendtjoint
is_extendabletParseErrorPreviousTokenR_t
Extensionst_FindExtensionByNameR�RRntConsumetConsumeIdentifierOrNumberR�tisdigittParseIntegerRStfields_by_numberR�t_FindExtensionByNumbertfields_by_nametlowerR9RR:RqR<RrR�tcontaining_oneoft
WhichOneofRsRtt_MergeMessageFieldt_MergeScalarFieldReRftAssertionErrort_SkipFieldContents(	RR�RRLRrR@Rltwhich_oneoftmerger((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�}s�
				
	

		
cCs�|j�g}|jd�|j|j��|jd�|j|j��|jd�|j�g}x&|jd�r�|j|j��qnWdj|�dj|�fS(sBConsumes a google.protobuf.Any type URL and returns the type name.R�t/(R�R�R�R�R�(RR�tprefixRr((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_ConsumeAnyTypeUrl�s


cCs�t|�}|jd�r$d}n|jd�d}|jjtkr�|jd�r�|j|�\}}|jd�|jd�|jd�r�d}n|jd�d}t||j�}	|	s�t	d|��nxH|j|�s'|j
�r|jd	|f��n|j||	�q�W|j
tjjkrXt||j�j�}
nt||j�}
|
j|	d
|�n�|j
tjjkr�|jr�|j|j�}q(|r�t||j�j��}q(t||j�j�}n5|jr|j|}nt||j�}|j�xH|j|�sr|j
�r_|jd	|f��n|j||�q+W|r�|jjdj}|tjjkr�t||j�|j}
|
j|j�q�|jt||j�|j<ndS(
s"Merges a single scalar field into a message.

    Args:
      tokenizer: A tokenizer to parse the field value.
      message: The message of which field is a member.
      field: The descriptor of the field to be merged.

    Raises:
      ParseError: In case of text parsing problems.
    RuRvRwRxRjRkR�s$Type %s not found in descriptor poolsExpected "%s".ttype_url_prefixRBN(RAR�R�R<R_R`R�RMR3RR�R�R�ReRR:RftgetattrRrtaddtPackRmR�RdtSetInParentR�RsRtRYt	MergeFromRB(RR�RR@tis_map_entryt	end_tokenR�tpacked_type_nametexpanded_any_end_tokentexpanded_any_sub_messagetany_messagetsub_messaget
value_cpptypeRB((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��sb	


	

	
		
cCs%|j}t|d�o$|jdkS(Ntsyntaxtproto3(R^thasattrR�(RRL((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_IsProto3SyntaxAs	cCs�|j}d}|jtjjtjjtjjfkrHt|�}no|jtjj	tjj
tjjfkr�t|�}n6|jtjj
tjjfkr�t|�}n|jtjjtjjfkr�t|�}n�|jtjjtjjfkr|j�}n�|jtjjkr5|j�}n�|jtjjkrY|j�}n^|jtjjkr}|j�}n:|jtjjkr�|j|�}ntd|j��|jtjj kr|j!r�|j"|j#|�q�t$||j%�j#|�n�|j&|�}|j!ru|j're|re|j(|�re|j)d|j*j+|j+f��q�||j"|<nZ|j'r�|r�|j,|j%�r�|j)d|j*j+|j%f��nt-||j%|�dS(sHMerges a single scalar field into a message.

    Args:
      tokenizer: A tokenizer to parse the field value.
      message: A protocol message to record the data.
      field: The descriptor of the field to be merged.

    Raises:
      ParseError: In case of text parsing problems.
      RuntimeError: On runtime errors.
    sUnknown field type %ds;Message type "%s" should not have multiple "%s" extensions.s7Message type "%s" should not have multiple "%s" fields.N(.R�RR9RR:t
TYPE_INT32tTYPE_SINT32t
TYPE_SFIXED32t
_ConsumeInt32t
TYPE_INT64tTYPE_SINT64t
TYPE_SFIXED64t
_ConsumeInt64tTYPE_UINT32tTYPE_FIXED32t_ConsumeUint32tTYPE_UINT64tTYPE_FIXED64t_ConsumeUint64t
TYPE_FLOATtTYPE_DOUBLEtConsumeFloatt	TYPE_BOOLtConsumeBooltTYPE_STRINGt
ConsumeStringR�tConsumeByteStringt	TYPE_ENUMtConsumeEnumtRuntimeErrorReRfRmR�R�R�RrR�R�tHasExtensionR�R^R_tHasFieldtsetattr(RR�RR@t_RBtcan_check_presence((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Gs\					N(RRR
RTRRR�R�RPR�R�R�R�R�tstaticmethodR�R�(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Ns						m		HcCsJ|jd�r<|jd�r<|jd�r<t|�n
t|�dS(s}Skips over contents (value or message) of a field.

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  R�RwRuN(R�t	LookingAtt_SkipFieldValuet_SkipFieldMessage(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s
cCs�|jd�rI|j�x|jd�r8|j�qW|jd�n
|j�t|�|jd�s||jd�ndS(s�Skips over a complete field (name and value/message).

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  RjR�RkR�R�N(R�R�R�R�(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt
_SkipField�s


cCsm|jd�rd}n|jd�d}x.|jd�r[|jd�r[t|�q.W|j|�dS(sfSkips over a field message.

  Args:
    tokenizer: A tokenizer to parse the field name and values.
  RuRvRwRxN(R�R�R�R�(R�t	delimiter((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	
#cCsq|j�r#x|j�rqWdS|j�rmt|�rmt|�rm|j�rmtd|j��ndS(s�Skips over a field value.

  Args:
    tokenizer: A tokenizer to parse the field name and values.

  Raises:
    ParseError: In case an invalid field value is found.
  NsInvalid field value: (tTryConsumeByteStringtTryConsumeIdentifiert_TryConsumeInt64t_TryConsumeUint64tTryConsumeFloatRttoken(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s

R�cBs�eZdZejd�Zejdej�Zejdej�Zejdj	ddgge
D]Zdjde�^qa��Z
ejd	�Zejd
�Zed�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zed�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,RS(&s�Protocol buffer text representation tokenizer.

  This class handles the lower level string parsing by splitting it into
  meaningful tokens.

  It was directly ported from the Java protocol buffer API.
  s\s+s	(\s*#.*$)s(\s|(#.*$))+t|s[a-zA-Z_][0-9a-zA-Z_+-]*s#([0-9+-]|(\.[0-9]))[0-9a-zA-Z_.+-]*s!{qt}([^{qt}\n\\]|\\.)*({qt}|\\?$)tqts
[^\d\W]\w*s\w+cCs�d|_d|_d|_d|_d|_t|�|_d|_d|_	d|_
t|_||_
|rx|jp~|j|_|j�|j�dS(Nii����R](t	_positionRRRt_token_startR�titert_linest
_current_linet_previous_linet_previous_columnRSt_more_linest_skip_commentst_WHITESPACE_OR_COMMENTt_WHITESPACEt_whitespace_patternt_SkipWhitespacet	NextToken(RR�t
skip_comments((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s										
cCs
|j|kS(N(R�(RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�scCs|jS(s^Checks the end of the text was reached.

    Returns:
      True iff the end was reached.
    (R�(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�
scCsxxqt|j�|jkrsyt|j�|_Wn$tk
rWd|_t|_dSX|jd7_d|_qWdS(NR]ii(	tlenR�RtnextR�t
StopIterationRTRR(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_PopLines
		cCsdx]tr_|j�|jj|j|j�}|s8Pnt|jd��}|j|7_qWdS(Ni(RSRRtmatchR�RR	tgroup(RR
tlength((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRs	
cCs!|j|kr|j�tStS(s�Tries to consume a given piece of text.

    Args:
      token: Text to consume.

    Returns:
      True iff the text was consumed.
    (R�RRSRT(RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�'s	
cCs)|j|�s%|jd|��ndS(s�Consumes a piece of text.

    Args:
      token: Text to consume.

    Raises:
      ParseError: If the text couldn't be consumed.
    sExpected "%s".N(R�R(RR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�5s	cCs;|j}|jj|�s-|jd��n|j�|S(NsExpected comment.(R�t_COMMENTR
RR(RR8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytConsumeCommentAs
	
cCsS|jdko|jdk}|j}|j�}|j|koF|}||fS(sCConsumes a comment, returns a 2-tuple (trailing bool, comment str).i(RRR�R(Rtjust_startedtbefore_parsingtcommentttrailing((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytConsumeCommentOrTrailingCommentHs	cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Xs


cCs;|j}|jj|�s-|jd��n|j�|S(s�Consumes protocol message field identifier.

    Returns:
      Identifier string.

    Raises:
      ParseError: If an identifier couldn't be consumed.
    sExpected identifier.(R�t_IDENTIFIERR
RR(RR8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�_s
		
cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytTryConsumeIdentifierOrNumberns


cCs?|j}|jj|�s1|jd|��n|j�|S(s�Consumes protocol message field identifier.

    Returns:
      Identifier string.

    Raises:
      ParseError: If an identifier couldn't be consumed.
    s&Expected identifier or number, got %s.(R�t_IDENTIFIER_OR_NUMBERR
RR(RR8((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�us
		
cCs+y|j�tSWntk
r&tSXdS(N(tConsumeIntegerRSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pytTryConsumeInteger�s


cCsRyt|jd|�}Wn(tk
rC}|jt|���nX|j�|S(s�Consumes an integer number.

    Args:
      is_long: True if the value should be returned as a long integer.
    Returns:
      The integer parsed.

    Raises:
      ParseError: If an integer couldn't be consumed.
    tis_long(t_ParseAbstractIntegerR�t
ValueErrorRRR(RRR8te((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s
cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s


cCsLyt|j�}Wn(tk
r=}|jt|���nX|j�|S(s�Consumes an floating point number.

    Returns:
      The number parsed.

    Raises:
      ParseError: If a floating point number couldn't be consumed.
    (t
ParseFloatR�RRRR(RR8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	
cCsLyt|j�}Wn(tk
r=}|jt|���nX|j�|S(s�Consumes a boolean value.

    Returns:
      The bool parsed.

    Raises:
      ParseError: If a boolean value couldn't be consumed.
    (t	ParseBoolR�RRRR(RR8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	
cCs+y|j�tSWntk
r&tSXdS(N(R�RSRRT(R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s


cCsI|j�}ytj|d�SWn"tk
rD}|j|��nXdS(s�Consumes a string value.

    Returns:
      The string parsed.

    Raises:
      ParseError: If a string value couldn't be consumed.
    sutf-8N(R�RR&tUnicodeDecodeErrort_StringParseError(Rt	the_bytesR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s
	cCsR|j�g}x3|jrD|jdtkrD|j|j��qWdj|�S(s�Consumes a byte array value.

    Returns:
      The array parsed (as a string).

    Raises:
      ParseError: If a byte array value couldn't be consumed.
    iR](t_ConsumeSingleByteStringR�t_QUOTESR�R�(Rtthe_list((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s	cCs�|j}t|�dks+|dtkrD|jd|f��nt|�dksj|d|dkr�|jd|f��nytj|dd!�}Wn(tk
r�}|jt|���nX|j�|S(sOConsume one token of a string literal.

    String literals (whether bytes or text) can come in multiple adjacent
    tokens which are automatically concatenated, like in C or Python.  This
    method only consumes one token.

    Returns:
      The token parsed.
    Raises:
      ParseError: When the wrong format data is found.
    iisExpected string but found: %rii����sString missing ending quote: %r(	R�R	R&RRt	CUnescapeRRR(RR�R8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR%�s	"&
cCsOyt||j�}Wn(tk
r@}|jt|���nX|j�|S(N(t	ParseEnumR�RRRR(RR@R8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s
cCst||jd|jd�S(s�Creates and *returns* a ParseError for the previously read token.

    Args:
      message: A message to set for the exception.

    Returns:
      A ParseError instance.
    i(RR�R(RR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s	cCst||jd|jd�S(s9Creates and *returns* a ParseError for the current token.i(RRR(RR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRscCs|jdt|��S(NsCouldn't parse string: (RR(RR((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR#scCs�|j|_|j|_|jt|j�7_|j�|jsPd|_dS|jj	|j
|j�}|r�|jr�|jj	|j
|j�}n|r�|j
d�}||_n|j
|j|_dS(s Reads the next meaningful token.R]Ni(RR�RRR	R�RRt_TOKENR
R�RRR(RR
R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyRs
		(-RRR
tretcompileRt	MULTILINERRR�R&tmarkRR*RRRSRR�R�RRR�R�RRR�R�RR�RRTRR�R�R�R�R�R�R%R�R�RR#R(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��sJ,																									cCst|dtdt�S(s�Consumes a signed 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If a signed 32bit integer couldn't be consumed.
  t	is_signedR(t_ConsumeIntegerRSRT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�8scCst|dtdt�S(s�Consumes an unsigned 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an unsigned 32bit integer couldn't be consumed.
  R/R(R0RT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�GscCs+yt|�tSWntk
r&tSXdS(N(R�RSRRT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�Vs


cCst|dtdt�S(s�Consumes a signed 32bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If a signed 32bit integer couldn't be consumed.
  R/R(R0RS(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�^scCs+yt|�tSWntk
r&tSXdS(N(R�RSRRT(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�ms


cCst|dtdt�S(s�Consumes an unsigned 64bit integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an unsigned 64bit integer couldn't be consumed.
  R/R(R0RTRS(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�uscCs7yt|d|d|�tSWntk
r2tSXdS(NR/R(R0RSRRT(R�R/R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt_TryConsumeInteger�s

cCsXyt|jd|d|�}Wn(tk
rI}|jt|���nX|j�|S(sUConsumes an integer number from tokenizer.

  Args:
    tokenizer: A tokenizer used to parse the number.
    is_signed: True if a signed integer must be parsed.
    is_long: True if a long integer must be parsed.

  Returns:
    The integer parsed.

  Raises:
    ParseError: If an integer with given characteristics couldn't be consumed.
  R/R(R�R�RRRR(R�R/RR8R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR0�s
cCsAt|d|�}tdt|�t|�}|j|�|S(sParses an integer.

  Args:
    text: The text to parse.
    is_signed: True if a signed integer must be parsed.
    is_long: True if a long integer must be parsed.

  Returns:
    The integer value.

  Raises:
    ValueError: Thrown Iff the text is not a valid integer.
  Ri(Rt_INTEGER_CHECKERStintt
CheckValue(R�R/RR8tchecker((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR��s
cCsLy$|rt|d�St|d�SWn!tk
rGtd|��nXdS(sParses an integer without checking size/signedness.

  Args:
    text: The text to parse.
    is_long: True if the value should be returned as a long integer.

  Returns:
    The integer value.

  Raises:
    ValueError: Thrown Iff the text is not a valid integer.
  isCouldn't parse integer: %sN(tlongR3R(R�R((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR�s

cCs�yt|�SWn�tk
r�tj|�rT|ddkrGtd�Std�Sq�tj|�rmtd�Syt|jd��SWq�tk
r�td|��q�XnXdS(	s�Parse a floating point number.

  Args:
    text: Text to parse.

  Returns:
    The number parsed.

  Raises:
    ValueError: If a floating point number couldn't be parsed.
  it-s-inftinftnantfsCouldn't parse float: %sN(tfloatRt_FLOAT_INFINITYR
t
_FLOAT_NANR-(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR �s




cCs0|dkrtS|dkr tStd	��d
S(
s�Parse a boolean value.

  Args:
    text: Text to parse.

  Returns:
    Boolean values parsed

  Raises:
    ValueError: If text is not a valid boolean.
  R{ttt1RSR|R:t0RTsExpected "true" or "false".N(R{R>R?RS(R|R:R@RT(RSRTR(R�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR!�s
cCs�|j}yt|d�}WnNtk
rl|jj|d�}|dkr�td|j|f��q�niXt|jd�r�|jj	dkr�|Sn|j
j|d�}|dkr�td|j|f��n|jS(s&Parse an enum value.

  The value can be specified by a number (the enum value), or by
  a string literal (the enum name).

  Args:
    field: Enum field descriptor.
    value: String value.

  Returns:
    Enum value number.

  Raises:
    ValueError: If the enum value could not be parsed.
  is%Enum type "%s" has no value named %s.R�R�s+Enum type "%s" has no value with number %d.N(R~R3Rtvalues_by_nameR�RR_R�tfileR�RRl(R@RBtenum_descriptorRlR�((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyR)s 	
(DR
t
__author__R R+RR�R3R6tgoogle.protobuf.internalRRDRRt__all__tUint32ValueCheckertInt32ValueCheckertUint64ValueCheckertInt64ValueCheckerR2R,t
IGNORECASER<R=t	frozensetR:t
CPPTYPE_FLOATtCPPTYPE_DOUBLER�R&R`t	ExceptionR
RtobjectRRTRRRARRRRMR,R�RR�R�R�R�R�R�R�R�t
_TokenizerR�R�R�R�R�R�R1R0R�RR R!R)(((s?/usr/lib/python2.7/site-packages/google/protobuf/text_format.pyt<module>)s�						)	

	�/#�@				�V							 	PK�\L��j�
�
protobuf/timestamp_pb2.pynu�[���# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/protobuf/timestamp.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='google/protobuf/timestamp.proto',
  package='google.protobuf',
  syntax='proto3',
  serialized_pb=_b('\n\x1fgoogle/protobuf/timestamp.proto\x12\x0fgoogle.protobuf\"+\n\tTimestamp\x12\x0f\n\x07seconds\x18\x01 \x01(\x03\x12\r\n\x05nanos\x18\x02 \x01(\x05\x42~\n\x13\x63om.google.protobufB\x0eTimestampProtoP\x01Z+github.com/golang/protobuf/ptypes/timestamp\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3')
)




_TIMESTAMP = _descriptor.Descriptor(
  name='Timestamp',
  full_name='google.protobuf.Timestamp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='seconds', full_name='google.protobuf.Timestamp.seconds', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nanos', full_name='google.protobuf.Timestamp.nanos', index=1,
      number=2, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=52,
  serialized_end=95,
)

DESCRIPTOR.message_types_by_name['Timestamp'] = _TIMESTAMP
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Timestamp = _reflection.GeneratedProtocolMessageType('Timestamp', (_message.Message,), dict(
  DESCRIPTOR = _TIMESTAMP,
  __module__ = 'google.protobuf.timestamp_pb2'
  # @@protoc_insertion_point(class_scope:google.protobuf.Timestamp)
  ))
_sym_db.RegisterMessage(Timestamp)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.google.protobufB\016TimestampProtoP\001Z+github.com/golang/protobuf/ptypes/timestamp\370\001\001\242\002\003GPB\252\002\036Google.Protobuf.WellKnownTypes'))
# @@protoc_insertion_point(module_scope)
PK�\,y�(protobuf/source_context_pb2.pyonu�[����
���hc-@sddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!d d"dd#ed$ed%�jd&�d'dd(dddd)ed*dd+dde�gd,gd-gd.gd+dd/eddd0gd1gd2d3d4d5�Zeejd<eje�e	jdejfed6ed7d8��Zeje�ee_ej ej!�ed9��e_"dS(:i����NiicCs|S(N((tx((sF/usr/lib/python2.7/site-packages/google/protobuf/source_context_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sF/usr/lib/python2.7/site-packages/google/protobuf/source_context_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnames$google/protobuf/source_context.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
$google/protobuf/source_context.protogoogle.protobuf""

SourceContext
	file_name (	B�
com.google.protobufBSourceContextProtoPZAgoogle.golang.org/genproto/protobuf/source_context;source_context�GPB�Google.Protobuf.WellKnownTypesbproto3t
SourceContextt	full_namesgoogle.protobuf.SourceContexttfilenametfiletcontaining_typetfieldst	file_names'google.protobuf.SourceContext.file_nametindextnumberittypei	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti9tserialized_endi[t
DESCRIPTORt
__module__s"google.protobuf.source_context_pb2s�
com.google.protobufBSourceContextProtoPZAgoogle.golang.org/genproto/protobuf/source_context;source_context�GPB�Google.Protobuf.WellKnownTypes(#tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR*t
DescriptortNonetFieldDescriptortFalsetdecodet_SOURCECONTEXTtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((sF/usr/lib/python2.7/site-packages/google/protobuf/source_context_pb2.pyt<module>sV%				


	PK�\�M��protobuf/unittest_mset_pb2.pycnu�[����
���hc/@sNddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�ZddlmZejdd
ddddded�dejg�Zejdddddddedddejdddddddd d!d"d#d$d%d d&ed'dd(dd)dddd*ed+dd,dde�gd-gd.gd/gd,dd0eddd1gd2gd3d4d5d6�Zejdd7dd8dddedddejdd9dd:dddd;d!d<d#d d%d d&ed'dd(dd)dddd*ed+dd,dde�gd-ejdd=dd>dddd?d!d"d#d$d%d d&ed'dd(dd)dddd*ed+dd,dde�gd.gd/gd,dd0eddd1gd2gd3d@d5dA�ZejddBddCdddedddejddDddEddddFd!dGd#dGd%d d&ed'edH�jdI�d(dd)dddd*ed+dd,dde�gd-ejdd=ddJddddKd!d"d#d$d%d d&ed'dd(dd)dddd*ed+dd,dde�gd.gd/gd,dd0eddd1gd2gd3dLd5dM�ZejddNddOdddedddejddPddQddddRd!d<d#d d%dRd&ed'dd(dd)dddd*ed+dd,dde�ejddSddTdd ddd!dUd#dGd%dRd&ed'edH�d(dd)dddd*ed+dd,dde�gd-gd.gd/gd,dd0eddd1gd2gd3dVd5dW�ZejddXddYdddedddejddZdd[dddd d!d$d#d$d%dd&ed'gd(dd)dddd*ed+dd,dde�gd-gd.egd/gd,dd0eddd1gd2gd3d\d5dW�Zejejd_ ee_!eejdZ_ eej"d<eej"d7<eej"dB<eej"dX<ej#e�e	j$dej%fe&d]ed^d_��Z'ej(e'�e	j$d7ej%fe&d]ed^d_��Z)ej(e)�e	j$dBej%fe&d]ed^d_��Z*ej(e*�e	j$dXej%fe&dNe	j$dNej%fe&d]ed^d_��d]ed^d_��Z+ej(e+�ej(e+j,�eej-d=_ ej.j/ej-d=�eej-d=_ ej.j/ej-d=�ee_0ej1ej2�ed`��e_3dS(ai����NiicCs|S(N((tx((sE/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sE/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_mset_wire_format_pb2tnames#google/protobuf/unittest_mset.prototpackagetprotobuf_unittesttsyntaxtproto2t
serialized_pbs�
#google/protobuf/unittest_mset.protoprotobuf_unittest/google/protobuf/unittest_mset_wire_format.proto"Z
TestMessageSetContainer?
message_set (2*.proto2_wireformat_unittest.TestMessageSet"�
TestMessageSetExtension1	
i (2x
message_set_extension*.proto2_wireformat_unittest.TestMessageSet��^ (2+.protobuf_unittest.TestMessageSetExtension1"�
TestMessageSetExtension2
str (	2x
message_set_extension*.proto2_wireformat_unittest.TestMessageSet��^ (2+.protobuf_unittest.TestMessageSetExtension2"n

RawMessageSet3
item (
2%.protobuf_unittest.RawMessageSet.Item(
Item
type_id (
message (BH�tdependenciestTestMessageSetContainert	full_names)protobuf_unittest.TestMessageSetContainertfilenametfiletcontaining_typetfieldstmessage_sets5protobuf_unittest.TestMessageSetContainer.message_settindextnumberittypeitcpp_typei
tlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopetoptionst
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_startiktserialized_endi�tTestMessageSetExtension1s*protobuf_unittest.TestMessageSetExtension1tis,protobuf_unittest.TestMessageSetExtension1.iiitmessage_set_extensions@protobuf_unittest.TestMessageSetExtension1.message_set_extensioni0�i�igtTestMessageSetExtension2s*protobuf_unittest.TestMessageSetExtension2tstrs.protobuf_unittest.TestMessageSetExtension2.strii	Rsutf-8s@protobuf_unittest.TestMessageSetExtension2.message_set_extensioni��ijitItems$protobuf_unittest.RawMessageSet.Itemttype_ids,protobuf_unittest.RawMessageSet.Item.type_idiRs,protobuf_unittest.RawMessageSet.Item.messageiiSi{t
RawMessageSetsprotobuf_unittest.RawMessageSettitems$protobuf_unittest.RawMessageSet.itemi
t
DESCRIPTORt
__module__s!google.protobuf.unittest_mset_pb2sH�(4tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbR
t9google_dot_protobuf_dot_unittest__mset__wire__format__pb2tFileDescriptorR6t
DescriptortNonetFieldDescriptortFalset_TESTMESSAGESETCONTAINERtTruet_TESTMESSAGESETEXTENSION1tdecodet_TESTMESSAGESETEXTENSION2t_RAWMESSAGESET_ITEMt_RAWMESSAGESETt_TESTMESSAGESETtfields_by_nameR Rtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessageR-R0R4R2textensions_by_nametTestMessageSettRegisterExtensionthas_optionst
_ParseOptionstFileOptionst_options(((sE/usr/lib/python2.7/site-packages/google/protobuf/unittest_mset_pb2.pyt<module>sl%																					








	PK�\�m�Hlmlm"protobuf/unittest_no_arena_pb2.pycnu�[����
���hcy@s�.ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZ
ddlmZe
j�ZddlmZy
ejZWn ek
r�ejjjZnXdd
lmZejddddddded�dejejg�Zejdddddddedejdddddd d!dd"d�ejdd#dd$dd%d!dd"d�ejdd&dd'dd(d!dd"d�gd)dd!dd*d+d,d-�	Zej e�ej!e�Z"d Z#d%Z$d(Z%ejdd.dd/dddedejdd0dddd$d!dd"d�ejdd1dd$dd'd!dd"d�ejdd2dd'ddd!dd"d�ejdd3ddddd!dd"d�gd)dd!dd*d4d,d5�	Z&ej e&�ej'dd6dd7ddded)dd8ej(dd9dd:dddd$d"d%d;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�gdCgdDgdEgd!ddFe)dddGgdHgd*dId,dJ�Z*ej'ddKddLddded)dd8ej(ddMddNddddOd"d%d;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�gdCgdDgdEgd!ddFe)dddGgdHgd*dPd,dQ�Z+ej'ddRddSddded)dd8ej(ddMddTddddUd"d%d;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�gdCgdDgdEgd!ddFe)dddGgdHgd*dVd,dW�Z,ej'ddXddYddded)dd8ej(ddZdd[dddd$d"d%d;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd\dd]dd$dd'd"dd;d'd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd^dd_dd'ddd"d`d;dd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddaddbdddd d"d d;d d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddcddddd dd%d"dOd;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddeddfdd%dd(d"dgd;d'd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddhddidd(ddjd"djd;dd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddkddlddjddmd"d(d;d d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddnddoddmddpd"dqd;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddrddsddpddtd"dud;d'd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddvddwddtddxd"d'd;d(d<d$d=e)d>e-d�d?dd@dd)ddAe)dBdd!dde�ej(ddyddzddxdd{d"d$d;d%d<d$d=e)d>e-d�d?dd@dd)ddAe)dBdd!dde�ej(dd|dd}dd{dd`d"dmd;djd<d$d=e)d>e)d?dd@dd)ddAe)dBdd!dde�ej(dd~dddd`dd�d"dpd;dpd<d$d=e)d>ed��j.d��d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�ddqd"d{d;dpd<d$d=e)d>ed��d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�ddqddud"dtd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dduddgd"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�ddOdd�d"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�ddgdd�d"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d�d;dmd<d$d=e)d>d$d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d�d;dmd<d$d=e)d>d d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d�d;dmd<d$d=e)d>djd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dpd;dpd<d$d=e)d>ed��j.d��d?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"dpd;dpd<d$d=e)d>ed��j.d��d?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"d%d;d$d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dd;d'd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d`d;dd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d d;d d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dOd;d$d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dgd;d'd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"djd;dd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d(d;d d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dqd;d$d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dud;d'd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d'd;d(d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d$d;d%d<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dmd;djd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dpd;dpd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d{d;dpd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dtd;dtd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dxd;dtd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dxd;dtd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dxd;dtd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d�d;dmd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d�d;dmd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�ddUdd�d"d�d;dmd<dd=e)d>gd?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dpd;dpd<dd=e)d>gd?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"dpd;dpd<dd=e)d>gd?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"dxd;dtd<dd=e)d>gd?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd�dd�dd�dd�d"d%d;d$d<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"dd;d'd<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�dd�d"d`d;dd<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(dd�dd�dd�ddd"d d;d d<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(dddddd�ddd"dOd;d$d<d$d=e1d>dd?dd@dd)ddAe)dBdd!dde�ej(ddddddddd"dgd;d'd<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(dd	dd
dd�ddd"djd;dd<d$d=e1d>dUd?dd@dd)ddAe)dBdd!dde�ej(dddd
ddddd"d(d;d d<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(ddddddddd"dqd;d$d<d$d=e1d>d�d?dd@dd)ddAe)dBdd!dde�ej(ddddddddd"dud;d'd<d$d=e1d>dd?dd@dd)ddAe)dBdd!dde�ej(dddddd�ddd"d'd;d(d<d$d=e1d>e-d�d?dd@dd)ddAe)dBdd!dde�ej(dddddd�ddd"d$d;d%d<d$d=e1d>e-d �d?dd@dd)ddAe)dBdd!dde�ej(dd!dd"dd�dd#d"dmd;djd<d$d=e1d>e1d?dd@dd)ddAe)dBdd!dde�ej(dd$dd%dddd&d"dpd;dpd<d$d=e1d>ed'�j.d��d?dd@dd)ddAe)dBdd!dde�ej(dd(dd)dddd*d"d{d;dpd<d$d=e1d>ed+�d?dd@dd)ddAe)dBdd!dde�ej(dd,dd-dddd.d"d�d;dmd<d$d=e1d>d'd?dd@dd)ddAe)dBdd!dde�ej(dd/dd0dddd1d"d�d;dmd<d$d=e1d>d%d?dd@dd)ddAe)dBdd!dde�ej(dd2dd3dddd4d"d�d;dmd<d$d=e1d>dmd?dd@dd)ddAe)dBdd!dde�ej(dd5dd6dddd7d"dpd;dpd<d$d=e1d>ed8�j.d��d?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd9dd:dddd;d"dpd;dpd<d$d=e1d>ed<�j.d��d?dd@dd)ddAe)dBdd!ej/ej0�ed���de�ej(dd=dd>dddd?d"d`d;dd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(dd@ddAddddBd"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�ej(ddCddDdd#ddEd"dpd;dpd<d$d=e)d>ed��j.d��d?dd@dd)ddAe)dBdd!dde�ej(ddFddGdd&ddHd"d{d;dpd<d$d=e)d>ed��d?dd@dd)ddAe)dBdd!dde�ej(ddIddJdd*ddKd"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!ej/ej0�ed���de�gLdCgdDe*e+e,gdEe&gd!ddFe)dddGgdHej2ddLddMddd)dd8g�gd*dNd,dO�Z3ej'ddPddQddded)dd8ej(ddRddSdddd$d"d%d;d$d<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�gdCgdDgdEgd!ddFe)dddGgdHgd*dTd,dU�Z4ej'ddVddWddded)dd8ej(ddXddYdddd$d"dxd;dtd<d$d=e)d>dd?dd@dd)ddAe)dBdd!dde�gdCgdDgdEgd!ddFe)dddGgdHgd*dZd,d[�Z5e3e*_6e3e+_6e3e,_6e+e3j7d�_8e*e3j7d�_8e4e3j7d�_8ej9e3j7d�_8e&e3j7d�_:ee3j7d�_:ej;e3j7d�_:ej<e3j7d�_8e*e3j7d�_8e,e3j7d�_8e*e3j7d�_8e4e3j7d�_8ej9e3j7d�_8e&e3j7d�_:ee3j7d�_:ej;e3j7d�_:e*e3j7d�_8e&e3j7d,_:ee3j7d/_:ej;e3j7d2_:e*e3j7d@_8e*e3j7dI_8e3e&_6e3j=dLj>j?e3j7d=�e3j=dLe3j7d=_@e3j=dLj>j?e3j7d@�e3j=dLe3j7d@_@e3j=dLj>j?e3j7dC�e3j=dLe3j7dC_@e3j=dLj>j?e3j7dF�e3j=dLe3j7dF_@e3j=dLj>j?e3j7dI�e3j=dLe3j7dI_@ejAe5j7dX_8e3ejBdX<e4ejBdP<e5ejBdV<eejCd<ejDe�ejEdXe	jFfeGd6ejEd6e	jFfeGd\e*d]d^��dKejEdKe	jFfeGd\e+d]d^��dRejEdRe	jFfeGd\e,d]d^��d\e3d]d^��ZHejIeH�ejIeHjJ�ejIeHjK�ejIeHjL�ejEdPe	jFfeGd\e4d]d^��ZMejIeM�ejEdVe	jFfeGd\e5d]d^��ZNejIeN�e1e_Oej/ejP�ed_��e_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d�_Oej/ej0�ed���e3j7d�_Qe1e3j7d5_Oej/ej0�ed���e3j7d5_Qe1e3j7d9_Oej/ej0�ed���e3j7d9_Qe1e3j7dI_Oej/ej0�ed���e3j7dI_QdS(`i����NiicCs|S(N((tx((sI/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((sI/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_pb2.pyRR(tenum_type_wrapper(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2(tunittest_import_pb2(tunittest_arena_pb2tnames'google/protobuf/unittest_no_arena.prototpackagetprotobuf_unittest_no_arenatsyntaxtproto2t
serialized_pbs�
'google/protobuf/unittest_no_arena.protoprotobuf_unittest_no_arena%google/protobuf/unittest_import.proto$google/protobuf/unittest_arena.proto"�
TestAllTypes
optional_int32 (
optional_int64 (
optional_uint32 (

optional_uint64 (
optional_sint32 (
optional_sint64 (
optional_fixed32 (
optional_fixed64 (
optional_sfixed32	 (
optional_sfixed64
 (
optional_float (
optional_double (

optional_bool
 (
optional_string (	
optional_bytes (M

optionalgroup (
26.protobuf_unittest_no_arena.TestAllTypes.OptionalGroupW
optional_nested_message (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageL
optional_foreign_message (2*.protobuf_unittest_no_arena.ForeignMessageH
optional_import_message (2'.protobuf_unittest_import.ImportMessageQ
optional_nested_enum (23.protobuf_unittest_no_arena.TestAllTypes.NestedEnumF
optional_foreign_enum (2'.protobuf_unittest_no_arena.ForeignEnumB
optional_import_enum (2$.protobuf_unittest_import.ImportEnum!
optional_string_piece (	B

optional_cord (	BU
optional_public_import_message (2-.protobuf_unittest_import.PublicImportMessageT
optional_message (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageB(
repeated_int32 (
repeated_int64  (
repeated_uint32! (

repeated_uint64" (
repeated_sint32# (
repeated_sint64$ (
repeated_fixed32% (
repeated_fixed64& (
repeated_sfixed32' (
repeated_sfixed64( (
repeated_float) (
repeated_double* (

repeated_bool+ (
repeated_string, (	
repeated_bytes- (M

repeatedgroup. (
26.protobuf_unittest_no_arena.TestAllTypes.RepeatedGroupW
repeated_nested_message0 (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageL
repeated_foreign_message1 (2*.protobuf_unittest_no_arena.ForeignMessageH
repeated_import_message2 (2'.protobuf_unittest_import.ImportMessageQ
repeated_nested_enum3 (23.protobuf_unittest_no_arena.TestAllTypes.NestedEnumF
repeated_foreign_enum4 (2'.protobuf_unittest_no_arena.ForeignEnumB
repeated_import_enum5 (2$.protobuf_unittest_import.ImportEnum!
repeated_string_piece6 (	B

repeated_cord7 (	BY
repeated_lazy_message9 (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageB(

default_int32= (:41

default_int64> (:42
default_uint32? (
:43
default_uint64@ (:44
default_sint32A (:-45
default_sint64B (:46
default_fixed32C (:47
default_fixed64D (:48
default_sfixed32E (:49
default_sfixed64F (:-50

default_floatG (:51.5
default_doubleH (:52000
default_boolI (:true
default_stringJ (	:hello

default_bytesK (:worldU
default_nested_enumQ (23.protobuf_unittest_no_arena.TestAllTypes.NestedEnum:BARR
default_foreign_enumR (2'.protobuf_unittest_no_arena.ForeignEnum:FOREIGN_BARM
default_import_enumS (2$.protobuf_unittest_import.ImportEnum:
IMPORT_BAR%
default_string_pieceT (	:abcB
default_cordU (	:123B
oneof_uint32o (
HV
oneof_nested_messagep (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageH
oneof_stringq (	H
oneof_bytesr (H_
lazy_oneof_nested_messages (26.protobuf_unittest_no_arena.TestAllTypes.NestedMessageB(H

NestedMessage

bb (

OptionalGroup	
a (

RepeatedGroup	
a/ ("9

NestedEnum
FOO
BAR
BAZ
NEG���������B
oneof_field"
ForeignMessage	
c ("P
TestNoArenaMessage:

arena_message (2#.proto2_arena_unittest.ArenaMessage*@
ForeignEnum
FOREIGN_FOO
FOREIGN_BAR
FOREIGN_BAZB%B
UnittestProtoH�����NOARNtdependenciestForeignEnumt	full_names&protobuf_unittest_no_arena.ForeignEnumtfilenametfiletvaluestFOREIGN_FOOtindextnumberitoptionsttypetFOREIGN_BARiitFOREIGN_BAZiitcontaining_typetserialized_startiVtserialized_endi�t
NestedEnums2protobuf_unittest_no_arena.TestAllTypes.NestedEnumtFOOtBARtBAZtNEGi�
i�
t
NestedMessages5protobuf_unittest_no_arena.TestAllTypes.NestedMessagetfieldstbbs8protobuf_unittest_no_arena.TestAllTypes.NestedMessage.bbtcpp_typetlabelthas_default_valuet
default_valuetmessage_typet	enum_typetis_extensiontextension_scopet
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofsiH
ic
t
OptionalGroups5protobuf_unittest_no_arena.TestAllTypes.OptionalGrouptas7protobuf_unittest_no_arena.TestAllTypes.OptionalGroup.aiie
i
t
RepeatedGroups5protobuf_unittest_no_arena.TestAllTypes.RepeatedGroups7protobuf_unittest_no_arena.TestAllTypes.RepeatedGroup.ai/i�
i�
tTestAllTypess'protobuf_unittest_no_arena.TestAllTypestoptional_int32s6protobuf_unittest_no_arena.TestAllTypes.optional_int32toptional_int64s6protobuf_unittest_no_arena.TestAllTypes.optional_int64toptional_uint32s7protobuf_unittest_no_arena.TestAllTypes.optional_uint32i
toptional_uint64s7protobuf_unittest_no_arena.TestAllTypes.optional_uint64toptional_sint32s7protobuf_unittest_no_arena.TestAllTypes.optional_sint32toptional_sint64s7protobuf_unittest_no_arena.TestAllTypes.optional_sint64itoptional_fixed32s8protobuf_unittest_no_arena.TestAllTypes.optional_fixed32itoptional_fixed64s8protobuf_unittest_no_arena.TestAllTypes.optional_fixed64itoptional_sfixed32s9protobuf_unittest_no_arena.TestAllTypes.optional_sfixed32i	itoptional_sfixed64s9protobuf_unittest_no_arena.TestAllTypes.optional_sfixed64i
itoptional_floats6protobuf_unittest_no_arena.TestAllTypes.optional_floatitoptional_doubles7protobuf_unittest_no_arena.TestAllTypes.optional_doubleit
optional_bools5protobuf_unittest_no_arena.TestAllTypes.optional_booltoptional_strings7protobuf_unittest_no_arena.TestAllTypes.optional_stringiRsutf-8toptional_bytess6protobuf_unittest_no_arena.TestAllTypes.optional_bytest
optionalgroups5protobuf_unittest_no_arena.TestAllTypes.optionalgrouptoptional_nested_messages?protobuf_unittest_no_arena.TestAllTypes.optional_nested_messagetoptional_foreign_messages@protobuf_unittest_no_arena.TestAllTypes.optional_foreign_messageitoptional_import_messages?protobuf_unittest_no_arena.TestAllTypes.optional_import_messageitoptional_nested_enums<protobuf_unittest_no_arena.TestAllTypes.optional_nested_enumitoptional_foreign_enums=protobuf_unittest_no_arena.TestAllTypes.optional_foreign_enumitoptional_import_enums<protobuf_unittest_no_arena.TestAllTypes.optional_import_enumitoptional_string_pieces=protobuf_unittest_no_arena.TestAllTypes.optional_string_pieceist
optional_cords5protobuf_unittest_no_arena.TestAllTypes.optional_cordistoptional_public_import_messagesFprotobuf_unittest_no_arena.TestAllTypes.optional_public_import_messageitoptional_messages8protobuf_unittest_no_arena.TestAllTypes.optional_messageis(trepeated_int32s6protobuf_unittest_no_arena.TestAllTypes.repeated_int32itrepeated_int64s6protobuf_unittest_no_arena.TestAllTypes.repeated_int64i trepeated_uint32s7protobuf_unittest_no_arena.TestAllTypes.repeated_uint32ii!trepeated_uint64s7protobuf_unittest_no_arena.TestAllTypes.repeated_uint64ii"trepeated_sint32s7protobuf_unittest_no_arena.TestAllTypes.repeated_sint32ii#trepeated_sint64s7protobuf_unittest_no_arena.TestAllTypes.repeated_sint64i$trepeated_fixed32s8protobuf_unittest_no_arena.TestAllTypes.repeated_fixed32i%trepeated_fixed64s8protobuf_unittest_no_arena.TestAllTypes.repeated_fixed64i&trepeated_sfixed32s9protobuf_unittest_no_arena.TestAllTypes.repeated_sfixed32i'trepeated_sfixed64s9protobuf_unittest_no_arena.TestAllTypes.repeated_sfixed64i(trepeated_floats6protobuf_unittest_no_arena.TestAllTypes.repeated_floati)trepeated_doubles7protobuf_unittest_no_arena.TestAllTypes.repeated_doublei*t
repeated_bools5protobuf_unittest_no_arena.TestAllTypes.repeated_booli+trepeated_strings7protobuf_unittest_no_arena.TestAllTypes.repeated_stringi,trepeated_bytess6protobuf_unittest_no_arena.TestAllTypes.repeated_bytesi-t
repeatedgroups5protobuf_unittest_no_arena.TestAllTypes.repeatedgroupi.trepeated_nested_messages?protobuf_unittest_no_arena.TestAllTypes.repeated_nested_messagei0trepeated_foreign_messages@protobuf_unittest_no_arena.TestAllTypes.repeated_foreign_messagei1trepeated_import_messages?protobuf_unittest_no_arena.TestAllTypes.repeated_import_messagei2trepeated_nested_enums<protobuf_unittest_no_arena.TestAllTypes.repeated_nested_enumi3trepeated_foreign_enums=protobuf_unittest_no_arena.TestAllTypes.repeated_foreign_enumi4trepeated_import_enums<protobuf_unittest_no_arena.TestAllTypes.repeated_import_enumi5trepeated_string_pieces=protobuf_unittest_no_arena.TestAllTypes.repeated_string_piecei6t
repeated_cords5protobuf_unittest_no_arena.TestAllTypes.repeated_cordi7trepeated_lazy_messages=protobuf_unittest_no_arena.TestAllTypes.repeated_lazy_messagei9t
default_int32s5protobuf_unittest_no_arena.TestAllTypes.default_int32i=t
default_int64s5protobuf_unittest_no_arena.TestAllTypes.default_int64i>tdefault_uint32s6protobuf_unittest_no_arena.TestAllTypes.default_uint32i?tdefault_uint64s6protobuf_unittest_no_arena.TestAllTypes.default_uint64i@tdefault_sint32s6protobuf_unittest_no_arena.TestAllTypes.default_sint32iAi���tdefault_sint64s6protobuf_unittest_no_arena.TestAllTypes.default_sint64i8iBtdefault_fixed32s7protobuf_unittest_no_arena.TestAllTypes.default_fixed32iCtdefault_fixed64s7protobuf_unittest_no_arena.TestAllTypes.default_fixed64i:iDtdefault_sfixed32s8protobuf_unittest_no_arena.TestAllTypes.default_sfixed32i;iEtdefault_sfixed64s8protobuf_unittest_no_arena.TestAllTypes.default_sfixed64i<iFi���t
default_floats5protobuf_unittest_no_arena.TestAllTypes.default_floatiGg�I@tdefault_doubles6protobuf_unittest_no_arena.TestAllTypes.default_doubleiHi �tdefault_bools4protobuf_unittest_no_arena.TestAllTypes.default_booliItdefault_strings6protobuf_unittest_no_arena.TestAllTypes.default_stringiJthellot
default_bytess5protobuf_unittest_no_arena.TestAllTypes.default_bytesiKtworldtdefault_nested_enums;protobuf_unittest_no_arena.TestAllTypes.default_nested_enumiQtdefault_foreign_enums<protobuf_unittest_no_arena.TestAllTypes.default_foreign_enumiRtdefault_import_enums;protobuf_unittest_no_arena.TestAllTypes.default_import_enumiStdefault_string_pieces<protobuf_unittest_no_arena.TestAllTypes.default_string_pieceiTtabctdefault_cords4protobuf_unittest_no_arena.TestAllTypes.default_cordiUt123toneof_uint32s4protobuf_unittest_no_arena.TestAllTypes.oneof_uint32iotoneof_nested_messages<protobuf_unittest_no_arena.TestAllTypes.oneof_nested_messageiptoneof_strings4protobuf_unittest_no_arena.TestAllTypes.oneof_stringiqtoneof_bytess3protobuf_unittest_no_arena.TestAllTypes.oneof_bytesirtlazy_oneof_nested_messagesAprotobuf_unittest_no_arena.TestAllTypes.lazy_oneof_nested_messageistoneof_fields3protobuf_unittest_no_arena.TestAllTypes.oneof_fieldi�i�
tForeignMessages)protobuf_unittest_no_arena.ForeignMessagetcs+protobuf_unittest_no_arena.ForeignMessage.ci�
itTestNoArenaMessages-protobuf_unittest_no_arena.TestNoArenaMessaget
arena_messages;protobuf_unittest_no_arena.TestNoArenaMessage.arena_messageiiTt
DESCRIPTORt
__module__s%google.protobuf.unittest_no_arena_pb2s%B
UnittestProtoH�����NOARN(Rtsystversion_infot_btgoogle.protobuf.internalRtgoogle.protobufRt_descriptorRt_messageRt_reflectionR	t_symbol_databaseR
tDefaultt_sym_dbRt-google_dot_protobuf_dot_unittest__import__pb2t5google_dot_protobuf_dot_unittest__import__public__pb2tAttributeErrortgoogletprotobuftunittest_import_public_pb2Rt,google_dot_protobuf_dot_unittest__arena__pb2tFileDescriptorR�tEnumDescriptortNonetEnumValueDescriptort_FOREIGNENUMtRegisterEnumDescriptortEnumTypeWrapperRRRRt_TESTALLTYPES_NESTEDENUMt
DescriptortFieldDescriptortFalset_TESTALLTYPES_NESTEDMESSAGEt_TESTALLTYPES_OPTIONALGROUPt_TESTALLTYPES_REPEATEDGROUPtfloattdecodet
_ParseOptionstFieldOptionstTruetOneofDescriptort
_TESTALLTYPESt_FOREIGNMESSAGEt_TESTNOARENAMESSAGER tfields_by_nameR/t_IMPORTMESSAGER0t_IMPORTENUMt_PUBLICIMPORTMESSAGEtoneofs_by_nameR)tappendtcontaining_oneoft
_ARENAMESSAGEtmessage_types_by_nametenum_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictR<tRegisterMessageR(R9R;R�R�thas_optionstFileOptionst_options(((sI/usr/lib/python2.7/site-packages/google/protobuf/unittest_no_arena_pb2.pyt<module>sx%

						
						
																																	$	$		$																							$	$	$																			$	$					*													







	!((((((((PK�\��l

protobuf/any_pb2.pycnu�[����
���hc.@s�ddlZejddkr(d�p.d�ZddlmZddlmZddlmZ	dd	lm
Zdd
lmZej
�Zejddd
dddded��Zejdddddddedddejdddddddddd d!d d"dd#ed$ed%�jd&�d'dd(dddd)ed*dd+dde�ejdd,dd-dddd.dd/d!d d"dd#ed$ed%�d'dd(dddd)ed*dd+dde�gd0gd1gd2gd+dd3eddd4gd5gd6d7d8d9�Zeejd<eje�e	jdejfed:ed;d<��Zeje�ee_ej ej!�ed=��e_"dS(>i����NiicCs|S(N((tx((s;/usr/lib/python2.7/site-packages/google/protobuf/any_pb2.pyt<lambda>tcCs
|jd�S(Ntlatin1(tencode(R((s;/usr/lib/python2.7/site-packages/google/protobuf/any_pb2.pyRR(t
descriptor(tmessage(t
reflection(tsymbol_database(tdescriptor_pb2tnamesgoogle/protobuf/any.prototpackagesgoogle.protobuftsyntaxtproto3t
serialized_pbs�
google/protobuf/any.protogoogle.protobuf"&
Any
type_url (	
value (Bo
com.google.protobufBAnyProtoPZ%github.com/golang/protobuf/ptypes/any�GPB�Google.Protobuf.WellKnownTypesbproto3tAnyt	full_namesgoogle.protobuf.Anytfilenametfiletcontaining_typetfieldsttype_urlsgoogle.protobuf.Any.type_urltindextnumberittypei	tcpp_typetlabelthas_default_valuet
default_valueRsutf-8tmessage_typet	enum_typetis_extensiontextension_scopetoptionstvaluesgoogle.protobuf.Any.valueiit
extensionstnested_typest
enum_typest
is_extendabletextension_rangestoneofstserialized_starti.tserialized_endiTt
DESCRIPTORt
__module__sgoogle.protobuf.any_pb2so
com.google.protobufBAnyProtoPZ%github.com/golang/protobuf/ptypes/any�GPB�Google.Protobuf.WellKnownTypes(#tsystversion_infot_btgoogle.protobufRt_descriptorRt_messageRt_reflectionRt_symbol_databaseR	tDefaultt_sym_dbtFileDescriptorR+t
DescriptortNonetFieldDescriptortFalsetdecodet_ANYtmessage_types_by_nametRegisterFileDescriptortGeneratedProtocolMessageTypetMessagetdictRtRegisterMessagetTruethas_optionst
_ParseOptionstFileOptionst_options(((s;/usr/lib/python2.7/site-packages/google/protobuf/any_pb2.pyt<module>sd%					


	PK��\�k�[�u�u&protobuf/unittest_proto3_arena_pb2.pycnu�[���PK��\����vprotobuf/wrappers_pb2.pyonu�[���PK��\P=��++J�protobuf/service_reflection.pynu�[���PK��\2�V����(��protobuf/unittest_custom_options_pb2.pycnu�[���PK��\�*��`�`'�^protobuf/unittest_custom_options_pb2.pynu�[���PK��\_�������protobuf/descriptor_pool.pynu�[���PK��\�=���Lprotobuf/any_test_pb2.pynu�[���PK��\	�t������Yprotobuf/text_format.pynu�[���PK��\_1�99� protobuf/timestamp_pb2.pyonu�[���PK��\��BH��.,protobuf/unittest_import_pb2.pynu�[���PK��\��K���v>protobuf/reflection.pynu�[���PK��\���m0m0�Pprotobuf/message.pycnu�[���PK��\�k�[�u�u&?�protobuf/unittest_proto3_arena_pb2.pyonu�[���PK��\2�V����(O�protobuf/unittest_custom_options_pb2.pyonu�[���PK��\�`
,
,
5�protobuf/proto_builder.pyonu�[���PK��\�ڍ:������protobuf/map_unittest_pb2.pycnu�[���PK��\����z�protobuf/wrappers_pb2.pycnu�[���PK��\C' �����protobuf/any_test_pb2.pycnu�[���PK��\���E����!��protobuf/unittest_no_arena_pb2.pynu�[���PK��\��m�cUcU�uprotobuf/type_pb2.pynu�[���PK��\B��

*S�protobuf/unittest_mset_wire_format_pb2.pycnu�[���PK��\O��=����protobuf/empty_pb2.pynu�[���PK��\Q�tbb��protobuf/__init__.pynu�[���PK��\i�MML�protobuf/message_factory.pycnu�[���PK��\C' ����protobuf/any_test_pb2.pyonu�[���PK��\�O���protobuf/api_pb2.pyonu�[���PK��\�Ɨo���!protobuf/reflection.pycnu�[���PK��\��ö���-protobuf/empty_pb2.pyonu�[���PK��\���	�	�6protobuf/source_context_pb2.pynu�[���PK��\lu�p
�
�%,Aprotobuf/test_messages_proto3_pb2.pyonu�[���PK��\W8�yy �%	protobuf/descriptor_database.pyonu�[���PK��\�ā&��W9	protobuf/symbol_database.pycnu�[���PK��\zQ��/�/�$�Q	protobuf/test_messages_proto3_pb2.pynu�[���PK��\�@�D�*�*protobuf/struct_pb2.pynu�[���PK��\�X9��&�&�Hprotobuf/unittest_mset_pb2.pynu�[���PK��\��l

!pprotobuf/any_pb2.pyonu�[���PK�\�$X���o{protobuf/message_factory.pynu�[���PK�\��X�~
~
A�protobuf/any_pb2.pynu�[���PK�\B��

*�protobuf/unittest_mset_wire_format_pb2.pyonu�[���PK�\@�gƕ�,q�protobuf/unittest_no_generic_services_pb2.pynu�[���PK�\���8�8�%b�protobuf/test_messages_proto2_pb2.pycnu�[���PK�\+�K�||�protobuf/unittest_pb2.pyonu�[���PK�\֗������%Wprotobuf/unittest_proto3_arena_pb2.pynu�[���PK�\�2�Kff$M�protobuf/map_proto2_unittest_pb2.pycnu�[���PK�\=�=��� �Zprotobuf/unittest_import_pb2.pyonu�[���PK�\�>��VVkprotobuf/pyext/python_pb2.pycnu�[���PK�\�6�##��protobuf/pyext/cpp_message.pynu�[���PK�\�>��VV�protobuf/pyext/python_pb2.pyonu�[���PK�\�?`Z�%�%��protobuf/pyext/python_pb2.pynu�[���PK�\�-�����protobuf/pyext/__init__.pynu�[���PK�\�i�f��protobuf/pyext/cpp_message.pyonu�[���PK�\Xx3@__)�protobuf/pyext/__init__.pyonu�[���PK�\�i�f��protobuf/pyext/cpp_message.pycnu�[���PK�\Xx3@__%�protobuf/pyext/__init__.pycnu�[���PK�\��rr��protobuf/json_format.pynu�[���PK�\��6-)Qprotobuf/unittest_no_generic_services_pb2.pyonu�[���PK�\�ڍ:�����aprotobuf/map_unittest_pb2.pyonu�[���PK�\
�Q:&	&	&e<protobuf/unittest_import_public_pb2.pynu�[���PK	�\ӄ����Eprotobuf/struct_pb2.pycnu�[���PK	�\�m�Hlmlm"�`protobuf/unittest_no_arena_pb2.pyonu�[���PK
�\�O����protobuf/api_pb2.pycnu�[���PK
�\,y�(l�protobuf/source_context_pb2.pycnu�[���PK�\lu�p
�
�%��protobuf/test_messages_proto3_pb2.pycnu�[���PK�\ZV�))-�protobuf/duration_pb2.pyonu�[���PK�\ۭ�,�#�#��protobuf/service.pynu�[���PK
�\W8�yy �protobuf/descriptor_database.pycnu�[���PK
�\cprotobuf/util/__init__.pynu�[���PK
�\0X[����(�protobuf/util/json_format_proto3_pb2.pyonu�[���PK
�\�4QH;H;'��protobuf/util/json_format_proto3_pb2.pynu�[���PK�\/"7����protobuf/util/__init__.pyonu�[���PK�\0X[����(��protobuf/util/json_format_proto3_pb2.pycnu�[���PK�\/"7���yprotobuf/util/__init__.pycnu�[���PK�\l�՚,,�zprotobuf/descriptor_database.pynu�[���PK�\�����0�protobuf/unittest_arena_pb2.pyonu�[���PK�\fX��

,�protobuf/internal/service_reflection_test.pynu�[���PK�\ٟ�S)w�protobuf/internal/more_extensions_pb2.pycnu�[���PK�\��}N��-��protobuf/internal/service_reflection_test.pyonu�[���PK�\&�q=�*�*%��protobuf/internal/wire_format_test.pynu�[���PK�\kD:
:
&�
protobuf/internal/message_listener.pycnu�[���PK�\ܟ�-�%�%)yprotobuf/internal/message_factory_test.pynu�[���PK�\/��'�'�%�;protobuf/internal/descriptor_test.pyonu�[���PK�\�???&�protobuf/internal/testing_refleaks.pyonu�[���PK�\3C!��*��protobuf/internal/symbol_database_test.pycnu�[���PK�\�Ӈ��*��protobuf/internal/file_options_test_pb2.pynu�[���PK�\��P���!��protobuf/internal/any_test_pb2.pynu�[���PK�\)/xHH/
protobuf/internal/descriptor_pool_test2_pb2.pyonu�[���PK�\��g[a[a&�(protobuf/internal/factory_test2_pb2.pynu�[���PK�\���}}X�protobuf/internal/test_util.pyonu�[���PK�\D@	+	++�protobuf/internal/packed_field_test_pb2.pyonu�[���PK�\Jp�u����$%3protobuf/internal/reflection_test.pynu�[���PK�\��h~HsHsf(protobuf/internal/encoder.pycnu�[���PK�\֧%9UU.��protobuf/internal/test_bad_identifiers_pb2.pyonu�[���PK�\��1�88'��protobuf/internal/factory_test2_pb2.pyonu�[���PK�\lH�;z;z�protobuf/internal/decoder.pynu�[���PK�\a���� �  �aprotobuf/internal/wire_format.pynu�[���PK�\I��١١%�protobuf/internal/json_format_test.pynu�[���PK�\��=R.R.#%protobuf/internal/type_checkers.pycnu�[���PK�\$
:�����%�Sprotobuf/internal/reflection_test.pyonu�[���PK�\5����0��protobuf/internal/message_set_extensions_pb2.pyonu�[���PK�\�=P�]]"��protobuf/internal/any_test_pb2.pycnu�[���PK�\��z?
?
.oprotobuf/internal/descriptor_database_test.pycnu�[���PK�\_kEX77-protobuf/internal/test_bad_identifiers_pb2.pynu�[���PK�\s`���%�%,�#protobuf/internal/missing_enum_values_pb2.pynu�[���PK�\�;���'�Iprotobuf/internal/api_implementation.pynu�[���PK�\����,,-{eprotobuf/internal/missing_enum_values_pb2.pycnu�[���PK�\���4e4e~protobuf/internal/decoder.pyonu�[���PK�\��protobuf/internal/__init__.pynu�[���PK�\L���'��protobuf/internal/factory_test1_pb2.pyonu�[���PK�\z �z0z0. �protobuf/internal/descriptor_pool_test2_pb2.pynu�[���PK�\�c��Q�Q�* protobuf/internal/containers.pynu�[���PK�\�=P�]]"�| protobuf/internal/any_test_pb2.pyonu�[���PK�\Q�ND#D#!�� protobuf/internal/wire_format.pyonu�[���PK�\��Sb , ,/#� protobuf/internal/descriptor_pool_test1_pb2.pycnu�[���PK�\�ѽwnwn%�� protobuf/internal/well_known_types.pynu�[���PK�\��ܾ��$nO!protobuf/internal/descriptor_test.pynu�[���PK�\L�������!protobuf/internal/test_util.pynu�[���PK�\/�����&�{"protobuf/internal/text_format_test.pyonu�[���PK�\�����*^#protobuf/internal/descriptor_pool_test.pyonu�[���PK�\�x'����&~�#protobuf/internal/well_known_types.pyonu�[���PK�\�	�v�r�r^p$protobuf/internal/encoder.pyonu�[���PK�\9��_�_�$E�$protobuf/internal/python_message.pyonu�[���PK�\%aȃ��(��%protobuf/internal/text_encoding_test.pyonu�[���PK�\���u�-�-)"�%protobuf/internal/unknown_fields_test.pycnu�[���PK�\ڡ^^"V�%protobuf/internal/message_test.pycnu�[���PK�\�bQ|
|
('protobuf/internal/api_implementation.pyonu�[���PK�\�/�&�
'protobuf/internal/wire_format_test.pyonu�[���PK�\��}N��-D)'protobuf/internal/service_reflection_test.pycnu�[���PK�\\���ff0U>'protobuf/internal/more_extensions_dynamic_pb2.pynu�[���PK�\��Osii(R'protobuf/internal/proto_builder_test.pyonu�[���PK�\L��""+�]'protobuf/internal/file_options_test_pb2.pycnu�[���PK�\�����*Yj'protobuf/internal/descriptor_pool_test.pycnu�[���PK�\��Sb , ,/�'protobuf/internal/descriptor_pool_test1_pb2.pyonu�[���PK�\��1�88'N%(protobuf/internal/factory_test2_pb2.pycnu�[���PK�\YJxԞ9�9#�](protobuf/internal/generator_test.pynu�[���PK�\f�z�-��(protobuf/internal/descriptor_database_test.pynu�[���PK�\��l�Q}Q}�(protobuf/internal/test_util.pycnu�[���PK�\��=R.R.#�')protobuf/internal/type_checkers.pyonu�[���PK�\֧%9UU.PV)protobuf/internal/test_bad_identifiers_pb2.pycnu�[���PK�\���u�-�-)i)protobuf/internal/unknown_fields_test.pyonu�[���PK�\Ӫ�3�3$7�)protobuf/internal/generator_test.pyonu�[���PK�\Ӫ�3�3${�)protobuf/internal/generator_test.pycnu�[���PK�\O}(�e�e��)protobuf/internal/decoder.pycnu�[���PK�\?~�$~o~o�e*protobuf/internal/encoder.pynu�[���PK�\��s�a�a h�*protobuf/internal/containers.pycnu�[���PK�\���*�7+protobuf/internal/message_factory_test.pycnu�[���PK�\���*�R+protobuf/internal/message_factory_test.pyonu�[���PK�\��]�@@'Fn+protobuf/internal/text_encoding_test.pynu�[���PK�\`df1�y+protobuf/internal/more_extensions_dynamic_pb2.pycnu�[���PK�\�W3<xOxO*C�+protobuf/internal/packed_field_test_pb2.pynu�[���PK�\sԃ�>>$�+protobuf/internal/_parameterized.pyonu�[���PK�\kD:
:
&l,protobuf/internal/message_listener.pyonu�[���PK�\�???&�",protobuf/internal/testing_refleaks.pycnu�[���PK�\v�X؜��2,protobuf/internal/__init__.pyonu�[���PK�\~y�d�?�?${3,protobuf/internal/_parameterized.pycnu�[���PK�\FН�Q�Q.�s,protobuf/internal/descriptor_pool_test1_pb2.pynu�[���PK�\D@	+	++��,protobuf/internal/packed_field_test_pb2.pycnu�[���PK�\��y"

3�,protobuf/internal/import_test_package/inner_pb2.pyonu�[���PK�\A�}�
�
2��,protobuf/internal/import_test_package/outer_pb2.pynu�[���PK�\�،���1q-protobuf/internal/import_test_package/__init__.pynu�[���PK�\�����2�
-protobuf/internal/import_test_package/inner_pb2.pynu�[���PK�\��y"

3�-protobuf/internal/import_test_package/inner_pb2.pycnu�[���PK�\z�J�ff22!-protobuf/internal/import_test_package/__init__.pyonu�[���PK�\�#�\��3�"-protobuf/internal/import_test_package/outer_pb2.pyonu�[���PK�\z�J�ff2�.-protobuf/internal/import_test_package/__init__.pycnu�[���PK�\�#�\��3�0-protobuf/internal/import_test_package/outer_pb2.pycnu�[���PK�\/�����&�<-protobuf/internal/text_format_test.pycnu�[���PK�\%aȃ��(.protobuf/internal/text_encoding_test.pycnu�[���PK�\�x'����&*'.protobuf/internal/well_known_types.pycnu�[���PK�\�-}�66(
�.protobuf/internal/unknown_fields_test.pynu�[���PK�\\=!!/w�.protobuf/internal/message_set_extensions_pb2.pynu�[���PK�\L��""+�/protobuf/internal/file_options_test_pb2.pyonu�[���PK�\�Ѵ4����%n/protobuf/internal/text_format_test.pynu�[���PK�\Q�ND#D#!y0protobuf/internal/wire_format.pycnu�[���PK�\��H�����#20protobuf/internal/python_message.pynu�[���PK�\��
�K<K<#W1protobuf/internal/_parameterized.pynu�[���PK�\��zʇ�(�P1protobuf/internal/more_extensions_pb2.pynu�[���PK�\f�`�����$�m1protobuf/internal/python_message.pycnu�[���PK�\��Osii(�72protobuf/internal/proto_builder_test.pycnu�[���PK�\`df1�C2protobuf/internal/more_extensions_dynamic_pb2.pyonu�[���PK�\W'���&T2protobuf/internal/factory_test1_pb2.pynu�[���PK�\sݴ��&�r2protobuf/internal/more_messages_pb2.pynu�[���PK�\�/�&��2protobuf/internal/wire_format_test.pycnu�[���PK�\ٟ�S)c�2protobuf/internal/more_extensions_pb2.pyonu�[���PK�\5����0Գ2protobuf/internal/message_set_extensions_pb2.pycnu�[���PK�\x�ٴ��'��2protobuf/internal/enum_type_wrapper.pyonu�[���PK�\�v�'
'
%��2protobuf/internal/message_listener.pynu�[���PK�\]"ԛ�%M�2protobuf/internal/testing_refleaks.pynu�[���PK�\/��'�'�%=�2protobuf/internal/descriptor_test.pycnu�[���PK�\TϞ���"�x3protobuf/internal/message_test.pyonu�[���PK�\x��G��'�4protobuf/internal/proto_builder_test.pynu�[���PK�\��F�e�e+�4protobuf/internal/well_known_types_test.pycnu�[���PK�\����,,-�	5protobuf/internal/missing_enum_values_pb2.pyonu�[���PK�\O��C�7�7"b"5protobuf/internal/type_checkers.pynu�[���PK�\��F�e�e+IZ5protobuf/internal/well_known_types_test.pyonu�[���PK�\����)>�5protobuf/internal/symbol_database_test.pynu�[���PK�\�F��{{'��5protobuf/internal/more_messages_pb2.pycnu�[���PK�\v�X؜�d�5protobuf/internal/__init__.pycnu�[���PK�\3C!��*N�5protobuf/internal/symbol_database_test.pyonu�[���PK�\L���'@�5protobuf/internal/factory_test1_pb2.pycnu�[���PK�\r
g�AVAV!�6protobuf/internal/message_test.pynu�[���PK�\x�ٴ��' f7protobuf/internal/enum_type_wrapper.pycnu�[���PK�\)/xHH/#r7protobuf/internal/descriptor_pool_test2_pb2.pycnu�[���PK�\��z?
?
.ʐ7protobuf/internal/descriptor_database_test.pyonu�[���PK�\$
:�����%g�7protobuf/internal/reflection_test.pycnu�[���PK�\��s�a�a k9protobuf/internal/containers.pyonu�[���PK�\�bQ|
|
(��9protobuf/internal/api_implementation.pycnu�[���PK�\�8Gp�
�
&w�9protobuf/internal/enum_type_wrapper.pynu�[���PK�\��${�{�)��9protobuf/internal/descriptor_pool_test.pynu�[���PK�\�=�~�~�&�H:protobuf/internal/json_format_test.pycnu�[���PK�\�F��{{'W�:protobuf/internal/more_messages_pb2.pyonu�[���PK�\�=�~�~�&)�:protobuf/internal/json_format_test.pyonu�[���PK�\�m.�M�M�*�f;protobuf/internal/well_known_types_test.pynu�[���PK�\�������;protobuf/unittest_arena_pb2.pycnu�[���PK�\��6-�<protobuf/unittest_no_generic_services_pb2.pycnu�[���PK�\��K��%�%�<protobuf/service.pyonu�[���PK�\i�MM�6<protobuf/message_factory.pyonu�[���PK�\ZV�))eI<protobuf/duration_pb2.pycnu�[���PK�\�KI�
�
�T<protobuf/field_mask_pb2.pyonu�[���PK�\�Ҁ

�_<protobuf/text_encoding.pyonu�[���PK�\c�+z��(m<protobuf/unittest_no_arena_import_pb2.pynu�[���PK�\A�i[[ v<protobuf/compiler/plugin_pb2.pycnu�[���PK�\ǐ<protobuf/compiler/__init__.pynu�[���PK�\O����)�)�<protobuf/compiler/plugin_pb2.pynu�[���PK�\A�i[[ V�<protobuf/compiler/plugin_pb2.pyonu�[���PK�\�<�����<protobuf/compiler/__init__.pyonu�[���PK�\�<������<protobuf/compiler/__init__.pycnu�[���PK�\�I{3,3,��<protobuf/service_reflection.pycnu�[���PK�\��,*`v`vW=protobuf/descriptor_pool.pycnu�[���PK�\�Ha�F�F�{=protobuf/descriptor_pb2.pycnu�[���PK�\�Ha�F�F��$>protobuf/descriptor_pb2.pyonu�[���PK�\Os++����%�>protobuf/map_unittest_pb2.pynu�[���PK�\ٽ�%B
B
'0�@protobuf/unittest_import_public_pb2.pycnu�[���PK�\@���\�\��@protobuf/descriptor_pb2.pynu�[���PK�\H
S����'Bprotobuf/descriptor.pycnu�[���PK�\
��Ͼ,�,��Bprotobuf/message.pynu�[���PK�\�I{3,3,��Bprotobuf/service_reflection.pyonu�[���PK�\����RR	Cprotobuf/proto_builder.pynu�[���PK�\��		�&Cprotobuf/text_encoding.pynu�[���PK�\��g�`�`�8Cprotobuf/json_format.pyonu�[���PK�\1�W��/�/�Cprotobuf/type_pb2.pyonu�[���PK�\B�`ٙ�2�Cprotobuf/__init__.pyonu�[���PK�\��K��%�%�Cprotobuf/service.pycnu�[���PK�\�^���	�	)��Cprotobuf/unittest_no_arena_import_pb2.pycnu�[���PK�\1�W��/�/��Cprotobuf/type_pb2.pycnu�[���PK�\�W;̤̤$,Dprotobuf/test_messages_proto2_pb2.pynu�[���PK�\�&'�--:�Eprotobuf/wrappers_pb2.pynu�[���PK�\+�K�||��Eprotobuf/unittest_pb2.pycnu�[���PK�\)�P/=�=��zHprotobuf/text_format.pyonu�[���PK�\H
SЫ���z5Iprotobuf/descriptor.pyonu�[���PK�\=�=��� l�Iprotobuf/unittest_import_pb2.pycnu�[���PK�\ӄ�����Iprotobuf/struct_pb2.pyonu�[���PK�\���8�8�%��Iprotobuf/test_messages_proto2_pb2.pyonu�[���PK�\�KI�
�
G�Jprotobuf/field_mask_pb2.pycnu�[���PK�\�`
,
,
)�Jprotobuf/proto_builder.pycnu�[���PK�\+,;��<�<��Jprotobuf/unittest_pb2.pynu�[���PK�\�^���	�	)�Pprotobuf/unittest_no_arena_import_pb2.pyonu�[���PK�\8p�)�Pprotobuf/unittest_mset_wire_format_pb2.pynu�[���PK�\�M��?.Pprotobuf/unittest_mset_pb2.pyonu�[���PK�\�4��
�
}FPprotobuf/duration_pb2.pynu�[���PK�\C��v	v	�QPprotobuf/field_mask_pb2.pynu�[���PK�\���vY�Y�#a[Pprotobuf/map_proto2_unittest_pb2.pynu�[���PK�\�ā&��
6Qprotobuf/symbol_database.pyonu�[���PK�\ٽ�%B
B
'FNQprotobuf/unittest_import_public_pb2.pyonu�[���PK�\�� ��XQprotobuf/symbol_database.pynu�[���PK�\�̖��ArQprotobuf/unittest_arena_pb2.pynu�[���PK�\B�`ٙ�*�Qprotobuf/__init__.pycnu�[���PK�\_1�99�Qprotobuf/timestamp_pb2.pycnu�[���PK�\�Ҁ

��Qprotobuf/text_encoding.pycnu�[���PK�\+��*�*ݞQprotobuf/api_pb2.pynu�[���PK�\��ö����Qprotobuf/empty_pb2.pycnu�[���PK�\�2�Kff$��Qprotobuf/map_proto2_unittest_pb2.pyonu�[���PK�\��%2����49Rprotobuf/descriptor.pynu�[���PK�\��g�`�`/�Rprotobuf/json_format.pycnu�[���PK�\@W�uAvAvK5Sprotobuf/descriptor_pool.pyonu�[���PK�\���m0m0ثSprotobuf/message.pyonu�[���PK�\�Ɨo����Sprotobuf/reflection.pyonu�[���PK�\�\��a�a���Sprotobuf/text_format.pycnu�[���PK�\L��j�
�
g�Tprotobuf/timestamp_pb2.pynu�[���PK�\,y�(��Tprotobuf/source_context_pb2.pyonu�[���PK�\�M����Tprotobuf/unittest_mset_pb2.pycnu�[���PK�\�m�Hlmlm"=�Tprotobuf/unittest_no_arena_pb2.pycnu�[���PK�\��l

�?Uprotobuf/any_pb2.pycnu�[���PK�kIKU