Regenerated protos with new script.
diff --git a/php/ext/google/protobuf/wkt.inc b/php/ext/google/protobuf/wkt.inc
index 29a6e51..573ff30 100644
--- a/php/ext/google/protobuf/wkt.inc
+++ b/php/ext/google/protobuf/wkt.inc
@@ -1,632 +1,15 @@
 // This file is generated from the .proto files for the well-known
 // types. Do not edit!
+static void google_protobuf_any_proto_AddDescriptor();
+static void google_protobuf_api_proto_AddDescriptor();
+static void google_protobuf_duration_proto_AddDescriptor();
+static void google_protobuf_empty_proto_AddDescriptor();
+static void google_protobuf_field_mask_proto_AddDescriptor();
+static void google_protobuf_source_context_proto_AddDescriptor();
+static void google_protobuf_struct_proto_AddDescriptor();
+static void google_protobuf_type_proto_AddDescriptor();
 static void google_protobuf_timestamp_proto_AddDescriptor();
 static void google_protobuf_wrappers_proto_AddDescriptor();
-static void google_protobuf_any_proto_AddDescriptor();
-static void google_protobuf_duration_proto_AddDescriptor();
-static void google_protobuf_api_proto_AddDescriptor();
-static void google_protobuf_empty_proto_AddDescriptor();
-static void google_protobuf_type_proto_AddDescriptor();
-static void google_protobuf_struct_proto_AddDescriptor();
-static void google_protobuf_source_context_proto_AddDescriptor();
-static void google_protobuf_field_mask_proto_AddDescriptor();
-/* google/protobuf/timestamp.proto */
-
-zend_class_entry* GPBMetadata_Google_Protobuf_Timestamp_ce;
-
-const char google_protobuf_timestamp_proto_descriptor [239] = {
-'\n', '\037', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'i', 'm', 'e', 's', 't', 'a', 
-'m', 'p', '.', 'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 
-'\"', '+', '\n', '\t', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', '\022', '\017', '\n', '\007', 's', 'e', 'c', 'o', 'n', 'd', 's', '\030', 
-'\001', ' ', '\001', '(', '\003', '\022', '\r', '\n', '\005', 'n', 'a', 'n', 'o', 's', '\030', '\002', ' ', '\001', '(', '\005', 'B', '\205', '\001', '\n', '\023', 
-'c', 'o', 'm', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 'B', '\016', 'T', 'i', 'm', 'e', 
-'s', 't', 'a', 'm', 'p', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '2', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'g', 'o', 'l', 'a', 
-'n', 'g', '.', 'o', 'r', 'g', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'y', 'p', 'e', 's', '/', 'k', 'n', 'o', 
-'w', 'n', '/', 't', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'p', 'b', '\370', '\001', '\001', '\242', '\002', '\003', 'G', 'P', 'B', '\252', '\002', 
-'\036', 'G', 'o', 'o', 'g', 'l', 'e', '.', 'P', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 'w', 
-'n', 'T', 'y', 'p', 'e', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
-};
-
-static void google_protobuf_timestamp_proto_AddDescriptor() {
-  if (DescriptorPool_HasFile("google/protobuf/timestamp.proto")) return;
-  DescriptorPool_AddDescriptor("google/protobuf/timestamp.proto", google_protobuf_timestamp_proto_descriptor,
-                               sizeof(google_protobuf_timestamp_proto_descriptor));
-}
-
-static PHP_METHOD(GPBMetadata_Google_Protobuf_Timestamp, initOnce) {
-  google_protobuf_timestamp_proto_AddDescriptor();
-}
-
-static zend_function_entry GPBMetadata_Google_Protobuf_Timestamp_methods[] = {
-  PHP_ME(GPBMetadata_Google_Protobuf_Timestamp, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
-  ZEND_FE_END
-};
-
-static void GPBMetadata_Google_Protobuf_Timestamp_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\Timestamp",
-                   GPBMetadata_Google_Protobuf_Timestamp_methods);
-
-  GPBMetadata_Google_Protobuf_Timestamp_ce = zend_register_internal_class(&tmp_ce);
-}
-
-/* google_protobuf_Timestamp */
-
-zend_class_entry* google_protobuf_Timestamp_ce;
-
-static PHP_METHOD(google_protobuf_Timestamp, __construct) {
-  google_protobuf_timestamp_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_Timestamp, getSeconds) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "seconds");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Timestamp, setSeconds) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "seconds");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Timestamp, getNanos) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "nanos");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Timestamp, setNanos) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "nanos");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_Timestamp_phpmethods[] = {
-  PHP_ME(google_protobuf_Timestamp, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Timestamp, getSeconds, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Timestamp, setSeconds, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Timestamp, getNanos, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Timestamp, setNanos, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Timestamp, fromDateTime, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Timestamp, toDateTime, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_Timestamp_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Timestamp",
-                   google_protobuf_Timestamp_phpmethods);
-
-  google_protobuf_Timestamp_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_Timestamp_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_Timestamp_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_Timestamp_ce, message_ce);
-}
-
-/* google/protobuf/wrappers.proto */
-
-zend_class_entry* GPBMetadata_Google_Protobuf_Wrappers_ce;
-
-const char google_protobuf_wrappers_proto_descriptor [455] = {
-'\n', '\036', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'w', 'r', 'a', 'p', 'p', 'e', 'r', 
-'s', '.', 'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '\"', 
-'\034', '\n', '\013', 'D', 'o', 'u', 'b', 'l', 'e', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', 
-' ', '\001', '(', '\001', '\"', '\033', '\n', '\n', 'F', 'l', 'o', 'a', 't', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 
-'u', 'e', '\030', '\001', ' ', '\001', '(', '\002', '\"', '\033', '\n', '\n', 'I', 'n', 't', '6', '4', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', 
-'\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\003', '\"', '\034', '\n', '\013', 'U', 'I', 'n', 't', '6', '4', 'V', 'a', 'l', 
-'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\004', '\"', '\033', '\n', '\n', 'I', 'n', 't', '3', 
-'2', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\005', '\"', '\034', '\n', '\013', 
-'U', 'I', 'n', 't', '3', '2', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', 
-'\r', '\"', '\032', '\n', '\t', 'B', 'o', 'o', 'l', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', 
-' ', '\001', '(', '\010', '\"', '\034', '\n', '\013', 'S', 't', 'r', 'i', 'n', 'g', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 
-'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\t', '\"', '\033', '\n', '\n', 'B', 'y', 't', 'e', 's', 'V', 'a', 'l', 'u', 'e', '\022', '\r', 
-'\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\014', 'B', '\203', '\001', '\n', '\023', 'c', 'o', 'm', '.', 'g', 'o', 'o', 
-'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 'B', '\r', 'W', 'r', 'a', 'p', 'p', 'e', 'r', 's', 'P', 'r', 'o', 
-'t', 'o', 'P', '\001', 'Z', '1', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'g', 'o', 'l', 'a', 'n', 'g', '.', 'o', 'r', 'g', '/', 'p', 
-'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'y', 'p', 'e', 's', '/', 'k', 'n', 'o', 'w', 'n', '/', 'w', 'r', 'a', 'p', 'p', 
-'e', 'r', 's', 'p', 'b', '\370', '\001', '\001', '\242', '\002', '\003', 'G', 'P', 'B', '\252', '\002', '\036', 'G', 'o', 'o', 'g', 'l', 'e', '.', 'P', 
-'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 'w', 'n', 'T', 'y', 'p', 'e', 's', 'b', '\006', 'p', 
-'r', 'o', 't', 'o', '3', 
-};
-
-static void google_protobuf_wrappers_proto_AddDescriptor() {
-  if (DescriptorPool_HasFile("google/protobuf/wrappers.proto")) return;
-  DescriptorPool_AddDescriptor("google/protobuf/wrappers.proto", google_protobuf_wrappers_proto_descriptor,
-                               sizeof(google_protobuf_wrappers_proto_descriptor));
-}
-
-static PHP_METHOD(GPBMetadata_Google_Protobuf_Wrappers, initOnce) {
-  google_protobuf_wrappers_proto_AddDescriptor();
-}
-
-static zend_function_entry GPBMetadata_Google_Protobuf_Wrappers_methods[] = {
-  PHP_ME(GPBMetadata_Google_Protobuf_Wrappers, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
-  ZEND_FE_END
-};
-
-static void GPBMetadata_Google_Protobuf_Wrappers_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\Wrappers",
-                   GPBMetadata_Google_Protobuf_Wrappers_methods);
-
-  GPBMetadata_Google_Protobuf_Wrappers_ce = zend_register_internal_class(&tmp_ce);
-}
-
-/* google_protobuf_DoubleValue */
-
-zend_class_entry* google_protobuf_DoubleValue_ce;
-
-static PHP_METHOD(google_protobuf_DoubleValue, __construct) {
-  google_protobuf_wrappers_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_DoubleValue, getValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_DoubleValue, setValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_DoubleValue_phpmethods[] = {
-  PHP_ME(google_protobuf_DoubleValue, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_DoubleValue, getValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_DoubleValue, setValue, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_DoubleValue_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\DoubleValue",
-                   google_protobuf_DoubleValue_phpmethods);
-
-  google_protobuf_DoubleValue_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_DoubleValue_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_DoubleValue_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_DoubleValue_ce, message_ce);
-}
-
-/* google_protobuf_FloatValue */
-
-zend_class_entry* google_protobuf_FloatValue_ce;
-
-static PHP_METHOD(google_protobuf_FloatValue, __construct) {
-  google_protobuf_wrappers_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_FloatValue, getValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_FloatValue, setValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_FloatValue_phpmethods[] = {
-  PHP_ME(google_protobuf_FloatValue, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_FloatValue, getValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_FloatValue, setValue, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_FloatValue_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\FloatValue",
-                   google_protobuf_FloatValue_phpmethods);
-
-  google_protobuf_FloatValue_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_FloatValue_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_FloatValue_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_FloatValue_ce, message_ce);
-}
-
-/* google_protobuf_Int64Value */
-
-zend_class_entry* google_protobuf_Int64Value_ce;
-
-static PHP_METHOD(google_protobuf_Int64Value, __construct) {
-  google_protobuf_wrappers_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_Int64Value, getValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Int64Value, setValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_Int64Value_phpmethods[] = {
-  PHP_ME(google_protobuf_Int64Value, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Int64Value, getValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Int64Value, setValue, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_Int64Value_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Int64Value",
-                   google_protobuf_Int64Value_phpmethods);
-
-  google_protobuf_Int64Value_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_Int64Value_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_Int64Value_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_Int64Value_ce, message_ce);
-}
-
-/* google_protobuf_UInt64Value */
-
-zend_class_entry* google_protobuf_UInt64Value_ce;
-
-static PHP_METHOD(google_protobuf_UInt64Value, __construct) {
-  google_protobuf_wrappers_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_UInt64Value, getValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_UInt64Value, setValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_UInt64Value_phpmethods[] = {
-  PHP_ME(google_protobuf_UInt64Value, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_UInt64Value, getValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_UInt64Value, setValue, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_UInt64Value_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\UInt64Value",
-                   google_protobuf_UInt64Value_phpmethods);
-
-  google_protobuf_UInt64Value_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_UInt64Value_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_UInt64Value_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_UInt64Value_ce, message_ce);
-}
-
-/* google_protobuf_Int32Value */
-
-zend_class_entry* google_protobuf_Int32Value_ce;
-
-static PHP_METHOD(google_protobuf_Int32Value, __construct) {
-  google_protobuf_wrappers_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_Int32Value, getValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Int32Value, setValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_Int32Value_phpmethods[] = {
-  PHP_ME(google_protobuf_Int32Value, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Int32Value, getValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Int32Value, setValue, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_Int32Value_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Int32Value",
-                   google_protobuf_Int32Value_phpmethods);
-
-  google_protobuf_Int32Value_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_Int32Value_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_Int32Value_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_Int32Value_ce, message_ce);
-}
-
-/* google_protobuf_UInt32Value */
-
-zend_class_entry* google_protobuf_UInt32Value_ce;
-
-static PHP_METHOD(google_protobuf_UInt32Value, __construct) {
-  google_protobuf_wrappers_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_UInt32Value, getValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_UInt32Value, setValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_UInt32Value_phpmethods[] = {
-  PHP_ME(google_protobuf_UInt32Value, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_UInt32Value, getValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_UInt32Value, setValue, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_UInt32Value_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\UInt32Value",
-                   google_protobuf_UInt32Value_phpmethods);
-
-  google_protobuf_UInt32Value_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_UInt32Value_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_UInt32Value_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_UInt32Value_ce, message_ce);
-}
-
-/* google_protobuf_BoolValue */
-
-zend_class_entry* google_protobuf_BoolValue_ce;
-
-static PHP_METHOD(google_protobuf_BoolValue, __construct) {
-  google_protobuf_wrappers_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_BoolValue, getValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_BoolValue, setValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_BoolValue_phpmethods[] = {
-  PHP_ME(google_protobuf_BoolValue, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_BoolValue, getValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_BoolValue, setValue, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_BoolValue_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\BoolValue",
-                   google_protobuf_BoolValue_phpmethods);
-
-  google_protobuf_BoolValue_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_BoolValue_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_BoolValue_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_BoolValue_ce, message_ce);
-}
-
-/* google_protobuf_StringValue */
-
-zend_class_entry* google_protobuf_StringValue_ce;
-
-static PHP_METHOD(google_protobuf_StringValue, __construct) {
-  google_protobuf_wrappers_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_StringValue, getValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_StringValue, setValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_StringValue_phpmethods[] = {
-  PHP_ME(google_protobuf_StringValue, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_StringValue, getValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_StringValue, setValue, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_StringValue_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\StringValue",
-                   google_protobuf_StringValue_phpmethods);
-
-  google_protobuf_StringValue_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_StringValue_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_StringValue_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_StringValue_ce, message_ce);
-}
-
-/* google_protobuf_BytesValue */
-
-zend_class_entry* google_protobuf_BytesValue_ce;
-
-static PHP_METHOD(google_protobuf_BytesValue, __construct) {
-  google_protobuf_wrappers_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_BytesValue, getValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_BytesValue, setValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_BytesValue_phpmethods[] = {
-  PHP_ME(google_protobuf_BytesValue, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_BytesValue, getValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_BytesValue, setValue, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_BytesValue_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\BytesValue",
-                   google_protobuf_BytesValue_phpmethods);
-
-  google_protobuf_BytesValue_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_BytesValue_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_BytesValue_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_BytesValue_ce, message_ce);
-}
-
 /* google/protobuf/any.proto */
 
 zend_class_entry* GPBMetadata_Google_Protobuf_Any_ce;
@@ -744,121 +127,6 @@
   zend_do_inheritance(google_protobuf_Any_ce, message_ce);
 }
 
-/* google/protobuf/duration.proto */
-
-zend_class_entry* GPBMetadata_Google_Protobuf_Duration_ce;
-
-const char google_protobuf_duration_proto_descriptor [235] = {
-'\n', '\036', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'd', 'u', 'r', 'a', 't', 'i', 'o', 
-'n', '.', 'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '\"', 
-'*', '\n', '\010', 'D', 'u', 'r', 'a', 't', 'i', 'o', 'n', '\022', '\017', '\n', '\007', 's', 'e', 'c', 'o', 'n', 'd', 's', '\030', '\001', ' ', 
-'\001', '(', '\003', '\022', '\r', '\n', '\005', 'n', 'a', 'n', 'o', 's', '\030', '\002', ' ', '\001', '(', '\005', 'B', '\203', '\001', '\n', '\023', 'c', 'o', 
-'m', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 'B', '\r', 'D', 'u', 'r', 'a', 't', 'i', 
-'o', 'n', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '1', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'g', 'o', 'l', 'a', 'n', 'g', '.', 
-'o', 'r', 'g', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'y', 'p', 'e', 's', '/', 'k', 'n', 'o', 'w', 'n', '/', 
-'d', 'u', 'r', 'a', 't', 'i', 'o', 'n', 'p', 'b', '\370', '\001', '\001', '\242', '\002', '\003', 'G', 'P', 'B', '\252', '\002', '\036', 'G', 'o', 'o', 
-'g', 'l', 'e', '.', 'P', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 'w', 'n', 'T', 'y', 'p', 
-'e', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
-};
-
-static void google_protobuf_duration_proto_AddDescriptor() {
-  if (DescriptorPool_HasFile("google/protobuf/duration.proto")) return;
-  DescriptorPool_AddDescriptor("google/protobuf/duration.proto", google_protobuf_duration_proto_descriptor,
-                               sizeof(google_protobuf_duration_proto_descriptor));
-}
-
-static PHP_METHOD(GPBMetadata_Google_Protobuf_Duration, initOnce) {
-  google_protobuf_duration_proto_AddDescriptor();
-}
-
-static zend_function_entry GPBMetadata_Google_Protobuf_Duration_methods[] = {
-  PHP_ME(GPBMetadata_Google_Protobuf_Duration, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
-  ZEND_FE_END
-};
-
-static void GPBMetadata_Google_Protobuf_Duration_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\Duration",
-                   GPBMetadata_Google_Protobuf_Duration_methods);
-
-  GPBMetadata_Google_Protobuf_Duration_ce = zend_register_internal_class(&tmp_ce);
-}
-
-/* google_protobuf_Duration */
-
-zend_class_entry* google_protobuf_Duration_ce;
-
-static PHP_METHOD(google_protobuf_Duration, __construct) {
-  google_protobuf_duration_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_Duration, getSeconds) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "seconds");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Duration, setSeconds) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "seconds");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Duration, getNanos) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "nanos");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Duration, setNanos) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "nanos");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_Duration_phpmethods[] = {
-  PHP_ME(google_protobuf_Duration, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Duration, getSeconds, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Duration, setSeconds, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Duration, getNanos, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Duration, setNanos, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_Duration_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Duration",
-                   google_protobuf_Duration_phpmethods);
-
-  google_protobuf_Duration_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_Duration_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_Duration_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_Duration_ce, message_ce);
-}
-
 /* google/protobuf/api.proto */
 
 zend_class_entry* GPBMetadata_Google_Protobuf_Api_ce;
@@ -1385,6 +653,121 @@
   zend_do_inheritance(google_protobuf_Mixin_ce, message_ce);
 }
 
+/* google/protobuf/duration.proto */
+
+zend_class_entry* GPBMetadata_Google_Protobuf_Duration_ce;
+
+const char google_protobuf_duration_proto_descriptor [235] = {
+'\n', '\036', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'd', 'u', 'r', 'a', 't', 'i', 'o', 
+'n', '.', 'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '\"', 
+'*', '\n', '\010', 'D', 'u', 'r', 'a', 't', 'i', 'o', 'n', '\022', '\017', '\n', '\007', 's', 'e', 'c', 'o', 'n', 'd', 's', '\030', '\001', ' ', 
+'\001', '(', '\003', '\022', '\r', '\n', '\005', 'n', 'a', 'n', 'o', 's', '\030', '\002', ' ', '\001', '(', '\005', 'B', '\203', '\001', '\n', '\023', 'c', 'o', 
+'m', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 'B', '\r', 'D', 'u', 'r', 'a', 't', 'i', 
+'o', 'n', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '1', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'g', 'o', 'l', 'a', 'n', 'g', '.', 
+'o', 'r', 'g', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'y', 'p', 'e', 's', '/', 'k', 'n', 'o', 'w', 'n', '/', 
+'d', 'u', 'r', 'a', 't', 'i', 'o', 'n', 'p', 'b', '\370', '\001', '\001', '\242', '\002', '\003', 'G', 'P', 'B', '\252', '\002', '\036', 'G', 'o', 'o', 
+'g', 'l', 'e', '.', 'P', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 'w', 'n', 'T', 'y', 'p', 
+'e', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
+};
+
+static void google_protobuf_duration_proto_AddDescriptor() {
+  if (DescriptorPool_HasFile("google/protobuf/duration.proto")) return;
+  DescriptorPool_AddDescriptor("google/protobuf/duration.proto", google_protobuf_duration_proto_descriptor,
+                               sizeof(google_protobuf_duration_proto_descriptor));
+}
+
+static PHP_METHOD(GPBMetadata_Google_Protobuf_Duration, initOnce) {
+  google_protobuf_duration_proto_AddDescriptor();
+}
+
+static zend_function_entry GPBMetadata_Google_Protobuf_Duration_methods[] = {
+  PHP_ME(GPBMetadata_Google_Protobuf_Duration, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
+  ZEND_FE_END
+};
+
+static void GPBMetadata_Google_Protobuf_Duration_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\Duration",
+                   GPBMetadata_Google_Protobuf_Duration_methods);
+
+  GPBMetadata_Google_Protobuf_Duration_ce = zend_register_internal_class(&tmp_ce);
+}
+
+/* google_protobuf_Duration */
+
+zend_class_entry* google_protobuf_Duration_ce;
+
+static PHP_METHOD(google_protobuf_Duration, __construct) {
+  google_protobuf_duration_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_Duration, getSeconds) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "seconds");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Duration, setSeconds) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "seconds");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Duration, getNanos) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "nanos");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Duration, setNanos) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "nanos");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_Duration_phpmethods[] = {
+  PHP_ME(google_protobuf_Duration, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Duration, getSeconds, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Duration, setSeconds, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Duration, getNanos, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Duration, setNanos, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_Duration_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Duration",
+                   google_protobuf_Duration_phpmethods);
+
+  google_protobuf_Duration_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_Duration_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_Duration_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_Duration_ce, message_ce);
+}
+
 /* google/protobuf/empty.proto */
 
 zend_class_entry* GPBMetadata_Google_Protobuf_GPBEmpty_ce;
@@ -1450,6 +833,659 @@
   zend_do_inheritance(google_protobuf_Empty_ce, message_ce);
 }
 
+/* google/protobuf/field_mask.proto */
+
+zend_class_entry* GPBMetadata_Google_Protobuf_FieldMask_ce;
+
+const char google_protobuf_field_mask_proto_descriptor [223] = {
+'\n', ' ', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'f', 'i', 'e', 'l', 'd', '_', 'm', 
+'a', 's', 'k', '.', 'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 
+'f', '\"', '\032', '\n', '\t', 'F', 'i', 'e', 'l', 'd', 'M', 'a', 's', 'k', '\022', '\r', '\n', '\005', 'p', 'a', 't', 'h', 's', '\030', '\001', 
+' ', '\003', '(', '\t', 'B', '\205', '\001', '\n', '\023', 'c', 'o', 'm', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 
+'b', 'u', 'f', 'B', '\016', 'F', 'i', 'e', 'l', 'd', 'M', 'a', 's', 'k', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '2', 'g', 'o', 
+'o', 'g', 'l', 'e', '.', 'g', 'o', 'l', 'a', 'n', 'g', '.', 'o', 'r', 'g', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 
+'t', 'y', 'p', 'e', 's', '/', 'k', 'n', 'o', 'w', 'n', '/', 'f', 'i', 'e', 'l', 'd', 'm', 'a', 's', 'k', 'p', 'b', '\370', '\001', 
+'\001', '\242', '\002', '\003', 'G', 'P', 'B', '\252', '\002', '\036', 'G', 'o', 'o', 'g', 'l', 'e', '.', 'P', 'r', 'o', 't', 'o', 'b', 'u', 'f', 
+'.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 'w', 'n', 'T', 'y', 'p', 'e', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
+};
+
+static void google_protobuf_field_mask_proto_AddDescriptor() {
+  if (DescriptorPool_HasFile("google/protobuf/field_mask.proto")) return;
+  DescriptorPool_AddDescriptor("google/protobuf/field_mask.proto", google_protobuf_field_mask_proto_descriptor,
+                               sizeof(google_protobuf_field_mask_proto_descriptor));
+}
+
+static PHP_METHOD(GPBMetadata_Google_Protobuf_FieldMask, initOnce) {
+  google_protobuf_field_mask_proto_AddDescriptor();
+}
+
+static zend_function_entry GPBMetadata_Google_Protobuf_FieldMask_methods[] = {
+  PHP_ME(GPBMetadata_Google_Protobuf_FieldMask, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
+  ZEND_FE_END
+};
+
+static void GPBMetadata_Google_Protobuf_FieldMask_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\FieldMask",
+                   GPBMetadata_Google_Protobuf_FieldMask_methods);
+
+  GPBMetadata_Google_Protobuf_FieldMask_ce = zend_register_internal_class(&tmp_ce);
+}
+
+/* google_protobuf_FieldMask */
+
+zend_class_entry* google_protobuf_FieldMask_ce;
+
+static PHP_METHOD(google_protobuf_FieldMask, __construct) {
+  google_protobuf_field_mask_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_FieldMask, getPaths) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "paths");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_FieldMask, setPaths) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "paths");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_FieldMask_phpmethods[] = {
+  PHP_ME(google_protobuf_FieldMask, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_FieldMask, getPaths, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_FieldMask, setPaths, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_FieldMask_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\FieldMask",
+                   google_protobuf_FieldMask_phpmethods);
+
+  google_protobuf_FieldMask_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_FieldMask_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_FieldMask_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_FieldMask_ce, message_ce);
+}
+
+/* google/protobuf/source_context.proto */
+
+zend_class_entry* GPBMetadata_Google_Protobuf_SourceContext_ce;
+
+const char google_protobuf_source_context_proto_descriptor [240] = {
+'\n', '$', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 's', 'o', 'u', 'r', 'c', 'e', '_', 
+'c', 'o', 'n', 't', 'e', 'x', 't', '.', 'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 
+'t', 'o', 'b', 'u', 'f', '\"', '\"', '\n', '\r', 'S', 'o', 'u', 'r', 'c', 'e', 'C', 'o', 'n', 't', 'e', 'x', 't', '\022', '\021', '\n', 
+'\t', 'f', 'i', 'l', 'e', '_', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'B', '\212', '\001', '\n', '\023', 'c', 'o', 'm', '.', 
+'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 'B', '\022', 'S', 'o', 'u', 'r', 'c', 'e', 'C', 'o', 
+'n', 't', 'e', 'x', 't', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '6', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'g', 'o', 'l', 'a', 
+'n', 'g', '.', 'o', 'r', 'g', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'y', 'p', 'e', 's', '/', 'k', 'n', 'o', 
+'w', 'n', '/', 's', 'o', 'u', 'r', 'c', 'e', 'c', 'o', 'n', 't', 'e', 'x', 't', 'p', 'b', '\242', '\002', '\003', 'G', 'P', 'B', '\252', 
+'\002', '\036', 'G', 'o', 'o', 'g', 'l', 'e', '.', 'P', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 
+'w', 'n', 'T', 'y', 'p', 'e', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
+};
+
+static void google_protobuf_source_context_proto_AddDescriptor() {
+  if (DescriptorPool_HasFile("google/protobuf/source_context.proto")) return;
+  DescriptorPool_AddDescriptor("google/protobuf/source_context.proto", google_protobuf_source_context_proto_descriptor,
+                               sizeof(google_protobuf_source_context_proto_descriptor));
+}
+
+static PHP_METHOD(GPBMetadata_Google_Protobuf_SourceContext, initOnce) {
+  google_protobuf_source_context_proto_AddDescriptor();
+}
+
+static zend_function_entry GPBMetadata_Google_Protobuf_SourceContext_methods[] = {
+  PHP_ME(GPBMetadata_Google_Protobuf_SourceContext, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
+  ZEND_FE_END
+};
+
+static void GPBMetadata_Google_Protobuf_SourceContext_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\SourceContext",
+                   GPBMetadata_Google_Protobuf_SourceContext_methods);
+
+  GPBMetadata_Google_Protobuf_SourceContext_ce = zend_register_internal_class(&tmp_ce);
+}
+
+/* google_protobuf_SourceContext */
+
+zend_class_entry* google_protobuf_SourceContext_ce;
+
+static PHP_METHOD(google_protobuf_SourceContext, __construct) {
+  google_protobuf_source_context_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_SourceContext, getFileName) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "file_name");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_SourceContext, setFileName) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "file_name");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_SourceContext_phpmethods[] = {
+  PHP_ME(google_protobuf_SourceContext, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_SourceContext, getFileName, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_SourceContext, setFileName, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_SourceContext_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\SourceContext",
+                   google_protobuf_SourceContext_phpmethods);
+
+  google_protobuf_SourceContext_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_SourceContext_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_SourceContext_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_SourceContext_ce, message_ce);
+}
+
+/* google/protobuf/struct.proto */
+
+zend_class_entry* GPBMetadata_Google_Protobuf_Struct_ce;
+
+const char google_protobuf_struct_proto_descriptor [638] = {
+'\n', '\034', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 's', 't', 'r', 'u', 'c', 't', '.', 
+'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '\"', '\204', '\001', 
+'\n', '\006', 'S', 't', 'r', 'u', 'c', 't', '\022', '3', '\n', '\006', 'f', 'i', 'e', 'l', 'd', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', 
+'#', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'S', 't', 'r', 'u', 'c', 't', '.', 
+'F', 'i', 'e', 'l', 'd', 's', 'E', 'n', 't', 'r', 'y', '\032', 'E', '\n', '\013', 'F', 'i', 'e', 'l', 'd', 's', 'E', 'n', 't', 'r', 
+'y', '\022', '\013', '\n', '\003', 'k', 'e', 'y', '\030', '\001', ' ', '\001', '(', '\t', '\022', '%', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\002', 
+' ', '\001', '(', '\013', '2', '\026', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'V', 'a', 
+'l', 'u', 'e', ':', '\002', '8', '\001', '\"', '\352', '\001', '\n', '\005', 'V', 'a', 'l', 'u', 'e', '\022', '0', '\n', '\n', 'n', 'u', 'l', 'l', 
+'_', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\016', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 
+'t', 'o', 'b', 'u', 'f', '.', 'N', 'u', 'l', 'l', 'V', 'a', 'l', 'u', 'e', 'H', '\000', '\022', '\026', '\n', '\014', 'n', 'u', 'm', 'b', 
+'e', 'r', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\001', 'H', '\000', '\022', '\026', '\n', '\014', 's', 't', 'r', 'i', 'n', 
+'g', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\003', ' ', '\001', '(', '\t', 'H', '\000', '\022', '\024', '\n', '\n', 'b', 'o', 'o', 'l', '_', 'v', 
+'a', 'l', 'u', 'e', '\030', '\004', ' ', '\001', '(', '\010', 'H', '\000', '\022', '/', '\n', '\014', 's', 't', 'r', 'u', 'c', 't', '_', 'v', 'a', 
+'l', 'u', 'e', '\030', '\005', ' ', '\001', '(', '\013', '2', '\027', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 
+'u', 'f', '.', 'S', 't', 'r', 'u', 'c', 't', 'H', '\000', '\022', '0', '\n', '\n', 'l', 'i', 's', 't', '_', 'v', 'a', 'l', 'u', 'e', 
+'\030', '\006', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 
+'L', 'i', 's', 't', 'V', 'a', 'l', 'u', 'e', 'H', '\000', 'B', '\006', '\n', '\004', 'k', 'i', 'n', 'd', '\"', '3', '\n', '\t', 'L', 'i', 
+'s', 't', 'V', 'a', 'l', 'u', 'e', '\022', '&', '\n', '\006', 'v', 'a', 'l', 'u', 'e', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '\026', 
+'.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'V', 'a', 'l', 'u', 'e', '*', '\033', '\n', 
+'\t', 'N', 'u', 'l', 'l', 'V', 'a', 'l', 'u', 'e', '\022', '\016', '\n', '\n', 'N', 'U', 'L', 'L', '_', 'V', 'A', 'L', 'U', 'E', '\020', 
+'\000', 'B', '\177', '\n', '\023', 'c', 'o', 'm', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 'B', 
+'\013', 'S', 't', 'r', 'u', 'c', 't', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '/', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'g', 'o', 
+'l', 'a', 'n', 'g', '.', 'o', 'r', 'g', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'y', 'p', 'e', 's', '/', 'k', 
+'n', 'o', 'w', 'n', '/', 's', 't', 'r', 'u', 'c', 't', 'p', 'b', '\370', '\001', '\001', '\242', '\002', '\003', 'G', 'P', 'B', '\252', '\002', '\036', 
+'G', 'o', 'o', 'g', 'l', 'e', '.', 'P', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 'w', 'n', 
+'T', 'y', 'p', 'e', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
+};
+
+static void google_protobuf_struct_proto_AddDescriptor() {
+  if (DescriptorPool_HasFile("google/protobuf/struct.proto")) return;
+  DescriptorPool_AddDescriptor("google/protobuf/struct.proto", google_protobuf_struct_proto_descriptor,
+                               sizeof(google_protobuf_struct_proto_descriptor));
+}
+
+static PHP_METHOD(GPBMetadata_Google_Protobuf_Struct, initOnce) {
+  google_protobuf_struct_proto_AddDescriptor();
+}
+
+static zend_function_entry GPBMetadata_Google_Protobuf_Struct_methods[] = {
+  PHP_ME(GPBMetadata_Google_Protobuf_Struct, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
+  ZEND_FE_END
+};
+
+static void GPBMetadata_Google_Protobuf_Struct_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\Struct",
+                   GPBMetadata_Google_Protobuf_Struct_methods);
+
+  GPBMetadata_Google_Protobuf_Struct_ce = zend_register_internal_class(&tmp_ce);
+}
+
+/* google_protobuf_Struct */
+
+zend_class_entry* google_protobuf_Struct_ce;
+
+static PHP_METHOD(google_protobuf_Struct, __construct) {
+  google_protobuf_struct_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_Struct, getFields) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "fields");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Struct, setFields) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "fields");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_Struct_phpmethods[] = {
+  PHP_ME(google_protobuf_Struct, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Struct, getFields, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Struct, setFields, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_Struct_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Struct",
+                   google_protobuf_Struct_phpmethods);
+
+  google_protobuf_Struct_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_Struct_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_Struct_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_Struct_ce, message_ce);
+}
+
+/* google_protobuf_Struct_FieldsEntry */
+
+zend_class_entry* google_protobuf_Struct_FieldsEntry_ce;
+
+static PHP_METHOD(google_protobuf_Struct_FieldsEntry, __construct) {
+  google_protobuf_struct_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_Struct_FieldsEntry, getKey) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "key");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Struct_FieldsEntry, setKey) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "key");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Struct_FieldsEntry, getValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Struct_FieldsEntry, setValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_Struct_FieldsEntry_phpmethods[] = {
+  PHP_ME(google_protobuf_Struct_FieldsEntry, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Struct_FieldsEntry, getKey, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Struct_FieldsEntry, setKey, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Struct_FieldsEntry, getValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Struct_FieldsEntry, setValue, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_Struct_FieldsEntry_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Struct\\FieldsEntry",
+                   google_protobuf_Struct_FieldsEntry_phpmethods);
+
+  google_protobuf_Struct_FieldsEntry_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_Struct_FieldsEntry_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_Struct_FieldsEntry_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_Struct_FieldsEntry_ce, message_ce);
+}
+
+/* google_protobuf_Value */
+
+zend_class_entry* google_protobuf_Value_ce;
+
+static PHP_METHOD(google_protobuf_Value, __construct) {
+  google_protobuf_struct_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_Value, getNullValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "null_value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, setNullValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "null_value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, getNumberValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "number_value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, setNumberValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "number_value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, getStringValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "string_value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, setStringValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "string_value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, getBoolValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "bool_value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, setBoolValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "bool_value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, getStructValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "struct_value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, setStructValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "struct_value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, getListValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "list_value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, setListValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "list_value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Value, getKind) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_oneofdef *oneof = upb_msgdef_ntooz(intern->desc->msgdef,
+                                              "kind");
+  const upb_fielddef *field = upb_msg_whichoneof(intern->msg, oneof);
+  RETURN_STRING(field ? upb_fielddef_name(field) : "");
+}
+static zend_function_entry google_protobuf_Value_phpmethods[] = {
+  PHP_ME(google_protobuf_Value, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, getNullValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, setNullValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, getNumberValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, setNumberValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, getStringValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, setStringValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, getBoolValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, setBoolValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, getStructValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, setStructValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, getListValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, setListValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Value, getKind, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_Value_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Value",
+                   google_protobuf_Value_phpmethods);
+
+  google_protobuf_Value_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_Value_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_Value_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_Value_ce, message_ce);
+}
+
+/* google_protobuf_ListValue */
+
+zend_class_entry* google_protobuf_ListValue_ce;
+
+static PHP_METHOD(google_protobuf_ListValue, __construct) {
+  google_protobuf_struct_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_ListValue, getValues) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "values");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_ListValue, setValues) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "values");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_ListValue_phpmethods[] = {
+  PHP_ME(google_protobuf_ListValue, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_ListValue, getValues, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_ListValue, setValues, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_ListValue_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\ListValue",
+                   google_protobuf_ListValue_phpmethods);
+
+  google_protobuf_ListValue_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_ListValue_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_ListValue_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_ListValue_ce, message_ce);
+}
+
+/* google_protobuf_NullValue */
+
+zend_class_entry* google_protobuf_NullValue_ce;
+
+PHP_METHOD(google_protobuf_NullValue, name) {
+  google_protobuf_struct_proto_AddDescriptor();
+  const upb_symtab *symtab = DescriptorPool_GetSymbolTable();
+  const upb_enumdef *e = upb_symtab_lookupenum(symtab, "google.protobuf.NullValue");
+  const char *name;
+  zend_long value;
+  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &value) ==
+      FAILURE) {
+    return;
+  }
+  name = upb_enumdef_iton(e, value);
+  if (!name) {
+    zend_throw_exception_ex(NULL, 0,
+                            "Google\\Protobuf\\NullValue has no name "
+                            "defined for value " ZEND_LONG_FMT ".",
+                            value);
+    return;
+  }
+  RETURN_STRING(name);
+}
+
+PHP_METHOD(google_protobuf_NullValue, value) {
+  google_protobuf_struct_proto_AddDescriptor();
+  const upb_symtab *symtab = DescriptorPool_GetSymbolTable();
+  const upb_enumdef *e = upb_symtab_lookupenum(symtab, "google.protobuf.NullValue");
+  char *name = NULL;
+  size_t name_len;
+  int32_t num;
+  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name,
+                            &name_len) == FAILURE) {
+    return;
+  }
+  if (!upb_enumdef_ntoi(e, name, name_len, &num)) {
+    zend_throw_exception_ex(NULL, 0,
+                            "Google\\Protobuf\\NullValue has no value "
+                            "defined for name %s.",
+                            name);
+    return;
+  }
+  RETURN_LONG(num);
+}
+
+static zend_function_entry google_protobuf_NullValue_phpmethods[] = {
+  PHP_ME(google_protobuf_NullValue, name, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
+  PHP_ME(google_protobuf_NullValue, value, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_NullValue_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\NullValue",
+                   google_protobuf_NullValue_phpmethods);
+
+  google_protobuf_NullValue_ce = zend_register_internal_class(&tmp_ce);
+  zend_declare_class_constant_long(google_protobuf_NullValue_ce, "NULL_VALUE",
+                                   strlen("NULL_VALUE"), 0);
+}
+
 /* google/protobuf/type.proto */
 
 zend_class_entry* GPBMetadata_Google_Protobuf_Type_ce;
@@ -2534,541 +2570,69 @@
                                    strlen("SYNTAX_PROTO3"), 1);
 }
 
-/* google/protobuf/struct.proto */
+/* google/protobuf/timestamp.proto */
 
-zend_class_entry* GPBMetadata_Google_Protobuf_Struct_ce;
+zend_class_entry* GPBMetadata_Google_Protobuf_Timestamp_ce;
 
-const char google_protobuf_struct_proto_descriptor [638] = {
-'\n', '\034', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 's', 't', 'r', 'u', 'c', 't', '.', 
-'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '\"', '\204', '\001', 
-'\n', '\006', 'S', 't', 'r', 'u', 'c', 't', '\022', '3', '\n', '\006', 'f', 'i', 'e', 'l', 'd', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', 
-'#', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'S', 't', 'r', 'u', 'c', 't', '.', 
-'F', 'i', 'e', 'l', 'd', 's', 'E', 'n', 't', 'r', 'y', '\032', 'E', '\n', '\013', 'F', 'i', 'e', 'l', 'd', 's', 'E', 'n', 't', 'r', 
-'y', '\022', '\013', '\n', '\003', 'k', 'e', 'y', '\030', '\001', ' ', '\001', '(', '\t', '\022', '%', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\002', 
-' ', '\001', '(', '\013', '2', '\026', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'V', 'a', 
-'l', 'u', 'e', ':', '\002', '8', '\001', '\"', '\352', '\001', '\n', '\005', 'V', 'a', 'l', 'u', 'e', '\022', '0', '\n', '\n', 'n', 'u', 'l', 'l', 
-'_', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\016', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 
-'t', 'o', 'b', 'u', 'f', '.', 'N', 'u', 'l', 'l', 'V', 'a', 'l', 'u', 'e', 'H', '\000', '\022', '\026', '\n', '\014', 'n', 'u', 'm', 'b', 
-'e', 'r', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\002', ' ', '\001', '(', '\001', 'H', '\000', '\022', '\026', '\n', '\014', 's', 't', 'r', 'i', 'n', 
-'g', '_', 'v', 'a', 'l', 'u', 'e', '\030', '\003', ' ', '\001', '(', '\t', 'H', '\000', '\022', '\024', '\n', '\n', 'b', 'o', 'o', 'l', '_', 'v', 
-'a', 'l', 'u', 'e', '\030', '\004', ' ', '\001', '(', '\010', 'H', '\000', '\022', '/', '\n', '\014', 's', 't', 'r', 'u', 'c', 't', '_', 'v', 'a', 
-'l', 'u', 'e', '\030', '\005', ' ', '\001', '(', '\013', '2', '\027', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 
-'u', 'f', '.', 'S', 't', 'r', 'u', 'c', 't', 'H', '\000', '\022', '0', '\n', '\n', 'l', 'i', 's', 't', '_', 'v', 'a', 'l', 'u', 'e', 
-'\030', '\006', ' ', '\001', '(', '\013', '2', '\032', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 
-'L', 'i', 's', 't', 'V', 'a', 'l', 'u', 'e', 'H', '\000', 'B', '\006', '\n', '\004', 'k', 'i', 'n', 'd', '\"', '3', '\n', '\t', 'L', 'i', 
-'s', 't', 'V', 'a', 'l', 'u', 'e', '\022', '&', '\n', '\006', 'v', 'a', 'l', 'u', 'e', 's', '\030', '\001', ' ', '\003', '(', '\013', '2', '\026', 
-'.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'V', 'a', 'l', 'u', 'e', '*', '\033', '\n', 
-'\t', 'N', 'u', 'l', 'l', 'V', 'a', 'l', 'u', 'e', '\022', '\016', '\n', '\n', 'N', 'U', 'L', 'L', '_', 'V', 'A', 'L', 'U', 'E', '\020', 
-'\000', 'B', '\177', '\n', '\023', 'c', 'o', 'm', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 'B', 
-'\013', 'S', 't', 'r', 'u', 'c', 't', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '/', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'g', 'o', 
-'l', 'a', 'n', 'g', '.', 'o', 'r', 'g', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'y', 'p', 'e', 's', '/', 'k', 
-'n', 'o', 'w', 'n', '/', 's', 't', 'r', 'u', 'c', 't', 'p', 'b', '\370', '\001', '\001', '\242', '\002', '\003', 'G', 'P', 'B', '\252', '\002', '\036', 
-'G', 'o', 'o', 'g', 'l', 'e', '.', 'P', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 'w', 'n', 
-'T', 'y', 'p', 'e', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
-};
-
-static void google_protobuf_struct_proto_AddDescriptor() {
-  if (DescriptorPool_HasFile("google/protobuf/struct.proto")) return;
-  DescriptorPool_AddDescriptor("google/protobuf/struct.proto", google_protobuf_struct_proto_descriptor,
-                               sizeof(google_protobuf_struct_proto_descriptor));
-}
-
-static PHP_METHOD(GPBMetadata_Google_Protobuf_Struct, initOnce) {
-  google_protobuf_struct_proto_AddDescriptor();
-}
-
-static zend_function_entry GPBMetadata_Google_Protobuf_Struct_methods[] = {
-  PHP_ME(GPBMetadata_Google_Protobuf_Struct, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
-  ZEND_FE_END
-};
-
-static void GPBMetadata_Google_Protobuf_Struct_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\Struct",
-                   GPBMetadata_Google_Protobuf_Struct_methods);
-
-  GPBMetadata_Google_Protobuf_Struct_ce = zend_register_internal_class(&tmp_ce);
-}
-
-/* google_protobuf_Struct */
-
-zend_class_entry* google_protobuf_Struct_ce;
-
-static PHP_METHOD(google_protobuf_Struct, __construct) {
-  google_protobuf_struct_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_Struct, getFields) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "fields");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Struct, setFields) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "fields");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_Struct_phpmethods[] = {
-  PHP_ME(google_protobuf_Struct, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Struct, getFields, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Struct, setFields, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_Struct_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Struct",
-                   google_protobuf_Struct_phpmethods);
-
-  google_protobuf_Struct_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_Struct_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_Struct_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_Struct_ce, message_ce);
-}
-
-/* google_protobuf_Struct_FieldsEntry */
-
-zend_class_entry* google_protobuf_Struct_FieldsEntry_ce;
-
-static PHP_METHOD(google_protobuf_Struct_FieldsEntry, __construct) {
-  google_protobuf_struct_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_Struct_FieldsEntry, getKey) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "key");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Struct_FieldsEntry, setKey) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "key");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Struct_FieldsEntry, getValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Struct_FieldsEntry, setValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_Struct_FieldsEntry_phpmethods[] = {
-  PHP_ME(google_protobuf_Struct_FieldsEntry, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Struct_FieldsEntry, getKey, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Struct_FieldsEntry, setKey, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Struct_FieldsEntry, getValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Struct_FieldsEntry, setValue, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_Struct_FieldsEntry_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Struct\\FieldsEntry",
-                   google_protobuf_Struct_FieldsEntry_phpmethods);
-
-  google_protobuf_Struct_FieldsEntry_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_Struct_FieldsEntry_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_Struct_FieldsEntry_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_Struct_FieldsEntry_ce, message_ce);
-}
-
-/* google_protobuf_Value */
-
-zend_class_entry* google_protobuf_Value_ce;
-
-static PHP_METHOD(google_protobuf_Value, __construct) {
-  google_protobuf_struct_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_Value, getNullValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "null_value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, setNullValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "null_value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, getNumberValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "number_value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, setNumberValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "number_value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, getStringValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "string_value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, setStringValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "string_value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, getBoolValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "bool_value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, setBoolValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "bool_value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, getStructValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "struct_value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, setStructValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "struct_value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, getListValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "list_value");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, setListValue) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "list_value");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_Value, getKind) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_oneofdef *oneof = upb_msgdef_ntooz(intern->desc->msgdef,
-                                              "kind");
-  const upb_fielddef *field = upb_msg_whichoneof(intern->msg, oneof);
-  RETURN_STRING(field ? upb_fielddef_name(field) : "");
-}
-static zend_function_entry google_protobuf_Value_phpmethods[] = {
-  PHP_ME(google_protobuf_Value, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, getNullValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, setNullValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, getNumberValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, setNumberValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, getStringValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, setStringValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, getBoolValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, setBoolValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, getStructValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, setStructValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, getListValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, setListValue, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_Value, getKind, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_Value_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Value",
-                   google_protobuf_Value_phpmethods);
-
-  google_protobuf_Value_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_Value_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_Value_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_Value_ce, message_ce);
-}
-
-/* google_protobuf_ListValue */
-
-zend_class_entry* google_protobuf_ListValue_ce;
-
-static PHP_METHOD(google_protobuf_ListValue, __construct) {
-  google_protobuf_struct_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_ListValue, getValues) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "values");
-  zval ret;
-  Message_get(intern, f, &ret);
-  RETURN_ZVAL(&ret, 1, 0);
-}
-
-static PHP_METHOD(google_protobuf_ListValue, setValues) {
-  Message* intern = (Message*)Z_OBJ_P(getThis());
-  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "values");
-  zval *val;
-  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
-      == FAILURE) {
-    return;
-  }
-  Message_set(intern, f, val);
-  RETURN_ZVAL(getThis(), 1, 0);
-}
-
-static zend_function_entry google_protobuf_ListValue_phpmethods[] = {
-  PHP_ME(google_protobuf_ListValue, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_ListValue, getValues, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_ListValue, setValues, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_ListValue_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\ListValue",
-                   google_protobuf_ListValue_phpmethods);
-
-  google_protobuf_ListValue_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_ListValue_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_ListValue_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_ListValue_ce, message_ce);
-}
-
-/* google_protobuf_NullValue */
-
-zend_class_entry* google_protobuf_NullValue_ce;
-
-PHP_METHOD(google_protobuf_NullValue, name) {
-  google_protobuf_struct_proto_AddDescriptor();
-  const upb_symtab *symtab = DescriptorPool_GetSymbolTable();
-  const upb_enumdef *e = upb_symtab_lookupenum(symtab, "google.protobuf.NullValue");
-  const char *name;
-  zend_long value;
-  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &value) ==
-      FAILURE) {
-    return;
-  }
-  name = upb_enumdef_iton(e, value);
-  if (!name) {
-    zend_throw_exception_ex(NULL, 0,
-                            "Google\\Protobuf\\NullValue has no name "
-                            "defined for value " ZEND_LONG_FMT ".",
-                            value);
-    return;
-  }
-  RETURN_STRING(name);
-}
-
-PHP_METHOD(google_protobuf_NullValue, value) {
-  google_protobuf_struct_proto_AddDescriptor();
-  const upb_symtab *symtab = DescriptorPool_GetSymbolTable();
-  const upb_enumdef *e = upb_symtab_lookupenum(symtab, "google.protobuf.NullValue");
-  char *name = NULL;
-  size_t name_len;
-  int32_t num;
-  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name,
-                            &name_len) == FAILURE) {
-    return;
-  }
-  if (!upb_enumdef_ntoi(e, name, name_len, &num)) {
-    zend_throw_exception_ex(NULL, 0,
-                            "Google\\Protobuf\\NullValue has no value "
-                            "defined for name %s.",
-                            name);
-    return;
-  }
-  RETURN_LONG(num);
-}
-
-static zend_function_entry google_protobuf_NullValue_phpmethods[] = {
-  PHP_ME(google_protobuf_NullValue, name, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
-  PHP_ME(google_protobuf_NullValue, value, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_NullValue_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\NullValue",
-                   google_protobuf_NullValue_phpmethods);
-
-  google_protobuf_NullValue_ce = zend_register_internal_class(&tmp_ce);
-  zend_declare_class_constant_long(google_protobuf_NullValue_ce, "NULL_VALUE",
-                                   strlen("NULL_VALUE"), 0);
-}
-
-/* google/protobuf/source_context.proto */
-
-zend_class_entry* GPBMetadata_Google_Protobuf_SourceContext_ce;
-
-const char google_protobuf_source_context_proto_descriptor [240] = {
-'\n', '$', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 's', 'o', 'u', 'r', 'c', 'e', '_', 
-'c', 'o', 'n', 't', 'e', 'x', 't', '.', 'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 
-'t', 'o', 'b', 'u', 'f', '\"', '\"', '\n', '\r', 'S', 'o', 'u', 'r', 'c', 'e', 'C', 'o', 'n', 't', 'e', 'x', 't', '\022', '\021', '\n', 
-'\t', 'f', 'i', 'l', 'e', '_', 'n', 'a', 'm', 'e', '\030', '\001', ' ', '\001', '(', '\t', 'B', '\212', '\001', '\n', '\023', 'c', 'o', 'm', '.', 
-'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 'B', '\022', 'S', 'o', 'u', 'r', 'c', 'e', 'C', 'o', 
-'n', 't', 'e', 'x', 't', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '6', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'g', 'o', 'l', 'a', 
+const char google_protobuf_timestamp_proto_descriptor [239] = {
+'\n', '\037', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'i', 'm', 'e', 's', 't', 'a', 
+'m', 'p', '.', 'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 
+'\"', '+', '\n', '\t', 'T', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', '\022', '\017', '\n', '\007', 's', 'e', 'c', 'o', 'n', 'd', 's', '\030', 
+'\001', ' ', '\001', '(', '\003', '\022', '\r', '\n', '\005', 'n', 'a', 'n', 'o', 's', '\030', '\002', ' ', '\001', '(', '\005', 'B', '\205', '\001', '\n', '\023', 
+'c', 'o', 'm', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 'B', '\016', 'T', 'i', 'm', 'e', 
+'s', 't', 'a', 'm', 'p', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '2', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'g', 'o', 'l', 'a', 
 'n', 'g', '.', 'o', 'r', 'g', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'y', 'p', 'e', 's', '/', 'k', 'n', 'o', 
-'w', 'n', '/', 's', 'o', 'u', 'r', 'c', 'e', 'c', 'o', 'n', 't', 'e', 'x', 't', 'p', 'b', '\242', '\002', '\003', 'G', 'P', 'B', '\252', 
-'\002', '\036', 'G', 'o', 'o', 'g', 'l', 'e', '.', 'P', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 
-'w', 'n', 'T', 'y', 'p', 'e', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
+'w', 'n', '/', 't', 'i', 'm', 'e', 's', 't', 'a', 'm', 'p', 'p', 'b', '\370', '\001', '\001', '\242', '\002', '\003', 'G', 'P', 'B', '\252', '\002', 
+'\036', 'G', 'o', 'o', 'g', 'l', 'e', '.', 'P', 'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 'w', 
+'n', 'T', 'y', 'p', 'e', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
 };
 
-static void google_protobuf_source_context_proto_AddDescriptor() {
-  if (DescriptorPool_HasFile("google/protobuf/source_context.proto")) return;
-  DescriptorPool_AddDescriptor("google/protobuf/source_context.proto", google_protobuf_source_context_proto_descriptor,
-                               sizeof(google_protobuf_source_context_proto_descriptor));
+static void google_protobuf_timestamp_proto_AddDescriptor() {
+  if (DescriptorPool_HasFile("google/protobuf/timestamp.proto")) return;
+  DescriptorPool_AddDescriptor("google/protobuf/timestamp.proto", google_protobuf_timestamp_proto_descriptor,
+                               sizeof(google_protobuf_timestamp_proto_descriptor));
 }
 
-static PHP_METHOD(GPBMetadata_Google_Protobuf_SourceContext, initOnce) {
-  google_protobuf_source_context_proto_AddDescriptor();
+static PHP_METHOD(GPBMetadata_Google_Protobuf_Timestamp, initOnce) {
+  google_protobuf_timestamp_proto_AddDescriptor();
 }
 
-static zend_function_entry GPBMetadata_Google_Protobuf_SourceContext_methods[] = {
-  PHP_ME(GPBMetadata_Google_Protobuf_SourceContext, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
+static zend_function_entry GPBMetadata_Google_Protobuf_Timestamp_methods[] = {
+  PHP_ME(GPBMetadata_Google_Protobuf_Timestamp, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
   ZEND_FE_END
 };
 
-static void GPBMetadata_Google_Protobuf_SourceContext_ModuleInit() {
+static void GPBMetadata_Google_Protobuf_Timestamp_ModuleInit() {
   zend_class_entry tmp_ce;
 
-  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\SourceContext",
-                   GPBMetadata_Google_Protobuf_SourceContext_methods);
+  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\Timestamp",
+                   GPBMetadata_Google_Protobuf_Timestamp_methods);
 
-  GPBMetadata_Google_Protobuf_SourceContext_ce = zend_register_internal_class(&tmp_ce);
+  GPBMetadata_Google_Protobuf_Timestamp_ce = zend_register_internal_class(&tmp_ce);
 }
 
-/* google_protobuf_SourceContext */
+/* google_protobuf_Timestamp */
 
-zend_class_entry* google_protobuf_SourceContext_ce;
+zend_class_entry* google_protobuf_Timestamp_ce;
 
-static PHP_METHOD(google_protobuf_SourceContext, __construct) {
-  google_protobuf_source_context_proto_AddDescriptor();
+static PHP_METHOD(google_protobuf_Timestamp, __construct) {
+  google_protobuf_timestamp_proto_AddDescriptor();
   zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
 }
 
-static PHP_METHOD(google_protobuf_SourceContext, getFileName) {
+static PHP_METHOD(google_protobuf_Timestamp, getSeconds) {
   Message* intern = (Message*)Z_OBJ_P(getThis());
   const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "file_name");
+                                           "seconds");
   zval ret;
   Message_get(intern, f, &ret);
   RETURN_ZVAL(&ret, 1, 0);
 }
 
-static PHP_METHOD(google_protobuf_SourceContext, setFileName) {
+static PHP_METHOD(google_protobuf_Timestamp, setSeconds) {
   Message* intern = (Message*)Z_OBJ_P(getThis());
   const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "file_name");
+                                           "seconds");
   zval *val;
   if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
       == FAILURE) {
@@ -3078,87 +2642,19 @@
   RETURN_ZVAL(getThis(), 1, 0);
 }
 
-static zend_function_entry google_protobuf_SourceContext_phpmethods[] = {
-  PHP_ME(google_protobuf_SourceContext, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_SourceContext, getFileName, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_SourceContext, setFileName, NULL, ZEND_ACC_PUBLIC)
-  ZEND_FE_END
-};
-
-static void google_protobuf_SourceContext_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\SourceContext",
-                   google_protobuf_SourceContext_phpmethods);
-
-  google_protobuf_SourceContext_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_SourceContext_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_SourceContext_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_SourceContext_ce, message_ce);
-}
-
-/* google/protobuf/field_mask.proto */
-
-zend_class_entry* GPBMetadata_Google_Protobuf_FieldMask_ce;
-
-const char google_protobuf_field_mask_proto_descriptor [223] = {
-'\n', ' ', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'f', 'i', 'e', 'l', 'd', '_', 'm', 
-'a', 's', 'k', '.', 'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 
-'f', '\"', '\032', '\n', '\t', 'F', 'i', 'e', 'l', 'd', 'M', 'a', 's', 'k', '\022', '\r', '\n', '\005', 'p', 'a', 't', 'h', 's', '\030', '\001', 
-' ', '\003', '(', '\t', 'B', '\205', '\001', '\n', '\023', 'c', 'o', 'm', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 
-'b', 'u', 'f', 'B', '\016', 'F', 'i', 'e', 'l', 'd', 'M', 'a', 's', 'k', 'P', 'r', 'o', 't', 'o', 'P', '\001', 'Z', '2', 'g', 'o', 
-'o', 'g', 'l', 'e', '.', 'g', 'o', 'l', 'a', 'n', 'g', '.', 'o', 'r', 'g', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 
-'t', 'y', 'p', 'e', 's', '/', 'k', 'n', 'o', 'w', 'n', '/', 'f', 'i', 'e', 'l', 'd', 'm', 'a', 's', 'k', 'p', 'b', '\370', '\001', 
-'\001', '\242', '\002', '\003', 'G', 'P', 'B', '\252', '\002', '\036', 'G', 'o', 'o', 'g', 'l', 'e', '.', 'P', 'r', 'o', 't', 'o', 'b', 'u', 'f', 
-'.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 'w', 'n', 'T', 'y', 'p', 'e', 's', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
-};
-
-static void google_protobuf_field_mask_proto_AddDescriptor() {
-  if (DescriptorPool_HasFile("google/protobuf/field_mask.proto")) return;
-  DescriptorPool_AddDescriptor("google/protobuf/field_mask.proto", google_protobuf_field_mask_proto_descriptor,
-                               sizeof(google_protobuf_field_mask_proto_descriptor));
-}
-
-static PHP_METHOD(GPBMetadata_Google_Protobuf_FieldMask, initOnce) {
-  google_protobuf_field_mask_proto_AddDescriptor();
-}
-
-static zend_function_entry GPBMetadata_Google_Protobuf_FieldMask_methods[] = {
-  PHP_ME(GPBMetadata_Google_Protobuf_FieldMask, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
-  ZEND_FE_END
-};
-
-static void GPBMetadata_Google_Protobuf_FieldMask_ModuleInit() {
-  zend_class_entry tmp_ce;
-
-  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\FieldMask",
-                   GPBMetadata_Google_Protobuf_FieldMask_methods);
-
-  GPBMetadata_Google_Protobuf_FieldMask_ce = zend_register_internal_class(&tmp_ce);
-}
-
-/* google_protobuf_FieldMask */
-
-zend_class_entry* google_protobuf_FieldMask_ce;
-
-static PHP_METHOD(google_protobuf_FieldMask, __construct) {
-  google_protobuf_field_mask_proto_AddDescriptor();
-  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
-}
-
-static PHP_METHOD(google_protobuf_FieldMask, getPaths) {
+static PHP_METHOD(google_protobuf_Timestamp, getNanos) {
   Message* intern = (Message*)Z_OBJ_P(getThis());
   const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "paths");
+                                           "nanos");
   zval ret;
   Message_get(intern, f, &ret);
   RETURN_ZVAL(&ret, 1, 0);
 }
 
-static PHP_METHOD(google_protobuf_FieldMask, setPaths) {
+static PHP_METHOD(google_protobuf_Timestamp, setNanos) {
   Message* intern = (Message*)Z_OBJ_P(getThis());
   const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
-                                           "paths");
+                                           "nanos");
   zval *val;
   if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
       == FAILURE) {
@@ -3168,26 +2664,559 @@
   RETURN_ZVAL(getThis(), 1, 0);
 }
 
-static zend_function_entry google_protobuf_FieldMask_phpmethods[] = {
-  PHP_ME(google_protobuf_FieldMask, __construct, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_FieldMask, getPaths, NULL, ZEND_ACC_PUBLIC)
-  PHP_ME(google_protobuf_FieldMask, setPaths, NULL, ZEND_ACC_PUBLIC)
+static zend_function_entry google_protobuf_Timestamp_phpmethods[] = {
+  PHP_ME(google_protobuf_Timestamp, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Timestamp, getSeconds, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Timestamp, setSeconds, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Timestamp, getNanos, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Timestamp, setNanos, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Timestamp, fromDateTime, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Timestamp, toDateTime, NULL, ZEND_ACC_PUBLIC)
   ZEND_FE_END
 };
 
-static void google_protobuf_FieldMask_ModuleInit() {
+static void google_protobuf_Timestamp_ModuleInit() {
   zend_class_entry tmp_ce;
 
-  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\FieldMask",
-                   google_protobuf_FieldMask_phpmethods);
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Timestamp",
+                   google_protobuf_Timestamp_phpmethods);
 
-  google_protobuf_FieldMask_ce = zend_register_internal_class(&tmp_ce);
-  google_protobuf_FieldMask_ce->ce_flags |= ZEND_ACC_FINAL;
-  google_protobuf_FieldMask_ce->create_object = Message_create;
-  zend_do_inheritance(google_protobuf_FieldMask_ce, message_ce);
+  google_protobuf_Timestamp_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_Timestamp_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_Timestamp_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_Timestamp_ce, message_ce);
+}
+
+/* google/protobuf/wrappers.proto */
+
+zend_class_entry* GPBMetadata_Google_Protobuf_Wrappers_ce;
+
+const char google_protobuf_wrappers_proto_descriptor [455] = {
+'\n', '\036', 'g', 'o', 'o', 'g', 'l', 'e', '/', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 'w', 'r', 'a', 'p', 'p', 'e', 'r', 
+'s', '.', 'p', 'r', 'o', 't', 'o', '\022', '\017', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', '\"', 
+'\034', '\n', '\013', 'D', 'o', 'u', 'b', 'l', 'e', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', 
+' ', '\001', '(', '\001', '\"', '\033', '\n', '\n', 'F', 'l', 'o', 'a', 't', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 
+'u', 'e', '\030', '\001', ' ', '\001', '(', '\002', '\"', '\033', '\n', '\n', 'I', 'n', 't', '6', '4', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', 
+'\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\003', '\"', '\034', '\n', '\013', 'U', 'I', 'n', 't', '6', '4', 'V', 'a', 'l', 
+'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\004', '\"', '\033', '\n', '\n', 'I', 'n', 't', '3', 
+'2', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\005', '\"', '\034', '\n', '\013', 
+'U', 'I', 'n', 't', '3', '2', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', 
+'\r', '\"', '\032', '\n', '\t', 'B', 'o', 'o', 'l', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', 
+' ', '\001', '(', '\010', '\"', '\034', '\n', '\013', 'S', 't', 'r', 'i', 'n', 'g', 'V', 'a', 'l', 'u', 'e', '\022', '\r', '\n', '\005', 'v', 'a', 
+'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\t', '\"', '\033', '\n', '\n', 'B', 'y', 't', 'e', 's', 'V', 'a', 'l', 'u', 'e', '\022', '\r', 
+'\n', '\005', 'v', 'a', 'l', 'u', 'e', '\030', '\001', ' ', '\001', '(', '\014', 'B', '\203', '\001', '\n', '\023', 'c', 'o', 'm', '.', 'g', 'o', 'o', 
+'g', 'l', 'e', '.', 'p', 'r', 'o', 't', 'o', 'b', 'u', 'f', 'B', '\r', 'W', 'r', 'a', 'p', 'p', 'e', 'r', 's', 'P', 'r', 'o', 
+'t', 'o', 'P', '\001', 'Z', '1', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'g', 'o', 'l', 'a', 'n', 'g', '.', 'o', 'r', 'g', '/', 'p', 
+'r', 'o', 't', 'o', 'b', 'u', 'f', '/', 't', 'y', 'p', 'e', 's', '/', 'k', 'n', 'o', 'w', 'n', '/', 'w', 'r', 'a', 'p', 'p', 
+'e', 'r', 's', 'p', 'b', '\370', '\001', '\001', '\242', '\002', '\003', 'G', 'P', 'B', '\252', '\002', '\036', 'G', 'o', 'o', 'g', 'l', 'e', '.', 'P', 
+'r', 'o', 't', 'o', 'b', 'u', 'f', '.', 'W', 'e', 'l', 'l', 'K', 'n', 'o', 'w', 'n', 'T', 'y', 'p', 'e', 's', 'b', '\006', 'p', 
+'r', 'o', 't', 'o', '3', 
+};
+
+static void google_protobuf_wrappers_proto_AddDescriptor() {
+  if (DescriptorPool_HasFile("google/protobuf/wrappers.proto")) return;
+  DescriptorPool_AddDescriptor("google/protobuf/wrappers.proto", google_protobuf_wrappers_proto_descriptor,
+                               sizeof(google_protobuf_wrappers_proto_descriptor));
+}
+
+static PHP_METHOD(GPBMetadata_Google_Protobuf_Wrappers, initOnce) {
+  google_protobuf_wrappers_proto_AddDescriptor();
+}
+
+static zend_function_entry GPBMetadata_Google_Protobuf_Wrappers_methods[] = {
+  PHP_ME(GPBMetadata_Google_Protobuf_Wrappers, initOnce, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC)
+  ZEND_FE_END
+};
+
+static void GPBMetadata_Google_Protobuf_Wrappers_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "GPBMetadata\\Google\\Protobuf\\Wrappers",
+                   GPBMetadata_Google_Protobuf_Wrappers_methods);
+
+  GPBMetadata_Google_Protobuf_Wrappers_ce = zend_register_internal_class(&tmp_ce);
+}
+
+/* google_protobuf_DoubleValue */
+
+zend_class_entry* google_protobuf_DoubleValue_ce;
+
+static PHP_METHOD(google_protobuf_DoubleValue, __construct) {
+  google_protobuf_wrappers_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_DoubleValue, getValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_DoubleValue, setValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_DoubleValue_phpmethods[] = {
+  PHP_ME(google_protobuf_DoubleValue, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_DoubleValue, getValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_DoubleValue, setValue, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_DoubleValue_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\DoubleValue",
+                   google_protobuf_DoubleValue_phpmethods);
+
+  google_protobuf_DoubleValue_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_DoubleValue_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_DoubleValue_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_DoubleValue_ce, message_ce);
+}
+
+/* google_protobuf_FloatValue */
+
+zend_class_entry* google_protobuf_FloatValue_ce;
+
+static PHP_METHOD(google_protobuf_FloatValue, __construct) {
+  google_protobuf_wrappers_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_FloatValue, getValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_FloatValue, setValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_FloatValue_phpmethods[] = {
+  PHP_ME(google_protobuf_FloatValue, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_FloatValue, getValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_FloatValue, setValue, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_FloatValue_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\FloatValue",
+                   google_protobuf_FloatValue_phpmethods);
+
+  google_protobuf_FloatValue_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_FloatValue_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_FloatValue_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_FloatValue_ce, message_ce);
+}
+
+/* google_protobuf_Int64Value */
+
+zend_class_entry* google_protobuf_Int64Value_ce;
+
+static PHP_METHOD(google_protobuf_Int64Value, __construct) {
+  google_protobuf_wrappers_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_Int64Value, getValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Int64Value, setValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_Int64Value_phpmethods[] = {
+  PHP_ME(google_protobuf_Int64Value, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Int64Value, getValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Int64Value, setValue, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_Int64Value_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Int64Value",
+                   google_protobuf_Int64Value_phpmethods);
+
+  google_protobuf_Int64Value_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_Int64Value_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_Int64Value_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_Int64Value_ce, message_ce);
+}
+
+/* google_protobuf_UInt64Value */
+
+zend_class_entry* google_protobuf_UInt64Value_ce;
+
+static PHP_METHOD(google_protobuf_UInt64Value, __construct) {
+  google_protobuf_wrappers_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_UInt64Value, getValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_UInt64Value, setValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_UInt64Value_phpmethods[] = {
+  PHP_ME(google_protobuf_UInt64Value, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_UInt64Value, getValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_UInt64Value, setValue, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_UInt64Value_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\UInt64Value",
+                   google_protobuf_UInt64Value_phpmethods);
+
+  google_protobuf_UInt64Value_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_UInt64Value_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_UInt64Value_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_UInt64Value_ce, message_ce);
+}
+
+/* google_protobuf_Int32Value */
+
+zend_class_entry* google_protobuf_Int32Value_ce;
+
+static PHP_METHOD(google_protobuf_Int32Value, __construct) {
+  google_protobuf_wrappers_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_Int32Value, getValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_Int32Value, setValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_Int32Value_phpmethods[] = {
+  PHP_ME(google_protobuf_Int32Value, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Int32Value, getValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_Int32Value, setValue, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_Int32Value_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\Int32Value",
+                   google_protobuf_Int32Value_phpmethods);
+
+  google_protobuf_Int32Value_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_Int32Value_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_Int32Value_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_Int32Value_ce, message_ce);
+}
+
+/* google_protobuf_UInt32Value */
+
+zend_class_entry* google_protobuf_UInt32Value_ce;
+
+static PHP_METHOD(google_protobuf_UInt32Value, __construct) {
+  google_protobuf_wrappers_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_UInt32Value, getValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_UInt32Value, setValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_UInt32Value_phpmethods[] = {
+  PHP_ME(google_protobuf_UInt32Value, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_UInt32Value, getValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_UInt32Value, setValue, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_UInt32Value_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\UInt32Value",
+                   google_protobuf_UInt32Value_phpmethods);
+
+  google_protobuf_UInt32Value_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_UInt32Value_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_UInt32Value_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_UInt32Value_ce, message_ce);
+}
+
+/* google_protobuf_BoolValue */
+
+zend_class_entry* google_protobuf_BoolValue_ce;
+
+static PHP_METHOD(google_protobuf_BoolValue, __construct) {
+  google_protobuf_wrappers_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_BoolValue, getValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_BoolValue, setValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_BoolValue_phpmethods[] = {
+  PHP_ME(google_protobuf_BoolValue, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_BoolValue, getValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_BoolValue, setValue, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_BoolValue_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\BoolValue",
+                   google_protobuf_BoolValue_phpmethods);
+
+  google_protobuf_BoolValue_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_BoolValue_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_BoolValue_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_BoolValue_ce, message_ce);
+}
+
+/* google_protobuf_StringValue */
+
+zend_class_entry* google_protobuf_StringValue_ce;
+
+static PHP_METHOD(google_protobuf_StringValue, __construct) {
+  google_protobuf_wrappers_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_StringValue, getValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_StringValue, setValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_StringValue_phpmethods[] = {
+  PHP_ME(google_protobuf_StringValue, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_StringValue, getValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_StringValue, setValue, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_StringValue_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\StringValue",
+                   google_protobuf_StringValue_phpmethods);
+
+  google_protobuf_StringValue_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_StringValue_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_StringValue_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_StringValue_ce, message_ce);
+}
+
+/* google_protobuf_BytesValue */
+
+zend_class_entry* google_protobuf_BytesValue_ce;
+
+static PHP_METHOD(google_protobuf_BytesValue, __construct) {
+  google_protobuf_wrappers_proto_AddDescriptor();
+  zim_Message___construct(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+}
+
+static PHP_METHOD(google_protobuf_BytesValue, getValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval ret;
+  Message_get(intern, f, &ret);
+  RETURN_ZVAL(&ret, 1, 0);
+}
+
+static PHP_METHOD(google_protobuf_BytesValue, setValue) {
+  Message* intern = (Message*)Z_OBJ_P(getThis());
+  const upb_fielddef *f = upb_msgdef_ntofz(intern->desc->msgdef,
+                                           "value");
+  zval *val;
+  if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &val)
+      == FAILURE) {
+    return;
+  }
+  Message_set(intern, f, val);
+  RETURN_ZVAL(getThis(), 1, 0);
+}
+
+static zend_function_entry google_protobuf_BytesValue_phpmethods[] = {
+  PHP_ME(google_protobuf_BytesValue, __construct, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_BytesValue, getValue, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(google_protobuf_BytesValue, setValue, NULL, ZEND_ACC_PUBLIC)
+  ZEND_FE_END
+};
+
+static void google_protobuf_BytesValue_ModuleInit() {
+  zend_class_entry tmp_ce;
+
+  INIT_CLASS_ENTRY(tmp_ce, "Google\\Protobuf\\BytesValue",
+                   google_protobuf_BytesValue_phpmethods);
+
+  google_protobuf_BytesValue_ce = zend_register_internal_class(&tmp_ce);
+  google_protobuf_BytesValue_ce->ce_flags |= ZEND_ACC_FINAL;
+  google_protobuf_BytesValue_ce->create_object = Message_create;
+  zend_do_inheritance(google_protobuf_BytesValue_ce, message_ce);
 }
 
 static void WellKnownTypes_ModuleInit() {
+  GPBMetadata_Google_Protobuf_Any_ModuleInit();
+  google_protobuf_Any_ModuleInit();
+  GPBMetadata_Google_Protobuf_Api_ModuleInit();
+  google_protobuf_Api_ModuleInit();
+  google_protobuf_Method_ModuleInit();
+  google_protobuf_Mixin_ModuleInit();
+  GPBMetadata_Google_Protobuf_Duration_ModuleInit();
+  google_protobuf_Duration_ModuleInit();
+  GPBMetadata_Google_Protobuf_GPBEmpty_ModuleInit();
+  google_protobuf_Empty_ModuleInit();
+  GPBMetadata_Google_Protobuf_FieldMask_ModuleInit();
+  google_protobuf_FieldMask_ModuleInit();
+  GPBMetadata_Google_Protobuf_SourceContext_ModuleInit();
+  google_protobuf_SourceContext_ModuleInit();
+  GPBMetadata_Google_Protobuf_Struct_ModuleInit();
+  google_protobuf_Struct_ModuleInit();
+  google_protobuf_Struct_FieldsEntry_ModuleInit();
+  google_protobuf_Value_ModuleInit();
+  google_protobuf_ListValue_ModuleInit();
+  google_protobuf_NullValue_ModuleInit();
+  GPBMetadata_Google_Protobuf_Type_ModuleInit();
+  google_protobuf_Type_ModuleInit();
+  google_protobuf_Field_ModuleInit();
+  google_protobuf_Field_Kind_ModuleInit();
+  google_protobuf_Field_Cardinality_ModuleInit();
+  google_protobuf_Enum_ModuleInit();
+  google_protobuf_EnumValue_ModuleInit();
+  google_protobuf_Option_ModuleInit();
+  google_protobuf_Syntax_ModuleInit();
   GPBMetadata_Google_Protobuf_Timestamp_ModuleInit();
   google_protobuf_Timestamp_ModuleInit();
   GPBMetadata_Google_Protobuf_Wrappers_ModuleInit();
@@ -3200,33 +3229,4 @@
   google_protobuf_BoolValue_ModuleInit();
   google_protobuf_StringValue_ModuleInit();
   google_protobuf_BytesValue_ModuleInit();
-  GPBMetadata_Google_Protobuf_Any_ModuleInit();
-  google_protobuf_Any_ModuleInit();
-  GPBMetadata_Google_Protobuf_Duration_ModuleInit();
-  google_protobuf_Duration_ModuleInit();
-  GPBMetadata_Google_Protobuf_Api_ModuleInit();
-  google_protobuf_Api_ModuleInit();
-  google_protobuf_Method_ModuleInit();
-  google_protobuf_Mixin_ModuleInit();
-  GPBMetadata_Google_Protobuf_GPBEmpty_ModuleInit();
-  google_protobuf_Empty_ModuleInit();
-  GPBMetadata_Google_Protobuf_Type_ModuleInit();
-  google_protobuf_Type_ModuleInit();
-  google_protobuf_Field_ModuleInit();
-  google_protobuf_Field_Kind_ModuleInit();
-  google_protobuf_Field_Cardinality_ModuleInit();
-  google_protobuf_Enum_ModuleInit();
-  google_protobuf_EnumValue_ModuleInit();
-  google_protobuf_Option_ModuleInit();
-  google_protobuf_Syntax_ModuleInit();
-  GPBMetadata_Google_Protobuf_Struct_ModuleInit();
-  google_protobuf_Struct_ModuleInit();
-  google_protobuf_Struct_FieldsEntry_ModuleInit();
-  google_protobuf_Value_ModuleInit();
-  google_protobuf_ListValue_ModuleInit();
-  google_protobuf_NullValue_ModuleInit();
-  GPBMetadata_Google_Protobuf_SourceContext_ModuleInit();
-  google_protobuf_SourceContext_ModuleInit();
-  GPBMetadata_Google_Protobuf_FieldMask_ModuleInit();
-  google_protobuf_FieldMask_ModuleInit();
 }
diff --git a/php/generate_descriptor_protos.sh b/php/generate_descriptor_protos.sh
index fc2ed80..9feaa96 100755
--- a/php/generate_descriptor_protos.sh
+++ b/php/generate_descriptor_protos.sh
@@ -3,6 +3,8 @@
 # Run this script to regenerate descriptor protos after the protocol compiler
 # changes.
 
+set -e
+
 if test ! -e src/google/protobuf/stubs/common.h; then
   cat >&2 << __EOF__
 Could not find source code.  Make sure you are running this script from the
@@ -13,7 +15,7 @@
 
 pushd src
 ./protoc --php_out=internal:../php/src google/protobuf/descriptor.proto
-./protoc --php_out=internal_generate_c_wkt:src \
+./protoc --php_out=internal_generate_c_wkt:../php/src \
   google/protobuf/any.proto \
   google/protobuf/api.proto \
   google/protobuf/duration.proto \