<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>upb.h</filename>
    </added>
    <added>
      <filename>upb_fieldmap.c</filename>
    </added>
    <added>
      <filename>upb_fieldmap.h</filename>
    </added>
    <added>
      <filename>upb_parse.c</filename>
    </added>
    <added>
      <filename>upb_parse.h</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,6 @@
 
 Copyright (c) 2009, Joshua Haberman
+Copyright (c) 2009, Google Inc.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without</diff>
      <filename>LICENSE</filename>
    </modified>
    <modified>
      <diff>@@ -1,12 +1,19 @@
 
 .PHONY: all clean
 CFLAGS=-std=c99 -O3 -Wall -Wextra -pedantic
-all: pbstream.o tests
+OBJ=upb_parse.o upb_fieldmap.o upb_struct.o
+all: $(OBJ) tests
 clean:
-	rm -f pbstream.o pbstruct.o tests
+	rm -f $(OBJ) tests
 
-pbstream.o: pbstream.c pbstream.h
-	gcc $(CFLAGS) -o pbstream.o -c pbstream.c
+upb_parse.o: upb_parse.c upb_parse.h
+	gcc $(CFLAGS) -o upb_parse.o -c upb_parse.c
 
-tests: tests.c pbstream.c pbstream.h
+upb_fieldmap.o: upb_fieldmap.c upb_fieldmap.h
+	gcc $(CFLAGS) -o upb_fieldmap.o -c upb_fieldmap.c
+
+upb_struct.o: upb_struct.c upb_struct.h
+	gcc $(CFLAGS) -o upb_struct.o -c upb_struct.c
+
+tests: tests.c upb_parse.c upb_parse.h
 	gcc $(CFLAGS) -o tests tests.c</diff>
      <filename>Makefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,9 @@
 
-pbstream: a stream-oriented implementation of protocol buffers.
+upb - a minimalist implementation of protocol buffers.
 
-- For API documentation, see the header file.
+- For API documentation, see the header files.
 - To build type &quot;make&quot;.
 
-Author: Joshua Haberman &lt;joshua@reverberate.org&gt;
+Author: Joshua Haberman (joshua@reverberate.org, haberman@google.com)
 See LICENSE for copyright information.
 </diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -1,57 +1,1494 @@
+#include &quot;descriptor.h&quot;
 
-/* FileDescriptorSet */
-struct pbstream_FieldDescriptorProto pbstream_FileDescriptorSet_fields[] = {
-  {&quot;file&quot;, 1, PBSTREAM_LABEL_OPTIONAL, PBSTREAM_TYPE_MESSAGE, &quot;FileDescriptorProto&quot;},
+static struct upb_string google_protobuf_filedescriptor_name = {
+  .byte_len=32, .data=(uint8_t*)&quot;google/protobuf/descriptor.proto&quot;
 };
-struct pbstream_DescriptorProto pbstream_FileDescriptorSet_desc = {
-  &quot;FileDescriptorSet&quot;, .field_count=1, .field = pbstream_FileDescriptorSet_fields,
+
+static struct upb_string google_protobuf_filedescriptor_package = {
+  .byte_len=15, .data=(uint8_t*)&quot;google.protobuf&quot;
+};
+
+struct google_protobuf_DescriptorProto google_protobuf_FileDescriptorSet_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_FileDescriptorProto_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_DescriptorProto_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_FieldDescriptorProto_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_EnumDescriptorProto_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_EnumValueDescriptorProto_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_ServiceDescriptorProto_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_MethodDescriptorProto_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_FileOptions_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_MessageOptions_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_FieldOptions_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_EnumOptions_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_EnumValueOptions_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_ServiceOptions_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_MethodOptions_descriptor;
+struct google_protobuf_DescriptorProto google_protobuf_UninterpretedOption_descriptor;
+
+static google_protobuf_DescriptorProto *google_protobuf_filedescriptor_message_type_array[] = {
+  &amp;google_protobuf_FileDescriptorSet_descriptor,
+  &amp;google_protobuf_FileDescriptorProto_descriptor,
+  &amp;google_protobuf_DescriptorProto_descriptor,
+  &amp;google_protobuf_FieldDescriptorProto_descriptor,
+  &amp;google_protobuf_EnumDescriptorProto_descriptor,
+  &amp;google_protobuf_EnumValueDescriptorProto_descriptor,
+  &amp;google_protobuf_ServiceDescriptorProto_descriptor,
+  &amp;google_protobuf_MethodDescriptorProto_descriptor,
+  &amp;google_protobuf_FileOptions_descriptor,
+  &amp;google_protobuf_MessageOptions_descriptor,
+  &amp;google_protobuf_FieldOptions_descriptor,
+  &amp;google_protobuf_EnumOptions_descriptor,
+  &amp;google_protobuf_EnumValueOptions_descriptor,
+  &amp;google_protobuf_ServiceOptions_descriptor,
+  &amp;google_protobuf_MethodOptions_descriptor,
+  &amp;google_protobuf_UninterpretedOption_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_DescriptorProto) google_protobuf_filedescriptor_message_type = {
+  .len=16, .elements=google_protobuf_filedescriptor_message_type_array
+};
+
+google_protobuf_FileDescriptorProto google_protobuf_filedescriptor = {
+  .set_flags = { .has = {
+    .name = 1,
+    .package = 1,
+    .dependency = 0,
+    .message_type = 1,
+    .enum_type = 0,
+    .service = 0,
+    .extension = 0,
+    .options = 1,
+  } },
+  .name = &amp;google_protobuf_filedescriptor_name,
+  .package = &amp;google_protobuf_filedescriptor_package,
+  .dependency = NULL,
+  .message_type = &amp;google_protobuf_filedescriptor_message_type,
+};
+
+/* google_protobuf_FileDescriptorSet_descriptor */
+static struct upb_string google_protobuf_FileDescriptorSet_descriptor_name = {
+  .byte_len=17, .data=(uint8_t*)&quot;FileDescriptorSet&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorSet_file_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_FileDescriptorSet_descriptor_field_array[] = {
+  &amp;google_protobuf_FileDescriptorSet_file_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_FileDescriptorSet_descriptor_field = {
+  .len=1, .elements=google_protobuf_FileDescriptorSet_descriptor_field_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_FileDescriptorSet_descriptor = {
+  .name = &amp;google_protobuf_FileDescriptorSet_descriptor_name,
+  .field = &amp;google_protobuf_FileDescriptorSet_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_FileDescriptorSet_file_fieldname = {
+  .byte_len=4, .data=(uint8_t*)&quot;file&quot;
+};
+
+static struct upb_string google_protobuf_FileDescriptorSet_file_field_typename = {
+  .byte_len=19, .data=(uint8_t*)&quot;FileDescriptorProto&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorSet_file = {
+  .name = &amp;google_protobuf_FileDescriptorSet_file_fieldname,
+  .number = (uint32_t)1,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_FileDescriptorSet_file_field_typename,
+};
+/* google_protobuf_FileDescriptorProto_descriptor */
+static struct upb_string google_protobuf_FileDescriptorProto_descriptor_name = {
+  .byte_len=19, .data=(uint8_t*)&quot;FileDescriptorProto&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_name_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_package_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_dependency_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_message_type_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_enum_type_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_service_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_extension_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_options_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_FileDescriptorProto_descriptor_field_array[] = {
+  &amp;google_protobuf_FileDescriptorProto_name_descriptor,
+  &amp;google_protobuf_FileDescriptorProto_package_descriptor,
+  &amp;google_protobuf_FileDescriptorProto_dependency_descriptor,
+  &amp;google_protobuf_FileDescriptorProto_message_type_descriptor,
+  &amp;google_protobuf_FileDescriptorProto_enum_type_descriptor,
+  &amp;google_protobuf_FileDescriptorProto_service_descriptor,
+  &amp;google_protobuf_FileDescriptorProto_extension_descriptor,
+  &amp;google_protobuf_FileDescriptorProto_options_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_FileDescriptorProto_descriptor_field = {
+  .len=8, .elements=google_protobuf_FileDescriptorProto_descriptor_field_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_FileDescriptorProto_descriptor = {
+  .name = &amp;google_protobuf_FileDescriptorProto_descriptor_name,
+  .field = &amp;google_protobuf_FileDescriptorProto_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_FileDescriptorProto_name_fieldname = {
+  .byte_len=4, .data=(uint8_t*)&quot;name&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_name = {
+  .name = &amp;google_protobuf_FileDescriptorProto_name_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FileDescriptorProto_package_fieldname = {
+  .byte_len=7, .data=(uint8_t*)&quot;package&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_package = {
+  .name = &amp;google_protobuf_FileDescriptorProto_package_fieldname,
+  .number = (uint32_t)2,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FileDescriptorProto_dependency_fieldname = {
+  .byte_len=10, .data=(uint8_t*)&quot;dependency&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_dependency = {
+  .name = &amp;google_protobuf_FileDescriptorProto_dependency_fieldname,
+  .number = (uint32_t)3,
+  .label = 3,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FileDescriptorProto_message_type_fieldname = {
+  .byte_len=12, .data=(uint8_t*)&quot;message_type&quot;
+};
+
+static struct upb_string google_protobuf_FileDescriptorProto_message_type_field_typename = {
+  .byte_len=15, .data=(uint8_t*)&quot;DescriptorProto&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_message_type = {
+  .name = &amp;google_protobuf_FileDescriptorProto_message_type_fieldname,
+  .number = (uint32_t)4,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_FileDescriptorProto_message_type_field_typename,
+};
+static struct upb_string google_protobuf_FileDescriptorProto_enum_type_fieldname = {
+  .byte_len=9, .data=(uint8_t*)&quot;enum_type&quot;
+};
+
+static struct upb_string google_protobuf_FileDescriptorProto_enum_type_field_typename = {
+  .byte_len=19, .data=(uint8_t*)&quot;EnumDescriptorProto&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_enum_type = {
+  .name = &amp;google_protobuf_FileDescriptorProto_enum_type_fieldname,
+  .number = (uint32_t)5,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_FileDescriptorProto_enum_type_field_typename,
+};
+static struct upb_string google_protobuf_FileDescriptorProto_service_fieldname = {
+  .byte_len=7, .data=(uint8_t*)&quot;service&quot;
+};
+
+static struct upb_string google_protobuf_FileDescriptorProto_service_field_typename = {
+  .byte_len=22, .data=(uint8_t*)&quot;ServiceDescriptorProto&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_service = {
+  .name = &amp;google_protobuf_FileDescriptorProto_service_fieldname,
+  .number = (uint32_t)6,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_FileDescriptorProto_service_field_typename,
+};
+static struct upb_string google_protobuf_FileDescriptorProto_extension_fieldname = {
+  .byte_len=9, .data=(uint8_t*)&quot;extension&quot;
+};
+
+static struct upb_string google_protobuf_FileDescriptorProto_extension_field_typename = {
+  .byte_len=20, .data=(uint8_t*)&quot;FieldDescriptorProto&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_extension = {
+  .name = &amp;google_protobuf_FileDescriptorProto_extension_fieldname,
+  .number = (uint32_t)7,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_FileDescriptorProto_extension_field_typename,
+};
+static struct upb_string google_protobuf_FileDescriptorProto_options_fieldname = {
+  .byte_len=7, .data=(uint8_t*)&quot;options&quot;
+};
+
+static struct upb_string google_protobuf_FileDescriptorProto_options_field_typename = {
+  .byte_len=11, .data=(uint8_t*)&quot;FileOptions&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileDescriptorProto_options = {
+  .name = &amp;google_protobuf_FileDescriptorProto_options_fieldname,
+  .number = (uint32_t)8,
+  .label = 1,
+  .type = 11,
+  .type_name = &amp;google_protobuf_FileDescriptorProto_options_field_typename,
+};
+/* google_protobuf_DescriptorProto_descriptor */
+static struct upb_string google_protobuf_DescriptorProto_descriptor_name = {
+  .byte_len=15, .data=(uint8_t*)&quot;DescriptorProto&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_name_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_field_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_extension_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_nested_type_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_enum_type_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_extension_range_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_options_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_DescriptorProto_descriptor_field_array[] = {
+  &amp;google_protobuf_DescriptorProto_name_descriptor,
+  &amp;google_protobuf_DescriptorProto_field_descriptor,
+  &amp;google_protobuf_DescriptorProto_extension_descriptor,
+  &amp;google_protobuf_DescriptorProto_nested_type_descriptor,
+  &amp;google_protobuf_DescriptorProto_enum_type_descriptor,
+  &amp;google_protobuf_DescriptorProto_extension_range_descriptor,
+  &amp;google_protobuf_DescriptorProto_options_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_DescriptorProto_descriptor_field = {
+  .len=7, .elements=google_protobuf_DescriptorProto_descriptor_field_array
+};
+
+struct google_protobuf_DescriptorProto google_protobuf_DescriptorProto_ExtensionRange_descriptor;
+
+static google_protobuf_DescriptorProto *google_protobuf_DescriptorProto_descriptor_nested_type_array[] = {
+  &amp;google_protobuf_DescriptorProto_ExtensionRange_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_DescriptorProto) google_protobuf_DescriptorProto_descriptor_nested_type = {
+  .len=1, .elements=google_protobuf_DescriptorProto_descriptor_nested_type_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_DescriptorProto_descriptor = {
+  .name = &amp;google_protobuf_DescriptorProto_descriptor_name,
+  .field = &amp;google_protobuf_DescriptorProto_descriptor_field,
+  .nested_type = &amp;google_protobuf_DescriptorProto_descriptor_nested_type,
+  .enum_type = NULL,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_DescriptorProto_name_fieldname = {
+  .byte_len=4, .data=(uint8_t*)&quot;name&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_name = {
+  .name = &amp;google_protobuf_DescriptorProto_name_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_DescriptorProto_field_fieldname = {
+  .byte_len=5, .data=(uint8_t*)&quot;field&quot;
+};
+
+static struct upb_string google_protobuf_DescriptorProto_field_field_typename = {
+  .byte_len=20, .data=(uint8_t*)&quot;FieldDescriptorProto&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_field = {
+  .name = &amp;google_protobuf_DescriptorProto_field_fieldname,
+  .number = (uint32_t)2,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_DescriptorProto_field_field_typename,
+};
+static struct upb_string google_protobuf_DescriptorProto_extension_fieldname = {
+  .byte_len=9, .data=(uint8_t*)&quot;extension&quot;
+};
+
+static struct upb_string google_protobuf_DescriptorProto_extension_field_typename = {
+  .byte_len=20, .data=(uint8_t*)&quot;FieldDescriptorProto&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_extension = {
+  .name = &amp;google_protobuf_DescriptorProto_extension_fieldname,
+  .number = (uint32_t)6,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_DescriptorProto_extension_field_typename,
+};
+static struct upb_string google_protobuf_DescriptorProto_nested_type_fieldname = {
+  .byte_len=11, .data=(uint8_t*)&quot;nested_type&quot;
+};
+
+static struct upb_string google_protobuf_DescriptorProto_nested_type_field_typename = {
+  .byte_len=15, .data=(uint8_t*)&quot;DescriptorProto&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_nested_type = {
+  .name = &amp;google_protobuf_DescriptorProto_nested_type_fieldname,
+  .number = (uint32_t)3,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_DescriptorProto_nested_type_field_typename,
+};
+static struct upb_string google_protobuf_DescriptorProto_enum_type_fieldname = {
+  .byte_len=9, .data=(uint8_t*)&quot;enum_type&quot;
+};
+
+static struct upb_string google_protobuf_DescriptorProto_enum_type_field_typename = {
+  .byte_len=19, .data=(uint8_t*)&quot;EnumDescriptorProto&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_enum_type = {
+  .name = &amp;google_protobuf_DescriptorProto_enum_type_fieldname,
+  .number = (uint32_t)4,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_DescriptorProto_enum_type_field_typename,
+};
+static struct upb_string google_protobuf_DescriptorProto_extension_range_fieldname = {
+  .byte_len=15, .data=(uint8_t*)&quot;extension_range&quot;
+};
+
+static struct upb_string google_protobuf_DescriptorProto_extension_range_field_typename = {
+  .byte_len=14, .data=(uint8_t*)&quot;ExtensionRange&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_extension_range = {
+  .name = &amp;google_protobuf_DescriptorProto_extension_range_fieldname,
+  .number = (uint32_t)5,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_DescriptorProto_extension_range_field_typename,
+};
+static struct upb_string google_protobuf_DescriptorProto_options_fieldname = {
+  .byte_len=7, .data=(uint8_t*)&quot;options&quot;
+};
+
+static struct upb_string google_protobuf_DescriptorProto_options_field_typename = {
+  .byte_len=14, .data=(uint8_t*)&quot;MessageOptions&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_options = {
+  .name = &amp;google_protobuf_DescriptorProto_options_fieldname,
+  .number = (uint32_t)7,
+  .label = 1,
+  .type = 11,
+  .type_name = &amp;google_protobuf_DescriptorProto_options_field_typename,
+};
+/* google_protobuf_DescriptorProto_ExtensionRange_descriptor */
+static struct upb_string google_protobuf_DescriptorProto_ExtensionRange_descriptor_name = {
+  .byte_len=14, .data=(uint8_t*)&quot;ExtensionRange&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_ExtensionRange_start_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_ExtensionRange_end_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_DescriptorProto_ExtensionRange_descriptor_field_array[] = {
+  &amp;google_protobuf_DescriptorProto_ExtensionRange_start_descriptor,
+  &amp;google_protobuf_DescriptorProto_ExtensionRange_end_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_DescriptorProto_ExtensionRange_descriptor_field = {
+  .len=2, .elements=google_protobuf_DescriptorProto_ExtensionRange_descriptor_field_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_DescriptorProto_ExtensionRange_descriptor = {
+  .name = &amp;google_protobuf_DescriptorProto_ExtensionRange_descriptor_name,
+  .field = &amp;google_protobuf_DescriptorProto_ExtensionRange_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_DescriptorProto_ExtensionRange_start_fieldname = {
+  .byte_len=5, .data=(uint8_t*)&quot;start&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_ExtensionRange_start = {
+  .name = &amp;google_protobuf_DescriptorProto_ExtensionRange_start_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 5,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_DescriptorProto_ExtensionRange_end_fieldname = {
+  .byte_len=3, .data=(uint8_t*)&quot;end&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_DescriptorProto_ExtensionRange_end = {
+  .name = &amp;google_protobuf_DescriptorProto_ExtensionRange_end_fieldname,
+  .number = (uint32_t)2,
+  .label = 1,
+  .type = 5,
+  .type_name = NULL,
+};
+/* google_protobuf_FieldDescriptorProto_descriptor */
+static struct upb_string google_protobuf_FieldDescriptorProto_descriptor_name = {
+  .byte_len=20, .data=(uint8_t*)&quot;FieldDescriptorProto&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_name_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_number_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_label_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_type_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_type_name_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_extendee_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_default_value_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_options_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_FieldDescriptorProto_descriptor_field_array[] = {
+  &amp;google_protobuf_FieldDescriptorProto_name_descriptor,
+  &amp;google_protobuf_FieldDescriptorProto_number_descriptor,
+  &amp;google_protobuf_FieldDescriptorProto_label_descriptor,
+  &amp;google_protobuf_FieldDescriptorProto_type_descriptor,
+  &amp;google_protobuf_FieldDescriptorProto_type_name_descriptor,
+  &amp;google_protobuf_FieldDescriptorProto_extendee_descriptor,
+  &amp;google_protobuf_FieldDescriptorProto_default_value_descriptor,
+  &amp;google_protobuf_FieldDescriptorProto_options_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_FieldDescriptorProto_descriptor_field = {
+  .len=8, .elements=google_protobuf_FieldDescriptorProto_descriptor_field_array
+};
+
+struct google_protobuf_EnumDescriptorProto google_protobuf_FieldDescriptorProto_Type_descriptor;
+struct google_protobuf_EnumDescriptorProto google_protobuf_FieldDescriptorProto_Label_descriptor;
+
+static google_protobuf_EnumDescriptorProto *google_protobuf_FieldDescriptorProto_descriptor_enum_type_array[] = {
+  &amp;google_protobuf_FieldDescriptorProto_Type_descriptor,
+  &amp;google_protobuf_FieldDescriptorProto_Label_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_EnumDescriptorProto) google_protobuf_FieldDescriptorProto_descriptor_enum_type = {
+  .len=2, .elements=google_protobuf_FieldDescriptorProto_descriptor_enum_type_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_FieldDescriptorProto_descriptor = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_descriptor_name,
+  .field = &amp;google_protobuf_FieldDescriptorProto_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = &amp;google_protobuf_FieldDescriptorProto_descriptor_enum_type,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_FieldDescriptorProto_name_fieldname = {
+  .byte_len=4, .data=(uint8_t*)&quot;name&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_name = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_name_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FieldDescriptorProto_number_fieldname = {
+  .byte_len=6, .data=(uint8_t*)&quot;number&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_number = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_number_fieldname,
+  .number = (uint32_t)3,
+  .label = 1,
+  .type = 5,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FieldDescriptorProto_label_fieldname = {
+  .byte_len=5, .data=(uint8_t*)&quot;label&quot;
+};
+
+static struct upb_string google_protobuf_FieldDescriptorProto_label_field_typename = {
+  .byte_len=5, .data=(uint8_t*)&quot;Label&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_label = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_label_fieldname,
+  .number = (uint32_t)4,
+  .label = 1,
+  .type = 14,
+  .type_name = &amp;google_protobuf_FieldDescriptorProto_label_field_typename,
+};
+static struct upb_string google_protobuf_FieldDescriptorProto_type_fieldname = {
+  .byte_len=4, .data=(uint8_t*)&quot;type&quot;
+};
+
+static struct upb_string google_protobuf_FieldDescriptorProto_type_field_typename = {
+  .byte_len=4, .data=(uint8_t*)&quot;Type&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_type = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_type_fieldname,
+  .number = (uint32_t)5,
+  .label = 1,
+  .type = 14,
+  .type_name = &amp;google_protobuf_FieldDescriptorProto_type_field_typename,
+};
+static struct upb_string google_protobuf_FieldDescriptorProto_type_name_fieldname = {
+  .byte_len=9, .data=(uint8_t*)&quot;type_name&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_type_name = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_type_name_fieldname,
+  .number = (uint32_t)6,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FieldDescriptorProto_extendee_fieldname = {
+  .byte_len=8, .data=(uint8_t*)&quot;extendee&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_extendee = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_extendee_fieldname,
+  .number = (uint32_t)2,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FieldDescriptorProto_default_value_fieldname = {
+  .byte_len=13, .data=(uint8_t*)&quot;default_value&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_default_value = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_default_value_fieldname,
+  .number = (uint32_t)7,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FieldDescriptorProto_options_fieldname = {
+  .byte_len=7, .data=(uint8_t*)&quot;options&quot;
+};
+
+static struct upb_string google_protobuf_FieldDescriptorProto_options_field_typename = {
+  .byte_len=12, .data=(uint8_t*)&quot;FieldOptions&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldDescriptorProto_options = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_options_fieldname,
+  .number = (uint32_t)8,
+  .label = 1,
+  .type = 11,
+  .type_name = &amp;google_protobuf_FieldDescriptorProto_options_field_typename,
+};
+static struct upb_string google_protobuf_FieldDescriptorProto_Type_name = {
+  .byte_len=4, .data=(uint8_t*)&quot;Type&quot;
+};
+
+google_protobuf_EnumDescriptorProto google_protobuf_FieldDescriptorProto_Type_descriptor = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_Type_name,
+};
+static struct upb_string google_protobuf_FieldDescriptorProto_Label_name = {
+  .byte_len=5, .data=(uint8_t*)&quot;Label&quot;
+};
+
+google_protobuf_EnumDescriptorProto google_protobuf_FieldDescriptorProto_Label_descriptor = {
+  .name = &amp;google_protobuf_FieldDescriptorProto_Label_name,
+};
+/* google_protobuf_EnumDescriptorProto_descriptor */
+static struct upb_string google_protobuf_EnumDescriptorProto_descriptor_name = {
+  .byte_len=19, .data=(uint8_t*)&quot;EnumDescriptorProto&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_EnumDescriptorProto_name_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_EnumDescriptorProto_value_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_EnumDescriptorProto_options_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_EnumDescriptorProto_descriptor_field_array[] = {
+  &amp;google_protobuf_EnumDescriptorProto_name_descriptor,
+  &amp;google_protobuf_EnumDescriptorProto_value_descriptor,
+  &amp;google_protobuf_EnumDescriptorProto_options_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_EnumDescriptorProto_descriptor_field = {
+  .len=3, .elements=google_protobuf_EnumDescriptorProto_descriptor_field_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_EnumDescriptorProto_descriptor = {
+  .name = &amp;google_protobuf_EnumDescriptorProto_descriptor_name,
+  .field = &amp;google_protobuf_EnumDescriptorProto_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_EnumDescriptorProto_name_fieldname = {
+  .byte_len=4, .data=(uint8_t*)&quot;name&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_EnumDescriptorProto_name = {
+  .name = &amp;google_protobuf_EnumDescriptorProto_name_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_EnumDescriptorProto_value_fieldname = {
+  .byte_len=5, .data=(uint8_t*)&quot;value&quot;
+};
+
+static struct upb_string google_protobuf_EnumDescriptorProto_value_field_typename = {
+  .byte_len=24, .data=(uint8_t*)&quot;EnumValueDescriptorProto&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_EnumDescriptorProto_value = {
+  .name = &amp;google_protobuf_EnumDescriptorProto_value_fieldname,
+  .number = (uint32_t)2,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_EnumDescriptorProto_value_field_typename,
+};
+static struct upb_string google_protobuf_EnumDescriptorProto_options_fieldname = {
+  .byte_len=7, .data=(uint8_t*)&quot;options&quot;
+};
+
+static struct upb_string google_protobuf_EnumDescriptorProto_options_field_typename = {
+  .byte_len=11, .data=(uint8_t*)&quot;EnumOptions&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_EnumDescriptorProto_options = {
+  .name = &amp;google_protobuf_EnumDescriptorProto_options_fieldname,
+  .number = (uint32_t)3,
+  .label = 1,
+  .type = 11,
+  .type_name = &amp;google_protobuf_EnumDescriptorProto_options_field_typename,
+};
+/* google_protobuf_EnumValueDescriptorProto_descriptor */
+static struct upb_string google_protobuf_EnumValueDescriptorProto_descriptor_name = {
+  .byte_len=24, .data=(uint8_t*)&quot;EnumValueDescriptorProto&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_EnumValueDescriptorProto_name_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_EnumValueDescriptorProto_number_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_EnumValueDescriptorProto_options_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_EnumValueDescriptorProto_descriptor_field_array[] = {
+  &amp;google_protobuf_EnumValueDescriptorProto_name_descriptor,
+  &amp;google_protobuf_EnumValueDescriptorProto_number_descriptor,
+  &amp;google_protobuf_EnumValueDescriptorProto_options_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_EnumValueDescriptorProto_descriptor_field = {
+  .len=3, .elements=google_protobuf_EnumValueDescriptorProto_descriptor_field_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_EnumValueDescriptorProto_descriptor = {
+  .name = &amp;google_protobuf_EnumValueDescriptorProto_descriptor_name,
+  .field = &amp;google_protobuf_EnumValueDescriptorProto_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_EnumValueDescriptorProto_name_fieldname = {
+  .byte_len=4, .data=(uint8_t*)&quot;name&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_EnumValueDescriptorProto_name = {
+  .name = &amp;google_protobuf_EnumValueDescriptorProto_name_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_EnumValueDescriptorProto_number_fieldname = {
+  .byte_len=6, .data=(uint8_t*)&quot;number&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_EnumValueDescriptorProto_number = {
+  .name = &amp;google_protobuf_EnumValueDescriptorProto_number_fieldname,
+  .number = (uint32_t)2,
+  .label = 1,
+  .type = 5,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_EnumValueDescriptorProto_options_fieldname = {
+  .byte_len=7, .data=(uint8_t*)&quot;options&quot;
+};
+
+static struct upb_string google_protobuf_EnumValueDescriptorProto_options_field_typename = {
+  .byte_len=16, .data=(uint8_t*)&quot;EnumValueOptions&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_EnumValueDescriptorProto_options = {
+  .name = &amp;google_protobuf_EnumValueDescriptorProto_options_fieldname,
+  .number = (uint32_t)3,
+  .label = 1,
+  .type = 11,
+  .type_name = &amp;google_protobuf_EnumValueDescriptorProto_options_field_typename,
+};
+/* google_protobuf_ServiceDescriptorProto_descriptor */
+static struct upb_string google_protobuf_ServiceDescriptorProto_descriptor_name = {
+  .byte_len=22, .data=(uint8_t*)&quot;ServiceDescriptorProto&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_ServiceDescriptorProto_name_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_ServiceDescriptorProto_method_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_ServiceDescriptorProto_options_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_ServiceDescriptorProto_descriptor_field_array[] = {
+  &amp;google_protobuf_ServiceDescriptorProto_name_descriptor,
+  &amp;google_protobuf_ServiceDescriptorProto_method_descriptor,
+  &amp;google_protobuf_ServiceDescriptorProto_options_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_ServiceDescriptorProto_descriptor_field = {
+  .len=3, .elements=google_protobuf_ServiceDescriptorProto_descriptor_field_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_ServiceDescriptorProto_descriptor = {
+  .name = &amp;google_protobuf_ServiceDescriptorProto_descriptor_name,
+  .field = &amp;google_protobuf_ServiceDescriptorProto_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_ServiceDescriptorProto_name_fieldname = {
+  .byte_len=4, .data=(uint8_t*)&quot;name&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_ServiceDescriptorProto_name = {
+  .name = &amp;google_protobuf_ServiceDescriptorProto_name_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_ServiceDescriptorProto_method_fieldname = {
+  .byte_len=6, .data=(uint8_t*)&quot;method&quot;
+};
+
+static struct upb_string google_protobuf_ServiceDescriptorProto_method_field_typename = {
+  .byte_len=21, .data=(uint8_t*)&quot;MethodDescriptorProto&quot;
 };
 
-/* FileDescriptorProto */
-struct pbstream_FieldDescriptorProto pbstream_FileDescriptorProto_fields[] = {
-  {&quot;message_type&quot;, 4, PBSTREAM_LABEL_REPEATED, PBSTREAM_TYPE_MESSAGE, &quot;DescriptorProto&quot;},
+google_protobuf_FieldDescriptorProto google_protobuf_ServiceDescriptorProto_method = {
+  .name = &amp;google_protobuf_ServiceDescriptorProto_method_fieldname,
+  .number = (uint32_t)2,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_ServiceDescriptorProto_method_field_typename,
 };
-struct pbstream_DescriptorProto pbstream_FileDescriptorProto_desc = {
-  &quot;FileDescriptorProto&quot;, .field_count=1, .field = pbstream_FileDescriptorProto_fields
+static struct upb_string google_protobuf_ServiceDescriptorProto_options_fieldname = {
+  .byte_len=7, .data=(uint8_t*)&quot;options&quot;
 };
 
-/* DescriptorProto */
-struct pbstream_FieldDescriptorProto pbstream_DescriptorProto_fields[] = {
-  {&quot;name&quot;, 1, PBSTREAM_LABEL_OPTIONAL, PBSTREAM_TYPE_STRING},
-  {&quot;field&quot;, 2, PBSTREAM_LABEL_REPEATED, PBSTREAM_TYPE_MESSAGE, &quot;FieldDescriptorProto&quot;},
-  {&quot;nested_type&quot;, 3, PBSTREAM_LABEL_REPEATED, PBSTREAM_TYPE_MESSAGE, &quot;DescriptorProto&quot;},
-  {&quot;enum_type&quot;, 4, PBSTREAM_LABEL_REPEATED, PBSTREAM_TYPE_MESSAGE, &quot;EnumDescriptorProto&quot;},
+static struct upb_string google_protobuf_ServiceDescriptorProto_options_field_typename = {
+  .byte_len=14, .data=(uint8_t*)&quot;ServiceOptions&quot;
 };
-struct pbstream_DescriptorProto pbstream_DescriptorProto_desc = {
-  &quot;DescriptorProto&quot;, .field_count=4, .field = pbstream_DescriptorProto_fields
+
+google_protobuf_FieldDescriptorProto google_protobuf_ServiceDescriptorProto_options = {
+  .name = &amp;google_protobuf_ServiceDescriptorProto_options_fieldname,
+  .number = (uint32_t)3,
+  .label = 1,
+  .type = 11,
+  .type_name = &amp;google_protobuf_ServiceDescriptorProto_options_field_typename,
+};
+/* google_protobuf_MethodDescriptorProto_descriptor */
+static struct upb_string google_protobuf_MethodDescriptorProto_descriptor_name = {
+  .byte_len=21, .data=(uint8_t*)&quot;MethodDescriptorProto&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_MethodDescriptorProto_name_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_MethodDescriptorProto_input_type_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_MethodDescriptorProto_output_type_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_MethodDescriptorProto_options_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_MethodDescriptorProto_descriptor_field_array[] = {
+  &amp;google_protobuf_MethodDescriptorProto_name_descriptor,
+  &amp;google_protobuf_MethodDescriptorProto_input_type_descriptor,
+  &amp;google_protobuf_MethodDescriptorProto_output_type_descriptor,
+  &amp;google_protobuf_MethodDescriptorProto_options_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_MethodDescriptorProto_descriptor_field = {
+  .len=4, .elements=google_protobuf_MethodDescriptorProto_descriptor_field_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_MethodDescriptorProto_descriptor = {
+  .name = &amp;google_protobuf_MethodDescriptorProto_descriptor_name,
+  .field = &amp;google_protobuf_MethodDescriptorProto_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_MethodDescriptorProto_name_fieldname = {
+  .byte_len=4, .data=(uint8_t*)&quot;name&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_MethodDescriptorProto_name = {
+  .name = &amp;google_protobuf_MethodDescriptorProto_name_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_MethodDescriptorProto_input_type_fieldname = {
+  .byte_len=10, .data=(uint8_t*)&quot;input_type&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_MethodDescriptorProto_input_type = {
+  .name = &amp;google_protobuf_MethodDescriptorProto_input_type_fieldname,
+  .number = (uint32_t)2,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_MethodDescriptorProto_output_type_fieldname = {
+  .byte_len=11, .data=(uint8_t*)&quot;output_type&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_MethodDescriptorProto_output_type = {
+  .name = &amp;google_protobuf_MethodDescriptorProto_output_type_fieldname,
+  .number = (uint32_t)3,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_MethodDescriptorProto_options_fieldname = {
+  .byte_len=7, .data=(uint8_t*)&quot;options&quot;
+};
+
+static struct upb_string google_protobuf_MethodDescriptorProto_options_field_typename = {
+  .byte_len=13, .data=(uint8_t*)&quot;MethodOptions&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_MethodDescriptorProto_options = {
+  .name = &amp;google_protobuf_MethodDescriptorProto_options_fieldname,
+  .number = (uint32_t)4,
+  .label = 1,
+  .type = 11,
+  .type_name = &amp;google_protobuf_MethodDescriptorProto_options_field_typename,
+};
+/* google_protobuf_FileOptions_descriptor */
+static struct upb_string google_protobuf_FileOptions_descriptor_name = {
+  .byte_len=11, .data=(uint8_t*)&quot;FileOptions&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileOptions_java_package_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileOptions_java_outer_classname_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileOptions_java_multiple_files_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileOptions_optimize_for_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FileOptions_uninterpreted_option_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_FileOptions_descriptor_field_array[] = {
+  &amp;google_protobuf_FileOptions_java_package_descriptor,
+  &amp;google_protobuf_FileOptions_java_outer_classname_descriptor,
+  &amp;google_protobuf_FileOptions_java_multiple_files_descriptor,
+  &amp;google_protobuf_FileOptions_optimize_for_descriptor,
+  &amp;google_protobuf_FileOptions_uninterpreted_option_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_FileOptions_descriptor_field = {
+  .len=5, .elements=google_protobuf_FileOptions_descriptor_field_array
+};
+
+struct google_protobuf_EnumDescriptorProto google_protobuf_FileOptions_OptimizeMode_descriptor;
+
+static google_protobuf_EnumDescriptorProto *google_protobuf_FileOptions_descriptor_enum_type_array[] = {
+  &amp;google_protobuf_FileOptions_OptimizeMode_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_EnumDescriptorProto) google_protobuf_FileOptions_descriptor_enum_type = {
+  .len=1, .elements=google_protobuf_FileOptions_descriptor_enum_type_array
+};
+
+struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_FileOptions_descriptor_extension_range0_descriptor;
+
+static google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_FileOptions_descriptor_extension_range_array[] = {
+  &amp;google_protobuf_FileOptions_descriptor_extension_range0_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_DescriptorProto_ExtensionRange) google_protobuf_FileOptions_descriptor_extension_range = {
+  .len=1, .elements=google_protobuf_FileOptions_descriptor_extension_range_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_FileOptions_descriptor = {
+  .name = &amp;google_protobuf_FileOptions_descriptor_name,
+  .field = &amp;google_protobuf_FileOptions_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = &amp;google_protobuf_FileOptions_descriptor_enum_type,
+  .extension_range = &amp;google_protobuf_FileOptions_descriptor_extension_range,
+};
+static struct upb_string google_protobuf_FileOptions_java_package_fieldname = {
+  .byte_len=12, .data=(uint8_t*)&quot;java_package&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileOptions_java_package = {
+  .name = &amp;google_protobuf_FileOptions_java_package_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FileOptions_java_outer_classname_fieldname = {
+  .byte_len=20, .data=(uint8_t*)&quot;java_outer_classname&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileOptions_java_outer_classname = {
+  .name = &amp;google_protobuf_FileOptions_java_outer_classname_fieldname,
+  .number = (uint32_t)8,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FileOptions_java_multiple_files_fieldname = {
+  .byte_len=19, .data=(uint8_t*)&quot;java_multiple_files&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileOptions_java_multiple_files = {
+  .name = &amp;google_protobuf_FileOptions_java_multiple_files_fieldname,
+  .number = (uint32_t)10,
+  .label = 1,
+  .type = 8,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FileOptions_optimize_for_fieldname = {
+  .byte_len=12, .data=(uint8_t*)&quot;optimize_for&quot;
+};
+
+static struct upb_string google_protobuf_FileOptions_optimize_for_field_typename = {
+  .byte_len=12, .data=(uint8_t*)&quot;OptimizeMode&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileOptions_optimize_for = {
+  .name = &amp;google_protobuf_FileOptions_optimize_for_fieldname,
+  .number = (uint32_t)9,
+  .label = 1,
+  .type = 14,
+  .type_name = &amp;google_protobuf_FileOptions_optimize_for_field_typename,
+};
+static struct upb_string google_protobuf_FileOptions_uninterpreted_option_fieldname = {
+  .byte_len=20, .data=(uint8_t*)&quot;uninterpreted_option&quot;
+};
+
+static struct upb_string google_protobuf_FileOptions_uninterpreted_option_field_typename = {
+  .byte_len=19, .data=(uint8_t*)&quot;UninterpretedOption&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FileOptions_uninterpreted_option = {
+  .name = &amp;google_protobuf_FileOptions_uninterpreted_option_fieldname,
+  .number = (uint32_t)999,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_FileOptions_uninterpreted_option_field_typename,
+};
+static struct upb_string google_protobuf_FileOptions_OptimizeMode_name = {
+  .byte_len=12, .data=(uint8_t*)&quot;OptimizeMode&quot;
 };
 
-/* FieldDescriptorProto */
-struct pbstream_FieldDescriptorProto pbstream_FieldDescriptorProto_fields[] = {
-  {&quot;name&quot;, 1, PBSTREAM_LABEL_OPTIONAL, PBSTREAM_TYPE_STRING},
-  {&quot;number&quot;, 3, PBSTREAM_LABEL_OPTIONAL, PBSTREAM_TYPE_INT32},
-  {&quot;type&quot;, 5, PBSTREAM_LABEL_OPTIONAL, PBSTREAM_TYPE_ENUM, &quot;Type&quot;},
-  {&quot;type_name&quot;, 6, PBSTREAM_LABEL_OPTIONAL, PBSTREAM_TYPE_STRING},
+google_protobuf_EnumDescriptorProto google_protobuf_FileOptions_OptimizeMode_descriptor = {
+  .name = &amp;google_protobuf_FileOptions_OptimizeMode_name,
 };
-struct pbstream_DescriptorProto pbstream_FieldDescriptorProto_desc = {
-  &quot;FieldDescriptorProto&quot;, .field_count=4, .field = pbstream_FieldDescriptorProto_fields
+/* google_protobuf_MessageOptions_descriptor */
+static struct upb_string google_protobuf_MessageOptions_descriptor_name = {
+  .byte_len=14, .data=(uint8_t*)&quot;MessageOptions&quot;
 };
 
-/* EnumDescriptorProto */
-struct pbstream_FieldDescriptorProto pbstream_EnumDescriptorProto_fields[] = {
-  {&quot;name&quot;, 1, PBSTREAM_LABEL_OPTIONAL, PBSTREAM_TYPE_STRING},
-  {&quot;value&quot;, 2, PBSTREAM_LABEL_REPEATED, PBSTREAM_TYPE_MESSAGE, &quot;EnumValueDescriptorProto&quot;},
+struct google_protobuf_FieldDescriptorProto google_protobuf_MessageOptions_message_set_wire_format_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_MessageOptions_uninterpreted_option_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_MessageOptions_descriptor_field_array[] = {
+  &amp;google_protobuf_MessageOptions_message_set_wire_format_descriptor,
+  &amp;google_protobuf_MessageOptions_uninterpreted_option_descriptor,
 };
-struct pbstream_DescriptorProto pbstream_EnumDescriptorProto_desc = {
-  &quot;EnumDescriptorProto&quot;, .field_count=2, .field = pbstream_EnumDescriptorProto_fields
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_MessageOptions_descriptor_field = {
+  .len=2, .elements=google_protobuf_MessageOptions_descriptor_field_array
 };
 
-/* EnumValueDescriptorProto */
-struct pbstream_FieldDescriptorProto pbstream_EnumValueDescriptorProto_fields[] = {
-  {&quot;name&quot;, 1, PBSTREAM_LABEL_OPTIONAL, PBSTREAM_TYPE_STRING},
-  {&quot;number&quot;, 2, PBSTREAM_LABEL_OPTIONAL, PBSTREAM_TYPE_INT32},
+struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_MessageOptions_descriptor_extension_range0_descriptor;
+
+static google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_MessageOptions_descriptor_extension_range_array[] = {
+  &amp;google_protobuf_MessageOptions_descriptor_extension_range0_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_DescriptorProto_ExtensionRange) google_protobuf_MessageOptions_descriptor_extension_range = {
+  .len=1, .elements=google_protobuf_MessageOptions_descriptor_extension_range_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_MessageOptions_descriptor = {
+  .name = &amp;google_protobuf_MessageOptions_descriptor_name,
+  .field = &amp;google_protobuf_MessageOptions_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = &amp;google_protobuf_MessageOptions_descriptor_extension_range,
+};
+static struct upb_string google_protobuf_MessageOptions_message_set_wire_format_fieldname = {
+  .byte_len=23, .data=(uint8_t*)&quot;message_set_wire_format&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_MessageOptions_message_set_wire_format = {
+  .name = &amp;google_protobuf_MessageOptions_message_set_wire_format_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 8,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_MessageOptions_uninterpreted_option_fieldname = {
+  .byte_len=20, .data=(uint8_t*)&quot;uninterpreted_option&quot;
 };
-struct pbstream_DescriptorProto pbstream_EnumValueDescriptorProto_desc = {
-  &quot;EnumDescriptorProto&quot;, .field_count=4, .field = pbstream_EnumValueDescriptorProto_fields
+
+static struct upb_string google_protobuf_MessageOptions_uninterpreted_option_field_typename = {
+  .byte_len=19, .data=(uint8_t*)&quot;UninterpretedOption&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_MessageOptions_uninterpreted_option = {
+  .name = &amp;google_protobuf_MessageOptions_uninterpreted_option_fieldname,
+  .number = (uint32_t)999,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_MessageOptions_uninterpreted_option_field_typename,
+};
+/* google_protobuf_FieldOptions_descriptor */
+static struct upb_string google_protobuf_FieldOptions_descriptor_name = {
+  .byte_len=12, .data=(uint8_t*)&quot;FieldOptions&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldOptions_ctype_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldOptions_experimental_map_key_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_FieldOptions_uninterpreted_option_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_FieldOptions_descriptor_field_array[] = {
+  &amp;google_protobuf_FieldOptions_ctype_descriptor,
+  &amp;google_protobuf_FieldOptions_experimental_map_key_descriptor,
+  &amp;google_protobuf_FieldOptions_uninterpreted_option_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_FieldOptions_descriptor_field = {
+  .len=3, .elements=google_protobuf_FieldOptions_descriptor_field_array
+};
+
+struct google_protobuf_EnumDescriptorProto google_protobuf_FieldOptions_CType_descriptor;
+
+static google_protobuf_EnumDescriptorProto *google_protobuf_FieldOptions_descriptor_enum_type_array[] = {
+  &amp;google_protobuf_FieldOptions_CType_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_EnumDescriptorProto) google_protobuf_FieldOptions_descriptor_enum_type = {
+  .len=1, .elements=google_protobuf_FieldOptions_descriptor_enum_type_array
 };
 
+struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_FieldOptions_descriptor_extension_range0_descriptor;
+
+static google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_FieldOptions_descriptor_extension_range_array[] = {
+  &amp;google_protobuf_FieldOptions_descriptor_extension_range0_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_DescriptorProto_ExtensionRange) google_protobuf_FieldOptions_descriptor_extension_range = {
+  .len=1, .elements=google_protobuf_FieldOptions_descriptor_extension_range_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_FieldOptions_descriptor = {
+  .name = &amp;google_protobuf_FieldOptions_descriptor_name,
+  .field = &amp;google_protobuf_FieldOptions_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = &amp;google_protobuf_FieldOptions_descriptor_enum_type,
+  .extension_range = &amp;google_protobuf_FieldOptions_descriptor_extension_range,
+};
+static struct upb_string google_protobuf_FieldOptions_ctype_fieldname = {
+  .byte_len=5, .data=(uint8_t*)&quot;ctype&quot;
+};
+
+static struct upb_string google_protobuf_FieldOptions_ctype_field_typename = {
+  .byte_len=5, .data=(uint8_t*)&quot;CType&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldOptions_ctype = {
+  .name = &amp;google_protobuf_FieldOptions_ctype_fieldname,
+  .number = (uint32_t)1,
+  .label = 1,
+  .type = 14,
+  .type_name = &amp;google_protobuf_FieldOptions_ctype_field_typename,
+};
+static struct upb_string google_protobuf_FieldOptions_experimental_map_key_fieldname = {
+  .byte_len=20, .data=(uint8_t*)&quot;experimental_map_key&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldOptions_experimental_map_key = {
+  .name = &amp;google_protobuf_FieldOptions_experimental_map_key_fieldname,
+  .number = (uint32_t)9,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_FieldOptions_uninterpreted_option_fieldname = {
+  .byte_len=20, .data=(uint8_t*)&quot;uninterpreted_option&quot;
+};
+
+static struct upb_string google_protobuf_FieldOptions_uninterpreted_option_field_typename = {
+  .byte_len=19, .data=(uint8_t*)&quot;UninterpretedOption&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_FieldOptions_uninterpreted_option = {
+  .name = &amp;google_protobuf_FieldOptions_uninterpreted_option_fieldname,
+  .number = (uint32_t)999,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_FieldOptions_uninterpreted_option_field_typename,
+};
+static struct upb_string google_protobuf_FieldOptions_CType_name = {
+  .byte_len=5, .data=(uint8_t*)&quot;CType&quot;
+};
+
+google_protobuf_EnumDescriptorProto google_protobuf_FieldOptions_CType_descriptor = {
+  .name = &amp;google_protobuf_FieldOptions_CType_name,
+};
+/* google_protobuf_EnumOptions_descriptor */
+static struct upb_string google_protobuf_EnumOptions_descriptor_name = {
+  .byte_len=11, .data=(uint8_t*)&quot;EnumOptions&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_EnumOptions_uninterpreted_option_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_EnumOptions_descriptor_field_array[] = {
+  &amp;google_protobuf_EnumOptions_uninterpreted_option_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_EnumOptions_descriptor_field = {
+  .len=1, .elements=google_protobuf_EnumOptions_descriptor_field_array
+};
+
+struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_EnumOptions_descriptor_extension_range0_descriptor;
+
+static google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_EnumOptions_descriptor_extension_range_array[] = {
+  &amp;google_protobuf_EnumOptions_descriptor_extension_range0_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_DescriptorProto_ExtensionRange) google_protobuf_EnumOptions_descriptor_extension_range = {
+  .len=1, .elements=google_protobuf_EnumOptions_descriptor_extension_range_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_EnumOptions_descriptor = {
+  .name = &amp;google_protobuf_EnumOptions_descriptor_name,
+  .field = &amp;google_protobuf_EnumOptions_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = &amp;google_protobuf_EnumOptions_descriptor_extension_range,
+};
+static struct upb_string google_protobuf_EnumOptions_uninterpreted_option_fieldname = {
+  .byte_len=20, .data=(uint8_t*)&quot;uninterpreted_option&quot;
+};
+
+static struct upb_string google_protobuf_EnumOptions_uninterpreted_option_field_typename = {
+  .byte_len=19, .data=(uint8_t*)&quot;UninterpretedOption&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_EnumOptions_uninterpreted_option = {
+  .name = &amp;google_protobuf_EnumOptions_uninterpreted_option_fieldname,
+  .number = (uint32_t)999,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_EnumOptions_uninterpreted_option_field_typename,
+};
+/* google_protobuf_EnumValueOptions_descriptor */
+static struct upb_string google_protobuf_EnumValueOptions_descriptor_name = {
+  .byte_len=16, .data=(uint8_t*)&quot;EnumValueOptions&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_EnumValueOptions_uninterpreted_option_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_EnumValueOptions_descriptor_field_array[] = {
+  &amp;google_protobuf_EnumValueOptions_uninterpreted_option_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_EnumValueOptions_descriptor_field = {
+  .len=1, .elements=google_protobuf_EnumValueOptions_descriptor_field_array
+};
+
+struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_EnumValueOptions_descriptor_extension_range0_descriptor;
+
+static google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_EnumValueOptions_descriptor_extension_range_array[] = {
+  &amp;google_protobuf_EnumValueOptions_descriptor_extension_range0_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_DescriptorProto_ExtensionRange) google_protobuf_EnumValueOptions_descriptor_extension_range = {
+  .len=1, .elements=google_protobuf_EnumValueOptions_descriptor_extension_range_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_EnumValueOptions_descriptor = {
+  .name = &amp;google_protobuf_EnumValueOptions_descriptor_name,
+  .field = &amp;google_protobuf_EnumValueOptions_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = &amp;google_protobuf_EnumValueOptions_descriptor_extension_range,
+};
+static struct upb_string google_protobuf_EnumValueOptions_uninterpreted_option_fieldname = {
+  .byte_len=20, .data=(uint8_t*)&quot;uninterpreted_option&quot;
+};
+
+static struct upb_string google_protobuf_EnumValueOptions_uninterpreted_option_field_typename = {
+  .byte_len=19, .data=(uint8_t*)&quot;UninterpretedOption&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_EnumValueOptions_uninterpreted_option = {
+  .name = &amp;google_protobuf_EnumValueOptions_uninterpreted_option_fieldname,
+  .number = (uint32_t)999,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_EnumValueOptions_uninterpreted_option_field_typename,
+};
+/* google_protobuf_ServiceOptions_descriptor */
+static struct upb_string google_protobuf_ServiceOptions_descriptor_name = {
+  .byte_len=14, .data=(uint8_t*)&quot;ServiceOptions&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_ServiceOptions_uninterpreted_option_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_ServiceOptions_descriptor_field_array[] = {
+  &amp;google_protobuf_ServiceOptions_uninterpreted_option_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_ServiceOptions_descriptor_field = {
+  .len=1, .elements=google_protobuf_ServiceOptions_descriptor_field_array
+};
+
+struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_ServiceOptions_descriptor_extension_range0_descriptor;
+
+static google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_ServiceOptions_descriptor_extension_range_array[] = {
+  &amp;google_protobuf_ServiceOptions_descriptor_extension_range0_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_DescriptorProto_ExtensionRange) google_protobuf_ServiceOptions_descriptor_extension_range = {
+  .len=1, .elements=google_protobuf_ServiceOptions_descriptor_extension_range_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_ServiceOptions_descriptor = {
+  .name = &amp;google_protobuf_ServiceOptions_descriptor_name,
+  .field = &amp;google_protobuf_ServiceOptions_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = &amp;google_protobuf_ServiceOptions_descriptor_extension_range,
+};
+static struct upb_string google_protobuf_ServiceOptions_uninterpreted_option_fieldname = {
+  .byte_len=20, .data=(uint8_t*)&quot;uninterpreted_option&quot;
+};
+
+static struct upb_string google_protobuf_ServiceOptions_uninterpreted_option_field_typename = {
+  .byte_len=19, .data=(uint8_t*)&quot;UninterpretedOption&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_ServiceOptions_uninterpreted_option = {
+  .name = &amp;google_protobuf_ServiceOptions_uninterpreted_option_fieldname,
+  .number = (uint32_t)999,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_ServiceOptions_uninterpreted_option_field_typename,
+};
+/* google_protobuf_MethodOptions_descriptor */
+static struct upb_string google_protobuf_MethodOptions_descriptor_name = {
+  .byte_len=13, .data=(uint8_t*)&quot;MethodOptions&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_MethodOptions_uninterpreted_option_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_MethodOptions_descriptor_field_array[] = {
+  &amp;google_protobuf_MethodOptions_uninterpreted_option_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_MethodOptions_descriptor_field = {
+  .len=1, .elements=google_protobuf_MethodOptions_descriptor_field_array
+};
+
+struct google_protobuf_DescriptorProto_ExtensionRange google_protobuf_MethodOptions_descriptor_extension_range0_descriptor;
+
+static google_protobuf_DescriptorProto_ExtensionRange *google_protobuf_MethodOptions_descriptor_extension_range_array[] = {
+  &amp;google_protobuf_MethodOptions_descriptor_extension_range0_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_DescriptorProto_ExtensionRange) google_protobuf_MethodOptions_descriptor_extension_range = {
+  .len=1, .elements=google_protobuf_MethodOptions_descriptor_extension_range_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_MethodOptions_descriptor = {
+  .name = &amp;google_protobuf_MethodOptions_descriptor_name,
+  .field = &amp;google_protobuf_MethodOptions_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = &amp;google_protobuf_MethodOptions_descriptor_extension_range,
+};
+static struct upb_string google_protobuf_MethodOptions_uninterpreted_option_fieldname = {
+  .byte_len=20, .data=(uint8_t*)&quot;uninterpreted_option&quot;
+};
+
+static struct upb_string google_protobuf_MethodOptions_uninterpreted_option_field_typename = {
+  .byte_len=19, .data=(uint8_t*)&quot;UninterpretedOption&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_MethodOptions_uninterpreted_option = {
+  .name = &amp;google_protobuf_MethodOptions_uninterpreted_option_fieldname,
+  .number = (uint32_t)999,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_MethodOptions_uninterpreted_option_field_typename,
+};
+/* google_protobuf_UninterpretedOption_descriptor */
+static struct upb_string google_protobuf_UninterpretedOption_descriptor_name = {
+  .byte_len=19, .data=(uint8_t*)&quot;UninterpretedOption&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_name_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_identifier_value_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_positive_int_value_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_negative_int_value_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_double_value_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_string_value_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_UninterpretedOption_descriptor_field_array[] = {
+  &amp;google_protobuf_UninterpretedOption_name_descriptor,
+  &amp;google_protobuf_UninterpretedOption_identifier_value_descriptor,
+  &amp;google_protobuf_UninterpretedOption_positive_int_value_descriptor,
+  &amp;google_protobuf_UninterpretedOption_negative_int_value_descriptor,
+  &amp;google_protobuf_UninterpretedOption_double_value_descriptor,
+  &amp;google_protobuf_UninterpretedOption_string_value_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_UninterpretedOption_descriptor_field = {
+  .len=6, .elements=google_protobuf_UninterpretedOption_descriptor_field_array
+};
+
+struct google_protobuf_DescriptorProto google_protobuf_UninterpretedOption_NamePart_descriptor;
+
+static google_protobuf_DescriptorProto *google_protobuf_UninterpretedOption_descriptor_nested_type_array[] = {
+  &amp;google_protobuf_UninterpretedOption_NamePart_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_DescriptorProto) google_protobuf_UninterpretedOption_descriptor_nested_type = {
+  .len=1, .elements=google_protobuf_UninterpretedOption_descriptor_nested_type_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_UninterpretedOption_descriptor = {
+  .name = &amp;google_protobuf_UninterpretedOption_descriptor_name,
+  .field = &amp;google_protobuf_UninterpretedOption_descriptor_field,
+  .nested_type = &amp;google_protobuf_UninterpretedOption_descriptor_nested_type,
+  .enum_type = NULL,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_UninterpretedOption_name_fieldname = {
+  .byte_len=4, .data=(uint8_t*)&quot;name&quot;
+};
+
+static struct upb_string google_protobuf_UninterpretedOption_name_field_typename = {
+  .byte_len=8, .data=(uint8_t*)&quot;NamePart&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_name = {
+  .name = &amp;google_protobuf_UninterpretedOption_name_fieldname,
+  .number = (uint32_t)2,
+  .label = 3,
+  .type = 11,
+  .type_name = &amp;google_protobuf_UninterpretedOption_name_field_typename,
+};
+static struct upb_string google_protobuf_UninterpretedOption_identifier_value_fieldname = {
+  .byte_len=16, .data=(uint8_t*)&quot;identifier_value&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_identifier_value = {
+  .name = &amp;google_protobuf_UninterpretedOption_identifier_value_fieldname,
+  .number = (uint32_t)3,
+  .label = 1,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_UninterpretedOption_positive_int_value_fieldname = {
+  .byte_len=18, .data=(uint8_t*)&quot;positive_int_value&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_positive_int_value = {
+  .name = &amp;google_protobuf_UninterpretedOption_positive_int_value_fieldname,
+  .number = (uint32_t)4,
+  .label = 1,
+  .type = 4,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_UninterpretedOption_negative_int_value_fieldname = {
+  .byte_len=18, .data=(uint8_t*)&quot;negative_int_value&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_negative_int_value = {
+  .name = &amp;google_protobuf_UninterpretedOption_negative_int_value_fieldname,
+  .number = (uint32_t)5,
+  .label = 1,
+  .type = 3,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_UninterpretedOption_double_value_fieldname = {
+  .byte_len=12, .data=(uint8_t*)&quot;double_value&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_double_value = {
+  .name = &amp;google_protobuf_UninterpretedOption_double_value_fieldname,
+  .number = (uint32_t)6,
+  .label = 1,
+  .type = 1,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_UninterpretedOption_string_value_fieldname = {
+  .byte_len=12, .data=(uint8_t*)&quot;string_value&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_string_value = {
+  .name = &amp;google_protobuf_UninterpretedOption_string_value_fieldname,
+  .number = (uint32_t)7,
+  .label = 1,
+  .type = 12,
+  .type_name = NULL,
+};
+/* google_protobuf_UninterpretedOption_NamePart_descriptor */
+static struct upb_string google_protobuf_UninterpretedOption_NamePart_descriptor_name = {
+  .byte_len=8, .data=(uint8_t*)&quot;NamePart&quot;
+};
+
+struct google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_NamePart_name_part_descriptor;
+struct google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_NamePart_is_extension_descriptor;
+
+static google_protobuf_FieldDescriptorProto *google_protobuf_UninterpretedOption_NamePart_descriptor_field_array[] = {
+  &amp;google_protobuf_UninterpretedOption_NamePart_name_part_descriptor,
+  &amp;google_protobuf_UninterpretedOption_NamePart_is_extension_descriptor,
+};
+
+static UPB_STRUCT_ARRAY(google_protobuf_FieldDescriptorProto) google_protobuf_UninterpretedOption_NamePart_descriptor_field = {
+  .len=2, .elements=google_protobuf_UninterpretedOption_NamePart_descriptor_field_array
+};
+
+google_protobuf_DescriptorProto google_protobuf_UninterpretedOption_NamePart_descriptor = {
+  .name = &amp;google_protobuf_UninterpretedOption_NamePart_descriptor_name,
+  .field = &amp;google_protobuf_UninterpretedOption_NamePart_descriptor_field,
+  .nested_type = NULL,
+  .enum_type = NULL,
+  .extension_range = NULL,
+};
+static struct upb_string google_protobuf_UninterpretedOption_NamePart_name_part_fieldname = {
+  .byte_len=9, .data=(uint8_t*)&quot;name_part&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_NamePart_name_part = {
+  .name = &amp;google_protobuf_UninterpretedOption_NamePart_name_part_fieldname,
+  .number = (uint32_t)1,
+  .label = 2,
+  .type = 9,
+  .type_name = NULL,
+};
+static struct upb_string google_protobuf_UninterpretedOption_NamePart_is_extension_fieldname = {
+  .byte_len=12, .data=(uint8_t*)&quot;is_extension&quot;
+};
+
+google_protobuf_FieldDescriptorProto google_protobuf_UninterpretedOption_NamePart_is_extension = {
+  .name = &amp;google_protobuf_UninterpretedOption_NamePart_is_extension_fieldname,
+  .number = (uint32_t)2,
+  .label = 2,
+  .type = 8,
+  .type_name = NULL,
+};</diff>
      <filename>descriptor.c</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>pbstream.c</filename>
    </removed>
    <removed>
      <filename>pbstream.h</filename>
    </removed>
    <removed>
      <filename>pbstream_lowlevel.h</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>fdcefd68b17a62c7129e910351f5b323044f835d</id>
    </parent>
  </parents>
  <author>
    <name>Joshua Haberman</name>
    <email>joshua@reverberate.org</email>
  </author>
  <url>http://github.com/haberman/upb/commit/0c80c384756a48d5f731eeafa62b6cd5f3861749</url>
  <id>0c80c384756a48d5f731eeafa62b6cd5f3861749</id>
  <committed-date>2009-05-25T18:31:27-07:00</committed-date>
  <authored-date>2009-05-25T18:31:27-07:00</authored-date>
  <message>A flurry of activity.  Doesn't compile yet.

- a descriptor.c that describes the data structures in
  descriptor.proto using the data structures in descriptor.h.
- everything renamed pbstream -&gt; upb.
- modularization rethought.
- Doesn't compile yet, but should once things settle back down.</message>
  <tree>c723951c40b0dd7aea5ccd24e9b55fb0167ffb48</tree>
  <committer>
    <name>Joshua Haberman</name>
    <email>joshua@reverberate.org</email>
  </committer>
</commit>
