Project import generated by Copybara.

GitOrigin-RevId: d9e9e3fb4e31372ec1fb43b178994ca78fa8fe70
diff --git a/api/api_proto/features_prpc_pb2.py b/api/api_proto/features_prpc_pb2.py
new file mode 100644
index 0000000..17257e5
--- /dev/null
+++ b/api/api_proto/features_prpc_pb2.py
@@ -0,0 +1,274 @@
+# Generated by the pRPC protocol buffer compiler plugin.  DO NOT EDIT!
+# source: api/api_proto/features.proto
+
+import base64
+import zlib
+
+from google.protobuf import descriptor_pb2
+
+# Includes description of the api/api_proto/features.proto and all of its transitive
+# dependencies. Includes source code info.
+FILE_DESCRIPTOR_SET = descriptor_pb2.FileDescriptorSet()
+FILE_DESCRIPTOR_SET.ParseFromString(zlib.decompress(base64.b64decode(
+    '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')))
+_INDEX = {
+    f.name: {
+      'descriptor': f,
+      'services': {s.name: s for s in f.service},
+    }
+    for f in FILE_DESCRIPTOR_SET.file
+}
+
+
+FeaturesServiceDescription = {
+  'file_descriptor_set': FILE_DESCRIPTOR_SET,
+  'file_descriptor': _INDEX[u'api/api_proto/features.proto']['descriptor'],
+  'service_descriptor': _INDEX[u'api/api_proto/features.proto']['services'][u'Features'],
+}