Merge release branch 22.x into main
diff --git a/.github/workflows/test_java.yml b/.github/workflows/test_java.yml
index 67e2e3e..f169794 100644
--- a/.github/workflows/test_java.yml
+++ b/.github/workflows/test_java.yml
@@ -14,13 +14,17 @@
       fail-fast: false
       matrix:
         include:
+          - name: OpenJDK 8
+            version: '8'
+            image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:8-03a376b5d6ef66f827fc307716e3b841cc26b709
+            targets: //java/... //java/internal:java_version
           - name: OpenJDK 11
             version: '11'
-            image: us-docker.pkg.dev/protobuf-build/containers/common/linux/bazel:5.1.1-6361b3a6e5c97e9951d03a4de28542fc45f1adab
+            image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:11-03a376b5d6ef66f827fc307716e3b841cc26b709
             targets: //java/... //java/internal:java_version
           - name: OpenJDK 17
             version: '17'
-            image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:17-508417e5215994ade7585d28ba3aad681a25fa5d
+            image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:17-03a376b5d6ef66f827fc307716e3b841cc26b709
             targets: //java/... //java/internal:java_version
           - name: aarch64
             version: 'aarch64'
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9348491..c042073 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -93,7 +93,7 @@
 endif ()
 
 # Version metadata
-set(protobuf_VERSION_STRING "3.21.4")
+set(protobuf_VERSION_STRING "4.22.1")
 set(protobuf_DESCRIPTION "Protocol Buffers")
 set(protobuf_CONTACT "protobuf@googlegroups.com")
 
diff --git a/Protobuf-C++.podspec b/Protobuf-C++.podspec
index 4999537..07e2298 100644
--- a/Protobuf-C++.podspec
+++ b/Protobuf-C++.podspec
@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name     = 'Protobuf-C++'
-  s.version  = '3.21.12'
+  s.version  = '4.22.1'
   s.summary  = 'Protocol Buffers v3 runtime library for C++.'
   s.homepage = 'https://github.com/google/protobuf'
   s.license  = 'BSD-3-Clause'
diff --git a/Protobuf.podspec b/Protobuf.podspec
index b97dfea..695bba4 100644
--- a/Protobuf.podspec
+++ b/Protobuf.podspec
@@ -5,7 +5,7 @@
 # dependent projects use the :git notation to refer to the library.
 Pod::Spec.new do |s|
   s.name     = 'Protobuf'
-  s.version  = '3.21.12'
+  s.version  = '3.22.1'
   s.summary  = 'Protocol Buffers v.3 runtime library for Objective-C.'
   s.homepage = 'https://github.com/protocolbuffers/protobuf'
   s.license  = 'BSD-3-Clause'
diff --git a/build_defs/BUILD.bazel b/build_defs/BUILD.bazel
index 855893f..0a45eae 100644
--- a/build_defs/BUILD.bazel
+++ b/build_defs/BUILD.bazel
@@ -84,6 +84,14 @@
     },
 )
 
+selects.config_setting_group(
+    name = "config_win",
+    match_any = [
+        ":config_win32",
+        ":config_win64",
+    ]
+)
+
 config_setting(
     name = "config_osx_aarch64",
     values = {"cpu": "osx-aarch_64"},
@@ -91,7 +99,7 @@
 
 config_setting(
     name = "config_osx_x86_64",
-    values = {"cpu": "osx-aarch_64"},
+    values = {"cpu": "osx-x86_64"},
 )
 
 selects.config_setting_group(
diff --git a/build_defs/java_opts.bzl b/build_defs/java_opts.bzl
new file mode 100644
index 0000000..b6ee814
--- /dev/null
+++ b/build_defs/java_opts.bzl
@@ -0,0 +1,21 @@
+"""Java options and protobuf-specific java build rules with those options."""
+load("@rules_java//java:defs.bzl", "java_library")
+load("@rules_jvm_external//:defs.bzl", "java_export")
+
+JAVA_OPTS = [
+    "-source 8",
+    "-target 8",
+    "-Xep:Java8ApiChecker:ERROR",
+]
+
+def protobuf_java_export(**kwargs):
+    java_export(
+        javacopts = JAVA_OPTS,
+        **kwargs,
+    )
+
+def protobuf_java_library(**kwargs):
+    java_library(
+        javacopts = JAVA_OPTS,
+        **kwargs,
+    )
diff --git a/ci/push_auto_update.sh b/ci/push_auto_update.sh
index ea96cbe..641525c 100755
--- a/ci/push_auto_update.sh
+++ b/ci/push_auto_update.sh
@@ -39,6 +39,7 @@
   commit_message="Auto-generate files"
 fi
 
+git pull --rebase
 git add -A
 git diff --staged --quiet || git commit -am "$commit_message"
 git push || echo "Conflicting commit hit, retrying in next job..."
diff --git a/csharp/Google.Protobuf.Tools.nuspec b/csharp/Google.Protobuf.Tools.nuspec
index f4bf457..85ae51b 100644
--- a/csharp/Google.Protobuf.Tools.nuspec
+++ b/csharp/Google.Protobuf.Tools.nuspec
@@ -5,7 +5,7 @@
     <title>Google Protocol Buffers tools</title>
     <summary>Tools for Protocol Buffers - Google's data interchange format.</summary>
     <description>See project site for more info.</description>
-    <version>3.21.12</version>
+    <version>3.22.1</version>
     <authors>Google Inc.</authors>
     <owners>protobuf-packages</owners>
     <licenseUrl>https://github.com/protocolbuffers/protobuf/blob/main/LICENSE</licenseUrl>
diff --git a/csharp/src/Google.Protobuf/Google.Protobuf.csproj b/csharp/src/Google.Protobuf/Google.Protobuf.csproj
index 35f252d..344f4c4 100644
--- a/csharp/src/Google.Protobuf/Google.Protobuf.csproj
+++ b/csharp/src/Google.Protobuf/Google.Protobuf.csproj
@@ -5,7 +5,7 @@
     <Description>C# runtime library for Protocol Buffers - Google's data interchange format.</Description>
     <Copyright>Copyright 2015, Google Inc.</Copyright>
     <AssemblyTitle>Google Protocol Buffers</AssemblyTitle>
-    <VersionPrefix>3.21.12</VersionPrefix>
+    <VersionPrefix>3.22.1</VersionPrefix>
     <LangVersion>10.0</LangVersion>
     <Authors>Google Inc.</Authors>
     <TargetFrameworks>netstandard1.1;netstandard2.0;net45;net50</TargetFrameworks>
diff --git a/java/README.md b/java/README.md
index 8503914..7611897 100644
--- a/java/README.md
+++ b/java/README.md
@@ -23,7 +23,7 @@
 <dependency>
   <groupId>com.google.protobuf</groupId>
   <artifactId>protobuf-java</artifactId>
-  <version>3.21.12</version>
+  <version>3.22.1</version>
 </dependency>
 ```
 
@@ -37,14 +37,14 @@
 <dependency>
   <groupId>com.google.protobuf</groupId>
   <artifactId>protobuf-java-util</artifactId>
-  <version>3.21.12</version>
+  <version>3.22.1</version>
 </dependency>
 ```
 
 ### Gradle
 
 If you are using Gradle, add the following to your `build.gradle` file's
-dependencies: `implementation 'com.google.protobuf:protobuf-java:3.21.12'`
+dependencies: `implementation 'com.google.protobuf:protobuf-java:3.22.1'`
 Again, be sure to check that the version number matches (or is newer than) the
 version number of protoc that you are using.
 
diff --git a/java/bom/pom.xml b/java/bom/pom.xml
index c01964c..22d812d 100644
--- a/java/bom/pom.xml
+++ b/java/bom/pom.xml
@@ -4,7 +4,7 @@
 
   <groupId>com.google.protobuf</groupId>
   <artifactId>protobuf-bom</artifactId>
-  <version>3.21.12</version>
+  <version>3.22.1</version>
   <packaging>pom</packaging>
 
   <name>Protocol Buffers [BOM]</name>
diff --git a/java/core/BUILD.bazel b/java/core/BUILD.bazel
index c0e52a4..f08cf4a 100644
--- a/java/core/BUILD.bazel
+++ b/java/core/BUILD.bazel
@@ -1,8 +1,8 @@
 load("@bazel_skylib//rules:build_test.bzl", "build_test")
-load("@rules_java//java:defs.bzl", "java_library", "java_lite_proto_library", "java_proto_library")
-load("@rules_jvm_external//:defs.bzl", "java_export")
+load("@rules_java//java:defs.bzl", "java_lite_proto_library", "java_proto_library")
 load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
 load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
+load("//build_defs:java_opts.bzl", "protobuf_java_export", "protobuf_java_library")
 load("//conformance:defs.bzl", "conformance_test")
 load("//:protobuf.bzl", "internal_gen_well_known_protos_java")
 load("//:protobuf_version.bzl", "PROTOBUF_JAVA_VERSION")
@@ -121,7 +121,7 @@
 )
 
 # Should be used as `//java/lite`.
-java_library(
+protobuf_java_library(
     name = "lite",
     srcs = LITE_SRCS + [
         ":gen_well_known_protos_javalite",
@@ -132,7 +132,7 @@
 )
 
 # Bazel users, don't depend on this target, use //java/lite.
-java_export(
+protobuf_java_export(
     name = "lite_mvn",
     maven_coordinates = "com.google.protobuf:protobuf-javalite:%s" % PROTOBUF_JAVA_VERSION,
     pom_template = "//java/lite:pom_template.xml",
@@ -143,7 +143,7 @@
     runtime_deps = [":lite"],
 )
 
-java_library(
+protobuf_java_library(
     name = "lite_runtime_only",
     srcs = LITE_SRCS,
 )
@@ -166,7 +166,7 @@
     ],
 )
 
-java_library(
+protobuf_java_library(
     name = "core",
     srcs = glob(
         [
@@ -186,7 +186,7 @@
 )
 
 # Bazel users, don't depend on this target, use :core.
-java_export(
+protobuf_java_export(
     name = "core_mvn",
     maven_coordinates = "com.google.protobuf:protobuf-java:%s" % PROTOBUF_JAVA_VERSION,
     pom_template = "pom_template.xml",
@@ -269,7 +269,7 @@
     deps = [":java_test_protos"],
 )
 
-java_library(
+protobuf_java_library(
     name = "test_util",
     srcs = [
         "src/test/java/com/google/protobuf/TestUtil.java",
@@ -390,7 +390,7 @@
     cmd = "awk -f $(location //java/lite:lite.awk) $(location src/test/java/com/google/protobuf/TestUtil.java) > $@",
 )
 
-java_library(
+protobuf_java_library(
     name = "test_util_lite",
     srcs = [
         "src/test/java/com/google/protobuf/TestUtilLite.java",
diff --git a/java/core/pom.xml b/java/core/pom.xml
index 83b7351..b43bf2d 100644
--- a/java/core/pom.xml
+++ b/java/core/pom.xml
@@ -4,7 +4,7 @@
   <parent>
     <groupId>com.google.protobuf</groupId>
     <artifactId>protobuf-parent</artifactId>
-    <version>3.21.12</version>
+    <version>3.22.1</version>
   </parent>
 
   <artifactId>protobuf-java</artifactId>
diff --git a/java/internal/JavaVersionTest.java b/java/internal/JavaVersionTest.java
index c7957c0..c9ea0a5 100644
--- a/java/internal/JavaVersionTest.java
+++ b/java/internal/JavaVersionTest.java
@@ -44,8 +44,10 @@
       System.err.println("No kokoro java version found, skipping check");
       return;
     }
+    // Java 8's version is read as "1.8"
+    if(exp.equals("8")) exp = "1.8";
     String version = System.getProperty("java.version");
-    assertWithMessage("Expected Python " + exp + " but found Python " + version)
+    assertWithMessage("Expected Java " + exp + " but found Java " + version)
       .that(version.startsWith(exp))
       .isTrue();
   }
diff --git a/java/kotlin-lite/pom.xml b/java/kotlin-lite/pom.xml
index 50dcc83..37193f2 100644
--- a/java/kotlin-lite/pom.xml
+++ b/java/kotlin-lite/pom.xml
@@ -4,7 +4,7 @@
   <parent>
     <groupId>com.google.protobuf</groupId>
     <artifactId>protobuf-parent</artifactId>
-    <version>3.21.12</version>
+    <version>3.22.1</version>
   </parent>
 
   <artifactId>protobuf-kotlin-lite</artifactId>
diff --git a/java/kotlin/pom.xml b/java/kotlin/pom.xml
index 9cc9ea0..f9aa88e 100644
--- a/java/kotlin/pom.xml
+++ b/java/kotlin/pom.xml
@@ -4,7 +4,7 @@
   <parent>
     <groupId>com.google.protobuf</groupId>
     <artifactId>protobuf-parent</artifactId>
-    <version>3.21.12</version>
+    <version>3.22.1</version>
   </parent>
 
   <artifactId>protobuf-kotlin</artifactId>
diff --git a/java/lite.md b/java/lite.md
index ad92079..41e00aa 100644
--- a/java/lite.md
+++ b/java/lite.md
@@ -29,7 +29,7 @@
 <dependency>
   <groupId>com.google.protobuf</groupId>
   <artifactId>protobuf-javalite</artifactId>
-  <version>3.21.12</version>
+  <version>3.22.1</version>
 </dependency>
 ```
 
diff --git a/java/lite/pom.xml b/java/lite/pom.xml
index b59c48a..ae9689f 100644
--- a/java/lite/pom.xml
+++ b/java/lite/pom.xml
@@ -4,7 +4,7 @@
   <parent>
     <groupId>com.google.protobuf</groupId>
     <artifactId>protobuf-parent</artifactId>
-    <version>3.21.12</version>
+    <version>3.22.1</version>
   </parent>
 
   <artifactId>protobuf-javalite</artifactId>
diff --git a/java/pom.xml b/java/pom.xml
index c0bdaea..26b595e 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -4,7 +4,7 @@
 
   <groupId>com.google.protobuf</groupId>
   <artifactId>protobuf-parent</artifactId>
-  <version>3.21.12</version>
+  <version>3.22.1</version>
   <packaging>pom</packaging>
 
   <name>Protocol Buffers [Parent]</name>
diff --git a/java/protoc/pom.xml b/java/protoc/pom.xml
index 9b61b98..a891850 100644
--- a/java/protoc/pom.xml
+++ b/java/protoc/pom.xml
@@ -8,7 +8,7 @@
   </parent>
   <groupId>com.google.protobuf</groupId>
   <artifactId>protoc</artifactId>
-  <version>3.21.6</version>
+  <version>3.22.1</version>
   <packaging>pom</packaging>
   <name>Protobuf Compiler</name>
   <description>
diff --git a/java/util/BUILD.bazel b/java/util/BUILD.bazel
index e3804fb..3d042d3 100644
--- a/java/util/BUILD.bazel
+++ b/java/util/BUILD.bazel
@@ -1,11 +1,11 @@
 load("@rules_java//java:defs.bzl", "java_proto_library")
-load("@rules_jvm_external//:defs.bzl", "java_export")
 load("@rules_pkg//:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix")
 load("@rules_proto//proto:defs.bzl", "proto_library")
+load("//build_defs:java_opts.bzl", "protobuf_java_export", "protobuf_java_library")
 load("//:protobuf_version.bzl", "PROTOBUF_JAVA_VERSION")
 load("//java/internal:testing.bzl", "junit_tests")
 
-java_library(
+protobuf_java_library(
     name = "util",
     srcs = glob([
         "src/main/java/com/google/protobuf/util/*.java",
@@ -22,7 +22,7 @@
 )
 
 # Bazel users, don't depend on this target, use :util.
-java_export(
+protobuf_java_export(
     name = "util_mvn",
     deploy_env = ["//java/core"],
     maven_coordinates = "com.google.protobuf:protobuf-java-util:%s" % PROTOBUF_JAVA_VERSION,
diff --git a/java/util/pom.xml b/java/util/pom.xml
index c13df65..f8bc8e6 100644
--- a/java/util/pom.xml
+++ b/java/util/pom.xml
@@ -4,7 +4,7 @@
   <parent>
     <groupId>com.google.protobuf</groupId>
     <artifactId>protobuf-parent</artifactId>
-    <version>3.21.12</version>
+    <version>3.22.1</version>
   </parent>
 
   <artifactId>protobuf-java-util</artifactId>
diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h
index efbd45e..4ed924b 100644
--- a/php/ext/google/protobuf/protobuf.h
+++ b/php/ext/google/protobuf/protobuf.h
@@ -127,7 +127,7 @@
   ZEND_ARG_INFO(0, value)
 ZEND_END_ARG_INFO()
 
-#define PHP_PROTOBUF_VERSION "3.21.12"
+#define PHP_PROTOBUF_VERSION "3.22.1"
 
 // ptr -> PHP object cache. This is a weak map that caches lazily-created
 // wrapper objects around upb types:
diff --git a/pkg/BUILD.bazel b/pkg/BUILD.bazel
index 5b14cb8..4f7e446 100644
--- a/pkg/BUILD.bazel
+++ b/pkg/BUILD.bazel
@@ -62,11 +62,23 @@
     srcs = ["//:protoc_static"],
     outs = ["bin/protoc"],
     cmd = "cp $< $@",
+    tags = ["manual"],
+)
+
+genrule(
+    name = "rename_protoc_exe",
+    srcs = ["//:protoc_static"],
+    outs = ["bin/protoc.exe"],
+    cmd = "cp $< $@",
+    tags = ["manual"],
 )
 
 pkg_files(
     name = "protoc_files",
-    srcs = ["bin/protoc"],
+    srcs = select({
+        "//build_defs:config_win": ["bin/protoc.exe"],
+        "//conditions:default": ["bin/protoc"],
+    }),
     attributes = pkg_attributes(mode = "0555"),
     prefix = "bin/",
     visibility = ["//visibility:private"],
diff --git a/protobuf_version.bzl b/protobuf_version.bzl
index ec39a4e..0d93a46 100644
--- a/protobuf_version.bzl
+++ b/protobuf_version.bzl
@@ -1,5 +1,5 @@
-PROTOC_VERSION = "21.12"
-PROTOBUF_JAVA_VERSION = "3.21.12"
-PROTOBUF_PYTHON_VERSION = "4.21.12"
-PROTOBUF_PHP_VERSION = "3.21.12"
-PROTOBUF_RUBY_VERSION = "3.21.12"
+PROTOC_VERSION = "22.1"
+PROTOBUF_JAVA_VERSION = "3.22.1"
+PROTOBUF_PYTHON_VERSION = "4.22.1"
+PROTOBUF_PHP_VERSION = "3.22.1"
+PROTOBUF_RUBY_VERSION = "3.22.1"
diff --git a/python/BUILD.bazel b/python/BUILD.bazel
index e67422b..f6fe071 100644
--- a/python/BUILD.bazel
+++ b/python/BUILD.bazel
@@ -56,6 +56,7 @@
     srcs = [
         "//:well_known_type_protos",
         "//src/google/protobuf:descriptor_proto_srcs",
+        "//src/google/protobuf/compiler:plugin.proto",
     ],
     strip_prefix = "src",
 )
diff --git a/python/google/protobuf/__init__.py b/python/google/protobuf/__init__.py
index e7555ee..b9650b1 100755
--- a/python/google/protobuf/__init__.py
+++ b/python/google/protobuf/__init__.py
@@ -30,4 +30,4 @@
 
 # Copyright 2007 Google Inc. All Rights Reserved.
 
-__version__ = '4.21.12'
+__version__ = '4.22.1'
diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec
index a96b5e9..37acd1b 100644
--- a/ruby/google-protobuf.gemspec
+++ b/ruby/google-protobuf.gemspec
@@ -1,6 +1,6 @@
 Gem::Specification.new do |s|
   s.name        = "google-protobuf"
-  s.version     = "3.21.12"
+  s.version     = "3.22.1"
   git_tag       = "v#{s.version.to_s.sub('.rc.', '-rc')}" # Converts X.Y.Z.rc.N to vX.Y.Z-rcN, used for the git tag
   s.licenses    = ["BSD-3-Clause"]
   s.summary     = "Protocol Buffers"
diff --git a/ruby/pom.xml b/ruby/pom.xml
index 68dadac..cd2d68e 100644
--- a/ruby/pom.xml
+++ b/ruby/pom.xml
@@ -9,7 +9,7 @@
 
     <groupId>com.google.protobuf.jruby</groupId>
     <artifactId>protobuf-jruby</artifactId>
-    <version>3.21.12</version>
+    <version>3.22.1</version>
     <name>Protocol Buffer JRuby native extension</name>
     <description>
       Protocol Buffers are a way of encoding structured data in an efficient yet
@@ -76,7 +76,11 @@
         <dependency>
           <groupId>com.google.protobuf</groupId>
           <artifactId>protobuf-java-util</artifactId>
+<<<<<<< HEAD
           <version>3.21.12</version>
+=======
+          <version>3.22.1</version>
+>>>>>>> upstream/22.x
         </dependency>
         <dependency>
             <groupId>org.jruby</groupId>
diff --git a/src/google/protobuf/any.pb.h b/src/google/protobuf/any.pb.h
index 5d22bc1..0917057 100644
--- a/src/google/protobuf/any.pb.h
+++ b/src/google/protobuf/any.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/api.pb.h b/src/google/protobuf/api.pb.h
index 8a91760..d334922 100644
--- a/src/google/protobuf/api.pb.h
+++ b/src/google/protobuf/api.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/compiler/BUILD.bazel b/src/google/protobuf/compiler/BUILD.bazel
index 89ab5ed..c880205 100644
--- a/src/google/protobuf/compiler/BUILD.bazel
+++ b/src/google/protobuf/compiler/BUILD.bazel
@@ -20,6 +20,7 @@
         "//:__pkg__",
         "//pkg:__pkg__",
     ],
+    strip_import_prefix = "/src",
     deps = ["//:descriptor_proto"],
 )
 
@@ -210,7 +211,10 @@
 
 exports_files(
     srcs = ["plugin.proto"],
-    visibility = ["//:__pkg__"],
+    visibility = [
+        "//:__pkg__",
+        "//python:__pkg__",
+    ],
 )
 
 cc_library(
diff --git a/src/google/protobuf/compiler/plugin.pb.h b/src/google/protobuf/compiler/plugin.pb.h
index d366116..5e3404e 100644
--- a/src/google/protobuf/compiler/plugin.pb.h
+++ b/src/google/protobuf/compiler/plugin.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/descriptor.pb.h b/src/google/protobuf/descriptor.pb.h
index 4753a9d..455021a 100644
--- a/src/google/protobuf/descriptor.pb.h
+++ b/src/google/protobuf/descriptor.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/duration.pb.h b/src/google/protobuf/duration.pb.h
index c68665c..7121b53 100644
--- a/src/google/protobuf/duration.pb.h
+++ b/src/google/protobuf/duration.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/empty.pb.h b/src/google/protobuf/empty.pb.h
index 7c2687c..c17b5ea 100644
--- a/src/google/protobuf/empty.pb.h
+++ b/src/google/protobuf/empty.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/field_mask.pb.h b/src/google/protobuf/field_mask.pb.h
index dba7515..ddb95f5 100644
--- a/src/google/protobuf/field_mask.pb.h
+++ b/src/google/protobuf/field_mask.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc
index 1721f33..d9bf569 100644
--- a/src/google/protobuf/port_def.inc
+++ b/src/google/protobuf/port_def.inc
@@ -222,7 +222,7 @@
 #ifdef PROTOBUF_VERSION
 #error PROTOBUF_VERSION was previously defined
 #endif
-#define PROTOBUF_VERSION 3021012
+#define PROTOBUF_VERSION 4022001
 
 #ifdef PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC
 #error PROTOBUF_MIN_HEADER_VERSION_FOR_PROTOC was previously defined
diff --git a/src/google/protobuf/source_context.pb.h b/src/google/protobuf/source_context.pb.h
index 69d5662..c16e410 100644
--- a/src/google/protobuf/source_context.pb.h
+++ b/src/google/protobuf/source_context.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/struct.pb.h b/src/google/protobuf/struct.pb.h
index ff41417..7863324 100644
--- a/src/google/protobuf/struct.pb.h
+++ b/src/google/protobuf/struct.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h
index a3b0c69..3255944 100644
--- a/src/google/protobuf/stubs/common.h
+++ b/src/google/protobuf/stubs/common.h
@@ -66,7 +66,7 @@
 
 // The current version, represented as a single integer to make comparison
 // easier:  major * 10^6 + minor * 10^3 + micro
-#define GOOGLE_PROTOBUF_VERSION 3021012
+#define GOOGLE_PROTOBUF_VERSION 4022001
 
 // A suffix string for alpha, beta or rc releases. Empty for stable releases.
 #define GOOGLE_PROTOBUF_VERSION_SUFFIX ""
diff --git a/src/google/protobuf/timestamp.pb.h b/src/google/protobuf/timestamp.pb.h
index 65b223b..bb9082b 100644
--- a/src/google/protobuf/timestamp.pb.h
+++ b/src/google/protobuf/timestamp.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/type.pb.h b/src/google/protobuf/type.pb.h
index 59e4976..23ff968 100644
--- a/src/google/protobuf/type.pb.h
+++ b/src/google/protobuf/type.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."
diff --git a/src/google/protobuf/wrappers.pb.h b/src/google/protobuf/wrappers.pb.h
index f5f845a..e5d676a 100644
--- a/src/google/protobuf/wrappers.pb.h
+++ b/src/google/protobuf/wrappers.pb.h
@@ -15,7 +15,7 @@
 #error "your headers."
 #endif  // PROTOBUF_VERSION
 
-#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
+#if 4022001 < PROTOBUF_MIN_PROTOC_VERSION
 #error "This file was generated by an older version of protoc which is"
 #error "incompatible with your Protocol Buffer headers. Please"
 #error "regenerate this file with a newer version of protoc."