Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Hegyi <ahegyi@gitlab.com>2019-09-24 15:26:19 +0300
committerZeger-Jan van de Weg <git@zjvandeweg.nl>2019-09-24 15:26:19 +0300
commitbe6d4c122dd158a72291b043623b41a60bf28964 (patch)
treeb9c64be1317e9391d97c82bff7b183cd2e9e747d
parent94ab4e3d76d08721d7a2d9f82835bb651b130a9a (diff)
File count and bytes in CommitLanguage response
This change extends the CommitLanguage response to include FileCount and Bytes. Getting the FileCount per language requires an additional git-linguist call which might increase the GRPC call execution time. To have control over the FileCount call, a new feature flag ('linguist_file_count_stats') has been introduced that can be turned off when performance issues occur.
-rw-r--r--changelogs/unreleased/include-file-count-in-commit-language-reponse.yml5
-rw-r--r--internal/linguist/linguist.go68
-rw-r--r--internal/metadata/featureflag/featureflags.go3
-rw-r--r--internal/service/commit/languages.go20
-rw-r--r--internal/service/commit/languages_test.go65
-rw-r--r--proto/commit.proto2
-rw-r--r--proto/go/gitalypb/commit.pb.go273
-rw-r--r--ruby/proto/gitaly/commit_pb.rb2
8 files changed, 286 insertions, 152 deletions
diff --git a/changelogs/unreleased/include-file-count-in-commit-language-reponse.yml b/changelogs/unreleased/include-file-count-in-commit-language-reponse.yml
new file mode 100644
index 000000000..34db2110b
--- /dev/null
+++ b/changelogs/unreleased/include-file-count-in-commit-language-reponse.yml
@@ -0,0 +1,5 @@
+---
+title: Include file count and bytes in CommitLanguage response
+merge_request: 1482
+author:
+type: changed
diff --git a/internal/linguist/linguist.go b/internal/linguist/linguist.go
index 3b215fd9a..419f22993 100644
--- a/internal/linguist/linguist.go
+++ b/internal/linguist/linguist.go
@@ -19,6 +19,8 @@ func init() {
config.RegisterHook(LoadColors)
}
+var exportedEnvVars = []string{"HOME", "PATH", "GEM_HOME", "BUNDLE_PATH", "BUNDLE_APP_CONFIG"}
+
var (
colorMap = make(map[string]Language)
)
@@ -28,11 +30,19 @@ type Language struct {
Color string `json:"color"`
}
+// CountPerLanguage represents a counter value (int) per language.
+type CountPerLanguage map[string]int
+
+// ByteCountPerLanguage represents a counter value (bytes) per language.
+type ByteCountPerLanguage map[string]uint64
+
+// FileListPerLanguage is used to parse Linguist's breakdown output to represent the list of files per language.
+type FileListPerLanguage map[string][]string
+
// Stats returns the repository's language stats as reported by 'git-linguist'.
-func Stats(ctx context.Context, repoPath string, commitID string) (map[string]int, error) {
- cmd := exec.Command("bundle", "exec", "bin/ruby-cd", repoPath, "git-linguist", "--commit="+commitID, "stats")
- cmd.Dir = config.Config.Ruby.Dir
- reader, err := command.New(ctx, cmd, nil, nil, nil, os.Environ()...)
+func Stats(ctx context.Context, repoPath string, commitID string) (ByteCountPerLanguage, error) {
+ reader, err := startGitLinguist(ctx, repoPath, commitID, "stats")
+
if err != nil {
return nil, err
}
@@ -42,10 +52,35 @@ func Stats(ctx context.Context, repoPath string, commitID string) (map[string]in
return nil, err
}
- stats := make(map[string]int)
+ stats := make(ByteCountPerLanguage)
return stats, json.Unmarshal(data, &stats)
}
+// FileCountStats returns the file counts per language
+func FileCountStats(ctx context.Context, repoPath string, commitID string) (CountPerLanguage, error) {
+ reader, err := startGitLinguist(ctx, repoPath, commitID, "breakdown")
+ if err != nil {
+ return nil, err
+ }
+
+ data, err := ioutil.ReadAll(reader)
+ if err != nil {
+ return nil, err
+ }
+
+ languageFiles := make(FileListPerLanguage)
+ if err := json.Unmarshal(data, &languageFiles); err != nil {
+ return nil, err
+ }
+
+ stats := make(CountPerLanguage)
+ for lang, files := range languageFiles {
+ stats[lang] = len(files)
+ }
+
+ return stats, nil
+}
+
// Color returns the color Linguist has assigned to language.
func Color(language string) string {
if color := colorMap[language].Color; color != "" {
@@ -67,6 +102,19 @@ func LoadColors(cfg config.Cfg) error {
return json.NewDecoder(jsonReader).Decode(&colorMap)
}
+func startGitLinguist(ctx context.Context, repoPath string, commitID string, linguistCommand string) (io.Reader, error) {
+ cmd := exec.Command("bundle", "exec", "bin/ruby-cd", repoPath, "git-linguist", "--commit="+commitID, linguistCommand)
+ cmd.Dir = config.Config.Ruby.Dir
+
+ var env []string
+ reader, err := command.New(ctx, cmd, nil, nil, nil, exportEnvironment(env)...)
+ if err != nil {
+ return nil, err
+ }
+
+ return reader, nil
+}
+
func openLanguagesJSON(cfg config.Cfg) (io.ReadCloser, error) {
if jsonPath := cfg.Ruby.LinguistLanguagesPath; jsonPath != "" {
// This is a fallback for environments where dynamic discovery of the
@@ -106,3 +154,13 @@ func openLanguagesJSON(cfg config.Cfg) (io.ReadCloser, error) {
return os.Open(path.Join(linguistPathSymlink.Name(), "lib/linguist/languages.json"))
}
+
+func exportEnvironment(env []string) []string {
+ for _, envVarName := range exportedEnvVars {
+ if val, ok := os.LookupEnv(envVarName); ok {
+ env = append(env, fmt.Sprintf("%s=%s", envVarName, val))
+ }
+ }
+
+ return env
+}
diff --git a/internal/metadata/featureflag/featureflags.go b/internal/metadata/featureflag/featureflags.go
index 8ddd15d26..9860291b9 100644
--- a/internal/metadata/featureflag/featureflags.go
+++ b/internal/metadata/featureflag/featureflags.go
@@ -3,4 +3,7 @@ package featureflag
const (
// GetAllLFSPointersGo will cause the GetAllLFSPointers RPC to use the go implementation when set
GetAllLFSPointersGo = "get_all_lfs_pointers_go"
+
+ // LinguistFileCountStats will invoke an additional git-linguist command to get the number of files per language
+ LinguistFileCountStats = "linguist_file_count_stats"
)
diff --git a/internal/service/commit/languages.go b/internal/service/commit/languages.go
index 87c8ab0d5..17a00407e 100644
--- a/internal/service/commit/languages.go
+++ b/internal/service/commit/languages.go
@@ -9,6 +9,7 @@ import (
"gitlab.com/gitlab-org/gitaly/internal/helper"
"gitlab.com/gitlab-org/gitaly/internal/helper/text"
"gitlab.com/gitlab-org/gitaly/internal/linguist"
+ "gitlab.com/gitlab-org/gitaly/internal/metadata/featureflag"
"gitlab.com/gitlab-org/gitaly/internal/service/ref"
"gitlab.com/gitlab-org/gitaly/proto/go/gitalypb"
"google.golang.org/grpc/codes"
@@ -45,12 +46,21 @@ func (*server) CommitLanguages(ctx context.Context, req *gitalypb.CommitLanguage
return nil, err
}
+ // TODO: remove feature flag when Stats and FileCountStats is executed with one ruby script call
+ fileCountStats := make(linguist.CountPerLanguage)
+ if featureflag.IsEnabled(ctx, featureflag.LinguistFileCountStats) {
+ fileCountStats, err = linguist.FileCountStats(ctx, repoPath, commitID)
+ if err != nil {
+ return nil, err
+ }
+ }
+
resp := &gitalypb.CommitLanguagesResponse{}
if len(stats) == 0 {
return resp, nil
}
- total := 0
+ total := uint64(0)
for _, count := range stats {
total += count
}
@@ -61,9 +71,11 @@ func (*server) CommitLanguages(ctx context.Context, req *gitalypb.CommitLanguage
for lang, count := range stats {
l := &gitalypb.CommitLanguagesResponse_Language{
- Name: lang,
- Share: float32(100*count) / float32(total),
- Color: linguist.Color(lang),
+ Name: lang,
+ Share: float32(100*count) / float32(total),
+ Color: linguist.Color(lang),
+ FileCount: uint32(fileCountStats[lang]),
+ Bytes: uint64(stats[lang]),
}
resp.Languages = append(resp.Languages, l)
}
diff --git a/internal/service/commit/languages_test.go b/internal/service/commit/languages_test.go
index c23ba8a23..b456719a5 100644
--- a/internal/service/commit/languages_test.go
+++ b/internal/service/commit/languages_test.go
@@ -5,9 +5,11 @@ import (
"testing"
"github.com/stretchr/testify/require"
+ "gitlab.com/gitlab-org/gitaly/internal/metadata/featureflag"
"gitlab.com/gitlab-org/gitaly/internal/testhelper"
"gitlab.com/gitlab-org/gitaly/proto/go/gitalypb"
"google.golang.org/grpc/codes"
+ "google.golang.org/grpc/metadata"
)
func TestLanguages(t *testing.T) {
@@ -27,40 +29,67 @@ func TestLanguages(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
+
+ ctx = EnableLinguistFileCountStatsFeatureFlag(ctx)
+
resp, err := client.CommitLanguages(ctx, request)
require.NoError(t, err)
require.NotZero(t, len(resp.Languages), "number of languages in response")
expectedLanguages := []gitalypb.CommitLanguagesResponse_Language{
- {Name: "Ruby", Share: 66, Color: "#701516"},
- {Name: "JavaScript", Share: 22, Color: "#f1e05a"},
- {Name: "HTML", Share: 7, Color: "#e34c26"},
- {Name: "CoffeeScript", Share: 2, Color: "#244776"},
+ {Name: "Ruby", Share: 66, Color: "#701516", FileCount: 4, Bytes: 2943},
+ {Name: "JavaScript", Share: 22, Color: "#f1e05a", FileCount: 1, Bytes: 1014},
+ {Name: "HTML", Share: 7, Color: "#e34c26", FileCount: 1, Bytes: 349},
+ {Name: "CoffeeScript", Share: 2, Color: "#244776", FileCount: 1, Bytes: 107},
// Modula-2 is a special case because Linguist has no color for it. This
// test case asserts that we invent a color for it (SHA256 of the name).
- {Name: "Modula-2", Share: 2, Color: "#3fd5e0"},
+ {Name: "Modula-2", Share: 2, Color: "#3fd5e0", FileCount: 1, Bytes: 95},
}
require.Equal(t, len(expectedLanguages), len(resp.Languages))
for i, el := range expectedLanguages {
actualLanguage := resp.Languages[i]
- require.True(t, languageEqual(&el, actualLanguage), "expected %+v, got %+v", el, *actualLanguage)
+ requireLanguageEqual(t, &el, actualLanguage)
}
}
-func languageEqual(expected, actual *gitalypb.CommitLanguagesResponse_Language) bool {
- if expected.Name != actual.Name {
- return false
- }
- if expected.Color != actual.Color {
- return false
+func TestFileCountIsZeroWhenFeatureIsDisabled(t *testing.T) {
+ server, serverSocketPath := startTestServices(t)
+ defer server.Stop()
+
+ client, conn := newCommitServiceClient(t, serverSocketPath)
+ defer conn.Close()
+
+ testRepo, _, cleanupFn := testhelper.NewTestRepo(t)
+ defer cleanupFn()
+
+ request := &gitalypb.CommitLanguagesRequest{
+ Repository: testRepo,
+ Revision: []byte("cb19058ecc02d01f8e4290b7e79cafd16a8839b6"),
}
- if (expected.Share-actual.Share)*(expected.Share-actual.Share) >= 1.0 {
- return false
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+
+ resp, err := client.CommitLanguages(ctx, request)
+ require.NoError(t, err)
+
+ require.NotZero(t, len(resp.Languages), "number of languages in response")
+
+ for i := range resp.Languages {
+ actualLanguage := resp.Languages[i]
+ require.Equal(t, uint32(0), actualLanguage.FileCount)
}
- return true
+}
+
+func requireLanguageEqual(t *testing.T, expected, actual *gitalypb.CommitLanguagesResponse_Language) {
+ require.Equal(t, expected.Name, actual.Name)
+ require.Equal(t, expected.Color, actual.Color)
+ require.False(t, (expected.Share-actual.Share)*(expected.Share-actual.Share) >= 1.0, "shares do not match")
+ require.Equal(t, expected.FileCount, actual.FileCount)
+ require.Equal(t, expected.Bytes, actual.Bytes)
}
func TestLanguagesEmptyRevision(t *testing.T) {
@@ -112,3 +141,9 @@ func TestInvalidCommitLanguagesRequestRevision(t *testing.T) {
})
testhelper.RequireGrpcError(t, err, codes.InvalidArgument)
}
+
+func EnableLinguistFileCountStatsFeatureFlag(ctx context.Context) context.Context {
+ return metadata.NewOutgoingContext(ctx, metadata.New(map[string]string{
+ featureflag.HeaderKey(featureflag.LinguistFileCountStats): "true",
+ }))
+}
diff --git a/proto/commit.proto b/proto/commit.proto
index 35ce65c43..8eca1dd75 100644
--- a/proto/commit.proto
+++ b/proto/commit.proto
@@ -360,6 +360,8 @@ message CommitLanguagesResponse {
string name = 1;
float share = 2;
string color = 3;
+ uint32 file_count = 4;
+ uint64 bytes = 5;
}
repeated Language languages = 1;
}
diff --git a/proto/go/gitalypb/commit.pb.go b/proto/go/gitalypb/commit.pb.go
index aabc2b7f3..c83afcbf6 100644
--- a/proto/go/gitalypb/commit.pb.go
+++ b/proto/go/gitalypb/commit.pb.go
@@ -1701,6 +1701,8 @@ type CommitLanguagesResponse_Language struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Share float32 `protobuf:"fixed32,2,opt,name=share,proto3" json:"share,omitempty"`
Color string `protobuf:"bytes,3,opt,name=color,proto3" json:"color,omitempty"`
+ FileCount uint32 `protobuf:"varint,4,opt,name=file_count,json=fileCount,proto3" json:"file_count,omitempty"`
+ Bytes uint64 `protobuf:"varint,5,opt,name=bytes,proto3" json:"bytes,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -1752,6 +1754,20 @@ func (m *CommitLanguagesResponse_Language) GetColor() string {
return ""
}
+func (m *CommitLanguagesResponse_Language) GetFileCount() uint32 {
+ if m != nil {
+ return m.FileCount
+ }
+ return 0
+}
+
+func (m *CommitLanguagesResponse_Language) GetBytes() uint64 {
+ if m != nil {
+ return m.Bytes
+ }
+ return 0
+}
+
type RawBlameRequest struct {
Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
Revision []byte `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
@@ -2659,134 +2675,135 @@ func init() {
func init() { proto.RegisterFile("commit.proto", fileDescriptor_db7163399a465f48) }
var fileDescriptor_db7163399a465f48 = []byte{
- // 2017 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x49, 0x6f, 0xe3, 0xc8,
- 0x15, 0x1e, 0x6a, 0x33, 0xf9, 0xa4, 0x78, 0xe4, 0xea, 0x4d, 0xa6, 0xed, 0xb6, 0x87, 0xdd, 0x3d,
- 0xf1, 0x60, 0x12, 0xd9, 0x71, 0x16, 0x24, 0xa7, 0xa0, 0x3d, 0x63, 0x1b, 0x76, 0xda, 0x56, 0x87,
- 0x16, 0x30, 0x40, 0x30, 0x81, 0x42, 0x89, 0x25, 0x89, 0x69, 0x4a, 0xd4, 0x90, 0x25, 0xb7, 0x15,
- 0x04, 0xb9, 0x07, 0xc8, 0x3d, 0xc8, 0x29, 0xa7, 0x1c, 0x73, 0x98, 0x9f, 0x90, 0xbf, 0x90, 0x4b,
- 0xfe, 0x45, 0x7e, 0x40, 0x9f, 0x06, 0xb5, 0x90, 0x45, 0x8a, 0xa4, 0xdd, 0xb6, 0x46, 0x7d, 0x11,
- 0x58, 0xaf, 0x96, 0xb7, 0x54, 0xbd, 0xaf, 0xbe, 0x7a, 0x82, 0x5a, 0xcf, 0x1b, 0x8d, 0x1c, 0xd2,
- 0x9c, 0xf8, 0x1e, 0xf1, 0x50, 0x65, 0xe0, 0x10, 0xcb, 0x9d, 0xe9, 0xb5, 0x60, 0x68, 0xf9, 0xd8,
- 0xe6, 0x52, 0x7d, 0x7b, 0xe0, 0x79, 0x03, 0x17, 0xef, 0xb1, 0x56, 0x77, 0xda, 0xdf, 0x23, 0xce,
- 0x08, 0x07, 0xc4, 0x1a, 0x4d, 0xf8, 0x00, 0xc3, 0x06, 0xf4, 0x05, 0x5b, 0xe6, 0x92, 0x58, 0x24,
- 0x30, 0xf1, 0x37, 0x53, 0x1c, 0x10, 0x74, 0x00, 0xe0, 0xe3, 0x89, 0x17, 0x38, 0xc4, 0xf3, 0x67,
- 0x0d, 0x65, 0x47, 0xd9, 0xad, 0x1e, 0xa0, 0x26, 0xd7, 0xd0, 0x34, 0xa3, 0x1e, 0x33, 0x36, 0x0a,
- 0xe9, 0xa0, 0xfa, 0xf8, 0xca, 0x09, 0x1c, 0x6f, 0xdc, 0x28, 0xec, 0x28, 0xbb, 0x35, 0x33, 0x6a,
- 0x1b, 0x3d, 0x78, 0x90, 0xd0, 0x12, 0x4c, 0xbc, 0x71, 0x80, 0x51, 0x1d, 0x8a, 0x9e, 0x63, 0xb3,
- 0xf5, 0x35, 0x93, 0x7e, 0xa2, 0x4d, 0xd0, 0x2c, 0xdb, 0x76, 0x88, 0xe3, 0x8d, 0x03, 0xb6, 0x4a,
- 0xd9, 0x94, 0x02, 0xda, 0x6b, 0x63, 0x17, 0xf3, 0xde, 0x22, 0xef, 0x8d, 0x04, 0xc6, 0x5f, 0x15,
- 0x78, 0xc2, 0xb5, 0x9c, 0x06, 0x2f, 0xc7, 0x3d, 0x1c, 0x10, 0xcf, 0x5f, 0xc4, 0xa1, 0x6d, 0xa8,
- 0x5a, 0x62, 0x99, 0x8e, 0x63, 0x33, 0x6b, 0x34, 0x13, 0x42, 0xd1, 0xa9, 0x8d, 0xd6, 0x41, 0xed,
- 0x0d, 0x1d, 0xd7, 0xa6, 0xbd, 0x45, 0xd6, 0xbb, 0xc2, 0xda, 0xa7, 0xb6, 0xb1, 0x0f, 0x8d, 0xb4,
- 0x29, 0xc2, 0xeb, 0x87, 0x50, 0xbe, 0xb2, 0xdc, 0x29, 0x66, 0x66, 0xa8, 0x26, 0x6f, 0x18, 0x7f,
- 0x53, 0xa0, 0xde, 0xf6, 0x31, 0x3e, 0x1a, 0x13, 0x7f, 0xb6, 0xa4, 0x7d, 0x40, 0x08, 0x4a, 0x13,
- 0x8b, 0x0c, 0x99, 0xb5, 0x35, 0x93, 0x7d, 0x53, 0x73, 0x5c, 0x67, 0xe4, 0x90, 0x46, 0x69, 0x47,
- 0xd9, 0x2d, 0x9a, 0xbc, 0x61, 0xfc, 0x57, 0x81, 0xb5, 0x98, 0x39, 0xc2, 0xf4, 0x5f, 0x42, 0x89,
- 0xcc, 0x26, 0xdc, 0xf2, 0xd5, 0x83, 0xe7, 0xa1, 0x25, 0xa9, 0x81, 0xcd, 0x56, 0xf7, 0x8f, 0xb8,
- 0x47, 0xda, 0xb3, 0x09, 0x36, 0xd9, 0x8c, 0x70, 0xab, 0x0b, 0x72, 0xab, 0x11, 0x94, 0x02, 0xe7,
- 0x4f, 0x98, 0xd9, 0x52, 0x34, 0xd9, 0x37, 0x95, 0x8d, 0x3c, 0x1b, 0x33, 0x53, 0xca, 0x26, 0xfb,
- 0xa6, 0x32, 0xdb, 0x22, 0x56, 0xa3, 0xcc, 0x6d, 0xa6, 0xdf, 0xc6, 0xcf, 0x01, 0xa4, 0x06, 0x04,
- 0x50, 0xf9, 0xa2, 0x75, 0x7e, 0x7e, 0xda, 0xae, 0x7f, 0x84, 0x54, 0x28, 0x1d, 0xbe, 0x6a, 0x1d,
- 0xd6, 0x15, 0xfa, 0xd5, 0x36, 0x8f, 0x8e, 0xea, 0x05, 0xb4, 0x02, 0xc5, 0xf6, 0xcb, 0x93, 0x7a,
- 0xd1, 0xf0, 0xe0, 0x11, 0xdf, 0x95, 0xe0, 0x10, 0x93, 0xb7, 0x18, 0x8f, 0x17, 0x89, 0x33, 0x82,
- 0x52, 0xdf, 0xf7, 0x46, 0x22, 0xc6, 0xec, 0x1b, 0xad, 0x42, 0x81, 0x78, 0x22, 0xba, 0x05, 0xe2,
- 0x19, 0x47, 0xf0, 0x78, 0x5e, 0xa1, 0x88, 0xe4, 0xe7, 0xb0, 0xc2, 0xd3, 0x37, 0x68, 0x28, 0x3b,
- 0xc5, 0xdd, 0xea, 0xc1, 0x5a, 0xa8, 0xee, 0xc4, 0x21, 0x7c, 0x8e, 0x19, 0x8e, 0x30, 0xbe, 0x2d,
- 0xd0, 0xfc, 0x99, 0x8e, 0x45, 0xc7, 0xb2, 0xd2, 0x14, 0xed, 0x43, 0xd9, 0xea, 0x13, 0xec, 0x33,
- 0x0f, 0xaa, 0x07, 0x7a, 0x93, 0xa3, 0x47, 0x33, 0x44, 0x8f, 0x66, 0x3b, 0x44, 0x0f, 0x93, 0x0f,
- 0x44, 0x07, 0x50, 0xe9, 0xe2, 0xbe, 0xe7, 0xf3, 0x2d, 0xbb, 0x79, 0x8a, 0x18, 0x19, 0x1d, 0xc2,
- 0x72, 0xec, 0x10, 0x6e, 0x80, 0x36, 0xb2, 0xae, 0x3b, 0x3d, 0xea, 0x64, 0xa3, 0xc2, 0x76, 0x5f,
- 0x1d, 0x59, 0xd7, 0xcc, 0x69, 0x7a, 0x76, 0x2c, 0xd7, 0x6d, 0xac, 0xb0, 0x74, 0xa1, 0x9f, 0xe8,
- 0x13, 0xa8, 0xf5, 0x1d, 0x3f, 0x20, 0x9d, 0x89, 0xe5, 0xe3, 0x31, 0x69, 0xa8, 0xac, 0xab, 0xca,
- 0x64, 0xaf, 0x99, 0xc8, 0xf8, 0x11, 0x3c, 0x4c, 0x86, 0x4c, 0x66, 0x1f, 0xd7, 0xa2, 0x30, 0x2d,
- 0xbc, 0x61, 0xfc, 0x4b, 0x81, 0x4d, 0x36, 0xfc, 0x4b, 0xe7, 0x0a, 0xfb, 0x03, 0x67, 0x3c, 0xf8,
- 0x1e, 0x42, 0xfd, 0x1e, 0x27, 0x24, 0xe9, 0xf8, 0x4a, 0xd2, 0xf1, 0xb3, 0x92, 0x5a, 0xaa, 0x97,
- 0xcf, 0x4a, 0x6a, 0xb9, 0x5e, 0x39, 0x2b, 0xa9, 0x95, 0xfa, 0x8a, 0xd1, 0x81, 0xad, 0x1c, 0x33,
- 0x85, 0x7b, 0x5b, 0x00, 0x2e, 0xee, 0x93, 0x4e, 0xdc, 0x47, 0x8d, 0x4a, 0x78, 0x28, 0xb7, 0xa1,
- 0xea, 0x3b, 0x83, 0x61, 0xd8, 0xcf, 0x11, 0x16, 0x98, 0x88, 0x0d, 0x30, 0xde, 0x29, 0xa0, 0x45,
- 0xe9, 0x9c, 0x01, 0xd0, 0xeb, 0xa0, 0xfa, 0x9e, 0x47, 0x3a, 0x32, 0x99, 0x57, 0x68, 0xbb, 0xc5,
- 0x13, 0x3a, 0x05, 0x2e, 0x7b, 0x02, 0x30, 0x4a, 0x0c, 0x30, 0x36, 0x52, 0x80, 0xd1, 0x64, 0xbf,
- 0x31, 0x9c, 0x08, 0x11, 0xa0, 0x1c, 0x43, 0x80, 0x2d, 0x00, 0x9e, 0x09, 0x4c, 0x6b, 0x85, 0x69,
- 0xd5, 0xb8, 0x84, 0xea, 0xdd, 0x00, 0xad, 0xef, 0x5a, 0xf4, 0x2c, 0x90, 0x21, 0x0b, 0x61, 0xcd,
- 0x54, 0xa9, 0xe0, 0xb5, 0x45, 0x86, 0xc6, 0xe7, 0xa0, 0x45, 0x2a, 0x22, 0x70, 0xf8, 0x28, 0x02,
- 0x07, 0x25, 0x06, 0x1e, 0x45, 0xe3, 0x1f, 0x0a, 0x3c, 0x3a, 0xc1, 0x24, 0xb4, 0xce, 0xc1, 0xc1,
- 0x87, 0x04, 0xe2, 0x4d, 0xd0, 0x7c, 0xdc, 0x9b, 0xfa, 0x81, 0x73, 0xc5, 0x03, 0xa6, 0x9a, 0x52,
- 0x40, 0xa1, 0x64, 0xde, 0x34, 0x09, 0x25, 0x98, 0x8b, 0xe6, 0xa1, 0x44, 0xe2, 0x72, 0x38, 0xc2,
- 0xe8, 0x42, 0xfd, 0x95, 0x13, 0x90, 0x63, 0xc7, 0x5d, 0x9a, 0x73, 0xc6, 0x67, 0xb0, 0x16, 0xd3,
- 0x21, 0xf3, 0x8e, 0x7a, 0xc9, 0x6d, 0xac, 0x99, 0xbc, 0x61, 0xf4, 0x60, 0xed, 0xd8, 0x19, 0xdb,
- 0x02, 0xf0, 0x96, 0x64, 0xcf, 0xaf, 0x01, 0xc5, 0x95, 0x08, 0x83, 0x3e, 0x83, 0x0a, 0x3f, 0x43,
- 0x42, 0x43, 0x06, 0x00, 0x8b, 0x01, 0x46, 0x07, 0x9e, 0x50, 0x87, 0x42, 0x28, 0x9f, 0xb5, 0x1c,
- 0x7b, 0x11, 0x5b, 0xa3, 0xbb, 0xb0, 0x28, 0xb2, 0xca, 0x38, 0x81, 0x46, 0x5a, 0xc1, 0x7d, 0x6e,
- 0x8a, 0x31, 0x6c, 0x24, 0x16, 0x32, 0x71, 0xff, 0xc2, 0x1a, 0xe1, 0x45, 0xac, 0xdd, 0xa0, 0xc7,
- 0xb2, 0xdf, 0x19, 0x5b, 0x23, 0x1c, 0x30, 0x9b, 0x59, 0x68, 0xd9, 0xb2, 0x81, 0xf1, 0x1b, 0xd8,
- 0xcc, 0xd6, 0x77, 0x1f, 0xe3, 0xdf, 0x29, 0xf0, 0x88, 0x6e, 0xd4, 0x4b, 0xd7, 0x5d, 0xf2, 0x45,
- 0x97, 0x40, 0xdd, 0xe2, 0xdc, 0x75, 0x43, 0x89, 0xc9, 0x1b, 0x67, 0x12, 0x92, 0x10, 0xfa, 0x8d,
- 0x7e, 0x05, 0x65, 0xcf, 0xb7, 0xb1, 0xcf, 0x70, 0x69, 0xf5, 0xe0, 0x59, 0xa8, 0x3b, 0xd3, 0xdc,
- 0x66, 0x8b, 0x0e, 0x35, 0xf9, 0x0c, 0xe3, 0x05, 0x94, 0x59, 0x9b, 0x62, 0xce, 0x45, 0xeb, 0xe2,
- 0x48, 0xa0, 0x4f, 0xeb, 0x75, 0x8b, 0x93, 0x94, 0x2f, 0x5f, 0xb6, 0x8f, 0xea, 0x05, 0x9a, 0xdf,
- 0xf3, 0x8b, 0xdd, 0x27, 0x86, 0xff, 0x2c, 0xc6, 0x0f, 0xfb, 0xd2, 0x02, 0x18, 0x91, 0x46, 0x1e,
- 0x3c, 0xde, 0x40, 0x8f, 0xa1, 0xe2, 0xf5, 0xfb, 0x01, 0x26, 0x22, 0x76, 0xa2, 0x25, 0x73, 0xbf,
- 0x1c, 0xcb, 0x7d, 0x3a, 0xba, 0xef, 0xb9, 0xae, 0xf7, 0x96, 0x41, 0xba, 0x6a, 0x8a, 0x16, 0xbd,
- 0xa3, 0x68, 0xcc, 0x3b, 0x23, 0xec, 0x0f, 0x70, 0x20, 0xae, 0x7d, 0xa0, 0xa2, 0x73, 0x26, 0xa1,
- 0xb7, 0xbf, 0xed, 0x04, 0x56, 0xd7, 0xc5, 0x9d, 0xb7, 0x96, 0xfb, 0x26, 0xbc, 0xfd, 0x85, 0xec,
- 0x2b, 0xcb, 0x7d, 0x23, 0x99, 0x8c, 0x76, 0x77, 0x26, 0x03, 0xef, 0xcd, 0x64, 0x04, 0x31, 0xa9,
- 0xe6, 0x13, 0x93, 0x5a, 0x9a, 0x98, 0x1c, 0xc2, 0x83, 0xc4, 0x06, 0xdd, 0x67, 0x97, 0x87, 0x21,
- 0xaf, 0x7c, 0x65, 0x8d, 0x07, 0x53, 0x6b, 0xb0, 0x3c, 0x2c, 0xff, 0x77, 0xf4, 0xa8, 0x8a, 0xa9,
- 0x12, 0x26, 0x1f, 0x83, 0xe6, 0x86, 0x42, 0x61, 0xf4, 0x6e, 0xa8, 0x2a, 0x67, 0x4e, 0x33, 0x94,
- 0x98, 0x72, 0xaa, 0x7e, 0x06, 0x6a, 0x28, 0xa6, 0xc9, 0x47, 0x91, 0x46, 0x50, 0x0e, 0xf6, 0x4d,
- 0x8f, 0x0f, 0x7b, 0xd4, 0x32, 0xe3, 0x0a, 0x26, 0x6f, 0x70, 0x22, 0xe7, 0x7a, 0xbe, 0x78, 0x7a,
- 0xf1, 0x86, 0x31, 0x85, 0x8f, 0x4d, 0xeb, 0xed, 0xa1, 0xbb, 0x20, 0xe8, 0xdd, 0xf1, 0xee, 0x36,
- 0x3e, 0x85, 0xba, 0x54, 0x2b, 0xc2, 0x13, 0x3e, 0x5c, 0x94, 0xd8, 0xc3, 0xe5, 0x2f, 0xd0, 0x78,
- 0x65, 0x85, 0x78, 0x79, 0xec, 0xf9, 0x94, 0xa3, 0x7c, 0x48, 0x3b, 0x8f, 0x61, 0x3d, 0x43, 0xff,
- 0xdd, 0x6f, 0xc4, 0x6f, 0x15, 0xd8, 0xa2, 0xc0, 0x2f, 0x17, 0x0b, 0x8e, 0x3d, 0x9f, 0xf2, 0x8d,
- 0xef, 0xd3, 0x1b, 0xed, 0x2e, 0x4f, 0xd7, 0x0c, 0x14, 0x2a, 0xc7, 0x51, 0xc8, 0xf8, 0x9f, 0x02,
- 0x4f, 0xf3, 0x6c, 0x16, 0x11, 0xb8, 0x98, 0x4f, 0xc2, 0x9f, 0x85, 0x16, 0xdf, 0x3c, 0xb1, 0x19,
- 0x05, 0x94, 0x49, 0xc3, 0x45, 0x74, 0x0c, 0x3f, 0x48, 0xf4, 0xc4, 0x42, 0x5c, 0xb8, 0x25, 0xc4,
- 0x94, 0xf5, 0x52, 0x27, 0x3b, 0xdd, 0x19, 0xc1, 0x01, 0xf3, 0xb0, 0x66, 0x6a, 0x54, 0x72, 0x48,
- 0x05, 0x67, 0x25, 0x55, 0xa9, 0x17, 0xce, 0x4a, 0x6a, 0xb1, 0x5e, 0x32, 0xfe, 0x13, 0x25, 0x69,
- 0x70, 0x38, 0x3b, 0xc7, 0x41, 0x40, 0x13, 0x6c, 0x49, 0xa7, 0x4a, 0x46, 0xb7, 0x38, 0x8f, 0xf1,
- 0x19, 0x7b, 0x91, 0xf5, 0xd6, 0x7b, 0x08, 0xe5, 0x6f, 0xa6, 0xd8, 0x9f, 0x09, 0x26, 0xcf, 0x1b,
- 0x94, 0x02, 0xa5, 0x5d, 0xb8, 0x0f, 0x36, 0x3a, 0xb0, 0x7d, 0xec, 0xb8, 0x04, 0xfb, 0x97, 0x43,
- 0x2b, 0xf8, 0xca, 0x21, 0xc3, 0x4b, 0x67, 0x30, 0xb6, 0xc8, 0xd4, 0xc7, 0x8b, 0x3e, 0xe6, 0x82,
- 0xa1, 0x15, 0x32, 0x20, 0xf6, 0x6d, 0xfc, 0x02, 0x76, 0xf2, 0x55, 0x49, 0x14, 0x60, 0xf3, 0x94,
- 0xd8, 0xbc, 0x09, 0x6c, 0x1d, 0x5d, 0x13, 0xdf, 0xea, 0x09, 0xe3, 0xa3, 0x69, 0x0b, 0xf2, 0x34,
- 0xf1, 0x4a, 0x8a, 0x9e, 0x66, 0x2a, 0x17, 0x9c, 0xda, 0x46, 0x07, 0x9e, 0xe6, 0x69, 0x14, 0x76,
- 0x6e, 0x82, 0x16, 0x84, 0x42, 0x01, 0x59, 0x52, 0xc0, 0xee, 0x64, 0x67, 0x30, 0xc6, 0x76, 0x87,
- 0xe0, 0x6b, 0x22, 0x0e, 0x05, 0x70, 0x51, 0x1b, 0x5f, 0x13, 0xc3, 0x03, 0xfd, 0x04, 0xcf, 0x2f,
- 0xbe, 0x50, 0xc0, 0xe5, 0xab, 0xcf, 0xb1, 0x03, 0x41, 0x96, 0xb5, 0xd0, 0xa1, 0xc0, 0x98, 0xc1,
- 0x46, 0xa6, 0x42, 0xe1, 0x4e, 0x22, 0x1a, 0x4a, 0x32, 0x1a, 0x49, 0x5f, 0x0b, 0xb7, 0xf8, 0x5a,
- 0x4c, 0xf9, 0x3a, 0x82, 0x46, 0xa4, 0x5a, 0x1c, 0xd5, 0x65, 0x7a, 0x6a, 0xc2, 0x7a, 0x86, 0xba,
- 0xf7, 0xf1, 0xb3, 0x01, 0x2b, 0x23, 0x3e, 0x41, 0x78, 0x19, 0x36, 0x0f, 0xfe, 0x5f, 0x0f, 0x91,
- 0xe9, 0x12, 0xfb, 0x57, 0x4e, 0x0f, 0xa3, 0x3f, 0x40, 0x7d, 0xbe, 0x62, 0x89, 0xb6, 0x93, 0xb7,
- 0x79, 0xaa, 0xac, 0xaa, 0xef, 0xe4, 0x0f, 0xe0, 0xf6, 0x19, 0xda, 0xbb, 0xbf, 0xef, 0x96, 0xd5,
- 0x82, 0xae, 0xfc, 0x04, 0x9d, 0xc7, 0x2b, 0x0b, 0x8d, 0x8c, 0xda, 0x21, 0x5f, 0x73, 0x3d, 0xb7,
- 0xaa, 0x18, 0x5b, 0x6c, 0x5f, 0x41, 0x5f, 0xc3, 0x6a, 0xb2, 0xb6, 0x86, 0xb6, 0x92, 0xd6, 0xcc,
- 0x15, 0xf9, 0xf4, 0xa7, 0x79, 0xdd, 0x59, 0xab, 0xb7, 0xa1, 0x16, 0x2f, 0x1f, 0xa1, 0x0d, 0x39,
- 0x39, 0x55, 0x87, 0xd3, 0x37, 0xb3, 0x3b, 0xd3, 0x21, 0x60, 0x05, 0xc8, 0x8c, 0xf2, 0x0d, 0x7a,
- 0x9e, 0x58, 0x21, 0xa7, 0x08, 0xa5, 0xbf, 0xb8, 0x65, 0x54, 0x5a, 0xe1, 0xd7, 0xb0, 0x9a, 0xac,
- 0x1a, 0xc8, 0x20, 0x65, 0x16, 0x3a, 0x64, 0x90, 0xb2, 0x8b, 0x0d, 0xc9, 0x20, 0x9d, 0x83, 0x16,
- 0x3d, 0xf4, 0xe5, 0x8e, 0xce, 0xd7, 0x17, 0xe4, 0x8e, 0xa6, 0xaa, 0x02, 0xc9, 0xe5, 0x2e, 0x00,
- 0x24, 0x33, 0x46, 0xeb, 0xf1, 0x37, 0x56, 0xa2, 0x40, 0xa0, 0xeb, 0x59, 0x5d, 0x69, 0xe7, 0x7f,
- 0x0b, 0xd5, 0xd8, 0xbf, 0x0e, 0x48, 0x4f, 0xee, 0x7f, 0xfc, 0x0f, 0x0f, 0x7d, 0x23, 0xb3, 0x2f,
- 0x33, 0x9e, 0xc9, 0x57, 0x9a, 0x8c, 0x67, 0xe6, 0x53, 0x50, 0xc6, 0x33, 0xfb, 0x71, 0x97, 0x0c,
- 0xc0, 0x25, 0x54, 0x63, 0x4f, 0x03, 0x94, 0xe1, 0x66, 0xda, 0xe0, 0x8c, 0xb7, 0x44, 0x72, 0xd1,
- 0xdf, 0xc3, 0xc7, 0x73, 0x64, 0x1c, 0x3d, 0xcd, 0x65, 0xe9, 0x7c, 0xf1, 0xed, 0x5b, 0x58, 0x7c,
- 0x3c, 0x22, 0x67, 0xa0, 0x86, 0xcc, 0x17, 0x3d, 0x89, 0x80, 0x2e, 0x49, 0xc1, 0xf5, 0x46, 0xba,
- 0x23, 0xcb, 0xd4, 0x1e, 0xac, 0xa5, 0xd8, 0x29, 0x8a, 0x30, 0x26, 0x8f, 0x38, 0xeb, 0x9f, 0xdc,
- 0x30, 0x22, 0x6d, 0x30, 0x81, 0xc7, 0xd9, 0x64, 0x0e, 0xbd, 0xb8, 0x8d, 0xec, 0x71, 0x75, 0x9f,
- 0xbe, 0x1f, 0x27, 0x4c, 0xba, 0xd6, 0x0d, 0xe1, 0x55, 0xd2, 0x9b, 0x79, 0x78, 0x4d, 0x71, 0xb7,
- 0x79, 0x78, 0x4d, 0x33, 0xa3, 0x94, 0x8e, 0xf9, 0x2a, 0x92, 0xd4, 0x91, 0x53, 0xc0, 0x92, 0x3a,
- 0xf2, 0x0a, 0x50, 0x49, 0x1d, 0x63, 0x78, 0x98, 0x55, 0xf0, 0x41, 0xcf, 0x32, 0x97, 0x49, 0x96,
- 0x9f, 0xf4, 0xe7, 0x37, 0x0f, 0xca, 0xd2, 0xf7, 0x67, 0x68, 0xe4, 0x51, 0x2c, 0xf4, 0x43, 0x99,
- 0x03, 0x37, 0xf2, 0x3d, 0x7d, 0xf7, 0xf6, 0x81, 0x29, 0xdd, 0xbb, 0xca, 0xbe, 0x42, 0xcf, 0x4a,
- 0x36, 0x6d, 0x92, 0x67, 0xe5, 0x46, 0x22, 0x27, 0xcf, 0xca, 0xcd, 0xec, 0x2b, 0xe9, 0xf3, 0x1b,
- 0x78, 0x90, 0x41, 0x6d, 0x90, 0x11, 0x83, 0xe6, 0x1c, 0xa2, 0xa5, 0x3f, 0xbb, 0x71, 0x4c, 0x96,
- 0x32, 0x0c, 0x6b, 0x29, 0x76, 0x21, 0x73, 0x2e, 0x8f, 0xe7, 0xc8, 0x9c, 0xcb, 0xa5, 0x26, 0x09,
- 0x35, 0x87, 0xfb, 0xbf, 0xa3, 0x13, 0x5c, 0xab, 0xdb, 0xec, 0x79, 0xa3, 0x3d, 0xfe, 0xf9, 0x63,
- 0xcf, 0x1f, 0xec, 0xf1, 0x65, 0xf8, 0x1f, 0xd4, 0x7b, 0x03, 0x4f, 0xb4, 0x27, 0xdd, 0x6e, 0x85,
- 0x89, 0x7e, 0xfa, 0x5d, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xd0, 0x63, 0x09, 0xe7, 0x1e, 0x00,
- 0x00,
+ // 2044 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xdb, 0x6e, 0xe3, 0xc6,
+ 0x19, 0x0e, 0x75, 0x32, 0xf9, 0x4b, 0x71, 0xe4, 0x59, 0xef, 0xae, 0x4c, 0xdb, 0x6b, 0x87, 0xbb,
+ 0x9b, 0x3a, 0x48, 0x2b, 0xbb, 0xee, 0x01, 0xed, 0x55, 0xb1, 0x4e, 0x6c, 0xc3, 0xee, 0xda, 0xda,
+ 0xd2, 0x02, 0x02, 0x14, 0x29, 0x54, 0x4a, 0x1c, 0x49, 0xd3, 0xa5, 0x44, 0x85, 0x1c, 0x79, 0xad,
+ 0xa2, 0x68, 0xaf, 0x0b, 0xf4, 0xbe, 0xe8, 0x55, 0xaf, 0xfa, 0x00, 0x79, 0x84, 0xbe, 0x42, 0x6f,
+ 0x7a, 0xdf, 0x07, 0xe8, 0x03, 0xec, 0x55, 0x30, 0x07, 0x9e, 0x44, 0xd2, 0xde, 0xb5, 0xa2, 0xdc,
+ 0x08, 0x9c, 0x7f, 0x0e, 0xff, 0x61, 0xe6, 0xff, 0xe6, 0x9b, 0x5f, 0x50, 0xeb, 0xb9, 0xa3, 0x11,
+ 0xa1, 0xcd, 0x89, 0xe7, 0x52, 0x17, 0x55, 0x06, 0x84, 0x5a, 0xce, 0x4c, 0xaf, 0xf9, 0x43, 0xcb,
+ 0xc3, 0xb6, 0x90, 0xea, 0x3b, 0x03, 0xd7, 0x1d, 0x38, 0x78, 0x9f, 0xb7, 0xba, 0xd3, 0xfe, 0x3e,
+ 0x25, 0x23, 0xec, 0x53, 0x6b, 0x34, 0x11, 0x03, 0x0c, 0x1b, 0xd0, 0xe7, 0x7c, 0x99, 0x2b, 0x6a,
+ 0x51, 0xdf, 0xc4, 0x5f, 0x4f, 0xb1, 0x4f, 0xd1, 0x21, 0x80, 0x87, 0x27, 0xae, 0x4f, 0xa8, 0xeb,
+ 0xcd, 0x1a, 0xca, 0xae, 0xb2, 0x57, 0x3d, 0x44, 0x4d, 0xa1, 0xa1, 0x69, 0x86, 0x3d, 0x66, 0x6c,
+ 0x14, 0xd2, 0x41, 0xf5, 0xf0, 0x35, 0xf1, 0x89, 0x3b, 0x6e, 0x14, 0x76, 0x95, 0xbd, 0x9a, 0x19,
+ 0xb6, 0x8d, 0x1e, 0x3c, 0x48, 0x68, 0xf1, 0x27, 0xee, 0xd8, 0xc7, 0xa8, 0x0e, 0x45, 0x97, 0xd8,
+ 0x7c, 0x7d, 0xcd, 0x64, 0x9f, 0x68, 0x0b, 0x34, 0xcb, 0xb6, 0x09, 0x25, 0xee, 0xd8, 0xe7, 0xab,
+ 0x94, 0xcd, 0x48, 0xc0, 0x7a, 0x6d, 0xec, 0x60, 0xd1, 0x5b, 0x14, 0xbd, 0xa1, 0xc0, 0xf8, 0xab,
+ 0x02, 0x8f, 0x85, 0x96, 0x33, 0xff, 0xc5, 0xb8, 0x87, 0x7d, 0xea, 0x7a, 0x8b, 0x38, 0xb4, 0x03,
+ 0x55, 0x4b, 0x2e, 0xd3, 0x21, 0x36, 0xb7, 0x46, 0x33, 0x21, 0x10, 0x9d, 0xd9, 0x68, 0x03, 0xd4,
+ 0xde, 0x90, 0x38, 0x36, 0xeb, 0x2d, 0xf2, 0xde, 0x15, 0xde, 0x3e, 0xb3, 0x8d, 0x03, 0x68, 0xa4,
+ 0x4d, 0x91, 0x5e, 0xaf, 0x43, 0xf9, 0xda, 0x72, 0xa6, 0x98, 0x9b, 0xa1, 0x9a, 0xa2, 0x61, 0xfc,
+ 0x4d, 0x81, 0x7a, 0xdb, 0xc3, 0xf8, 0x78, 0x4c, 0xbd, 0xd9, 0x92, 0xf6, 0x01, 0x21, 0x28, 0x4d,
+ 0x2c, 0x3a, 0xe4, 0xd6, 0xd6, 0x4c, 0xfe, 0xcd, 0xcc, 0x71, 0xc8, 0x88, 0xd0, 0x46, 0x69, 0x57,
+ 0xd9, 0x2b, 0x9a, 0xa2, 0x61, 0xfc, 0x47, 0x81, 0xb5, 0x98, 0x39, 0xd2, 0xf4, 0x5f, 0x40, 0x89,
+ 0xce, 0x26, 0xc2, 0xf2, 0xd5, 0xc3, 0x67, 0x81, 0x25, 0xa9, 0x81, 0xcd, 0x56, 0xf7, 0x0f, 0xb8,
+ 0x47, 0xdb, 0xb3, 0x09, 0x36, 0xf9, 0x8c, 0x60, 0xab, 0x0b, 0xd1, 0x56, 0x23, 0x28, 0xf9, 0xe4,
+ 0x8f, 0x98, 0xdb, 0x52, 0x34, 0xf9, 0x37, 0x93, 0x8d, 0x5c, 0x1b, 0x73, 0x53, 0xca, 0x26, 0xff,
+ 0x66, 0x32, 0xdb, 0xa2, 0x56, 0xa3, 0x2c, 0x6c, 0x66, 0xdf, 0xc6, 0xcf, 0x00, 0x22, 0x0d, 0x08,
+ 0xa0, 0xf2, 0x79, 0xeb, 0xe2, 0xe2, 0xac, 0x5d, 0xff, 0x00, 0xa9, 0x50, 0x3a, 0x7a, 0xd9, 0x3a,
+ 0xaa, 0x2b, 0xec, 0xab, 0x6d, 0x1e, 0x1f, 0xd7, 0x0b, 0x68, 0x05, 0x8a, 0xed, 0x17, 0xa7, 0xf5,
+ 0xa2, 0xe1, 0xc2, 0x43, 0xb1, 0x2b, 0xfe, 0x11, 0xa6, 0x6f, 0x30, 0x1e, 0x2f, 0x12, 0x67, 0x04,
+ 0xa5, 0xbe, 0xe7, 0x8e, 0x64, 0x8c, 0xf9, 0x37, 0x5a, 0x85, 0x02, 0x75, 0x65, 0x74, 0x0b, 0xd4,
+ 0x35, 0x8e, 0xe1, 0xd1, 0xbc, 0x42, 0x19, 0xc9, 0xcf, 0x60, 0x45, 0xa4, 0xaf, 0xdf, 0x50, 0x76,
+ 0x8b, 0x7b, 0xd5, 0xc3, 0xb5, 0x40, 0xdd, 0x29, 0xa1, 0x62, 0x8e, 0x19, 0x8c, 0x30, 0xbe, 0x29,
+ 0xb0, 0xfc, 0x99, 0x8e, 0x65, 0xc7, 0xb2, 0xd2, 0x14, 0x1d, 0x40, 0xd9, 0xea, 0x53, 0xec, 0x71,
+ 0x0f, 0xaa, 0x87, 0x7a, 0x53, 0xa0, 0x47, 0x33, 0x40, 0x8f, 0x66, 0x3b, 0x40, 0x0f, 0x53, 0x0c,
+ 0x44, 0x87, 0x50, 0xe9, 0xe2, 0xbe, 0xeb, 0x89, 0x2d, 0xbb, 0x7d, 0x8a, 0x1c, 0x19, 0x1e, 0xc2,
+ 0x72, 0xec, 0x10, 0x6e, 0x82, 0x36, 0xb2, 0x6e, 0x3a, 0x3d, 0xe6, 0x64, 0xa3, 0xc2, 0x77, 0x5f,
+ 0x1d, 0x59, 0x37, 0xdc, 0x69, 0x76, 0x76, 0x2c, 0xc7, 0x69, 0xac, 0xf0, 0x74, 0x61, 0x9f, 0xe8,
+ 0x63, 0xa8, 0xf5, 0x89, 0xe7, 0xd3, 0xce, 0xc4, 0xf2, 0xf0, 0x98, 0x36, 0x54, 0xde, 0x55, 0xe5,
+ 0xb2, 0x57, 0x5c, 0x64, 0xfc, 0x10, 0xd6, 0x93, 0x21, 0x8b, 0xb2, 0x4f, 0x68, 0x51, 0xb8, 0x16,
+ 0xd1, 0x30, 0xfe, 0xa5, 0xc0, 0x16, 0x1f, 0xfe, 0x05, 0xb9, 0xc6, 0xde, 0x80, 0x8c, 0x07, 0xdf,
+ 0x41, 0xa8, 0xdf, 0xe1, 0x84, 0x24, 0x1d, 0x5f, 0x49, 0x3a, 0x7e, 0x5e, 0x52, 0x4b, 0xf5, 0xf2,
+ 0x79, 0x49, 0x2d, 0xd7, 0x2b, 0xe7, 0x25, 0xb5, 0x52, 0x5f, 0x31, 0x3a, 0xb0, 0x9d, 0x63, 0xa6,
+ 0x74, 0x6f, 0x1b, 0xc0, 0xc1, 0x7d, 0xda, 0x89, 0xfb, 0xa8, 0x31, 0x89, 0x08, 0xe5, 0x0e, 0x54,
+ 0x3d, 0x32, 0x18, 0x06, 0xfd, 0x02, 0x61, 0x81, 0x8b, 0xf8, 0x00, 0xe3, 0xad, 0x02, 0x5a, 0x98,
+ 0xce, 0x19, 0x00, 0xbd, 0x01, 0xaa, 0xe7, 0xba, 0xb4, 0x13, 0x25, 0xf3, 0x0a, 0x6b, 0xb7, 0x44,
+ 0x42, 0xa7, 0xc0, 0x65, 0x5f, 0x02, 0x46, 0x89, 0x03, 0xc6, 0x66, 0x0a, 0x30, 0x9a, 0xfc, 0x37,
+ 0x86, 0x13, 0x01, 0x02, 0x94, 0x63, 0x08, 0xb0, 0x0d, 0x20, 0x32, 0x81, 0x6b, 0xad, 0x70, 0xad,
+ 0x9a, 0x90, 0x30, 0xbd, 0x9b, 0xa0, 0xf5, 0x1d, 0x8b, 0x9d, 0x05, 0x3a, 0xe4, 0x21, 0xac, 0x99,
+ 0x2a, 0x13, 0xbc, 0xb2, 0xe8, 0xd0, 0xf8, 0x0c, 0xb4, 0x50, 0x45, 0x08, 0x0e, 0x1f, 0x84, 0xe0,
+ 0xa0, 0xc4, 0xc0, 0xa3, 0x68, 0xfc, 0x43, 0x81, 0x87, 0xa7, 0x98, 0x06, 0xd6, 0x11, 0xec, 0x7f,
+ 0x9f, 0x40, 0xbc, 0x05, 0x9a, 0x87, 0x7b, 0x53, 0xcf, 0x27, 0xd7, 0x22, 0x60, 0xaa, 0x19, 0x09,
+ 0x18, 0x94, 0xcc, 0x9b, 0x16, 0x41, 0x09, 0x16, 0xa2, 0x79, 0x28, 0x89, 0x70, 0x39, 0x18, 0x61,
+ 0x74, 0xa1, 0xfe, 0x92, 0xf8, 0xf4, 0x84, 0x38, 0x4b, 0x73, 0xce, 0xf8, 0x14, 0xd6, 0x62, 0x3a,
+ 0xa2, 0xbc, 0x63, 0x5e, 0x0a, 0x1b, 0x6b, 0xa6, 0x68, 0x18, 0x3d, 0x58, 0x3b, 0x21, 0x63, 0x5b,
+ 0x02, 0xde, 0x92, 0xec, 0xf9, 0x15, 0xa0, 0xb8, 0x12, 0x69, 0xd0, 0xa7, 0x50, 0x11, 0x67, 0x48,
+ 0x6a, 0xc8, 0x00, 0x60, 0x39, 0xc0, 0xe8, 0xc0, 0x63, 0xe6, 0x50, 0x00, 0xe5, 0xb3, 0x16, 0xb1,
+ 0x17, 0xb1, 0x35, 0xbc, 0x0b, 0x8b, 0x32, 0xab, 0x8c, 0x53, 0x68, 0xa4, 0x15, 0xdc, 0xe7, 0xa6,
+ 0x18, 0xc3, 0x66, 0x62, 0x21, 0x13, 0xf7, 0x2f, 0xad, 0x11, 0x5e, 0xc4, 0xda, 0x4d, 0x76, 0x2c,
+ 0xfb, 0x9d, 0xb1, 0x35, 0xc2, 0x3e, 0xb7, 0x99, 0x87, 0x96, 0x2f, 0xeb, 0x1b, 0xbf, 0x86, 0xad,
+ 0x6c, 0x7d, 0xf7, 0x31, 0xfe, 0xad, 0x02, 0x0f, 0xd9, 0x46, 0xbd, 0x70, 0x9c, 0x25, 0x5f, 0x74,
+ 0x09, 0xd4, 0x2d, 0xce, 0x5d, 0x37, 0x8c, 0x98, 0xbc, 0x26, 0x93, 0x80, 0x84, 0xb0, 0x6f, 0xf4,
+ 0x4b, 0x28, 0xbb, 0x9e, 0x8d, 0x3d, 0x8e, 0x4b, 0xab, 0x87, 0x4f, 0x03, 0xdd, 0x99, 0xe6, 0x36,
+ 0x5b, 0x6c, 0xa8, 0x29, 0x66, 0x18, 0xcf, 0xa1, 0xcc, 0xdb, 0x0c, 0x73, 0x2e, 0x5b, 0x97, 0xc7,
+ 0x12, 0x7d, 0x5a, 0xaf, 0x5a, 0x82, 0xa4, 0x7c, 0xf1, 0xa2, 0x7d, 0x5c, 0x2f, 0xb0, 0xfc, 0x9e,
+ 0x5f, 0xec, 0x3e, 0x31, 0xfc, 0x67, 0x31, 0x7e, 0xd8, 0x97, 0x16, 0xc0, 0x90, 0x34, 0x8a, 0xe0,
+ 0x89, 0x06, 0x7a, 0x04, 0x15, 0xb7, 0xdf, 0xf7, 0x31, 0x95, 0xb1, 0x93, 0xad, 0x28, 0xf7, 0xcb,
+ 0xb1, 0xdc, 0x67, 0xa3, 0xfb, 0xae, 0xe3, 0xb8, 0x6f, 0x38, 0xa4, 0xab, 0xa6, 0x6c, 0xb1, 0x3b,
+ 0x8a, 0xc5, 0xbc, 0x33, 0xc2, 0xde, 0x00, 0xfb, 0xf2, 0xda, 0x07, 0x26, 0xba, 0xe0, 0x12, 0x76,
+ 0xfb, 0xdb, 0xc4, 0xb7, 0xba, 0x0e, 0xee, 0xbc, 0xb1, 0x9c, 0xd7, 0xc1, 0xed, 0x2f, 0x65, 0x5f,
+ 0x5a, 0xce, 0xeb, 0x88, 0xc9, 0x68, 0xef, 0xcf, 0x64, 0xe0, 0x9d, 0x99, 0x8c, 0x24, 0x26, 0xd5,
+ 0x7c, 0x62, 0x52, 0x4b, 0x13, 0x93, 0x23, 0x78, 0x90, 0xd8, 0xa0, 0xfb, 0xec, 0xf2, 0x30, 0xe0,
+ 0x95, 0x2f, 0xad, 0xf1, 0x60, 0x6a, 0x0d, 0x96, 0x87, 0xe5, 0xff, 0x0b, 0x1f, 0x55, 0x31, 0x55,
+ 0xd2, 0xe4, 0x13, 0xd0, 0x9c, 0x40, 0x28, 0x8d, 0xde, 0x0b, 0x54, 0xe5, 0xcc, 0x69, 0x06, 0x12,
+ 0x33, 0x9a, 0xaa, 0xff, 0x05, 0xd4, 0x40, 0xcc, 0x92, 0x8f, 0x21, 0x8d, 0xa4, 0x1c, 0xfc, 0x9b,
+ 0x1d, 0x1f, 0xfe, 0xa8, 0xe5, 0xc6, 0x15, 0x4c, 0xd1, 0x10, 0x44, 0xce, 0x71, 0x3d, 0xf9, 0xf4,
+ 0x12, 0x0d, 0xc6, 0x15, 0xfa, 0xc4, 0xc1, 0x32, 0xb5, 0xd9, 0x31, 0xfc, 0xd0, 0xd4, 0x98, 0x44,
+ 0xe4, 0xf6, 0x3a, 0x94, 0xbb, 0x33, 0x8a, 0x7d, 0x9e, 0xc7, 0x25, 0x53, 0x34, 0x8c, 0x29, 0x7c,
+ 0x64, 0x5a, 0x6f, 0x8e, 0x9c, 0x05, 0x91, 0xf2, 0x3d, 0x2f, 0x7c, 0xe3, 0x13, 0xa8, 0x47, 0x6a,
+ 0x65, 0x4c, 0x83, 0xd7, 0x8e, 0x12, 0x7b, 0xed, 0xfc, 0x19, 0x1a, 0x2f, 0xad, 0x00, 0x64, 0x4f,
+ 0x5c, 0x8f, 0x11, 0x9b, 0xef, 0xd3, 0xce, 0x13, 0xd8, 0xc8, 0xd0, 0xff, 0xfe, 0xd7, 0xe8, 0x37,
+ 0x0a, 0x6c, 0xb3, 0xdb, 0x22, 0x5a, 0xcc, 0x3f, 0x71, 0x3d, 0x46, 0x52, 0xbe, 0x4b, 0x6f, 0xb4,
+ 0xf7, 0x79, 0xef, 0x66, 0x40, 0x57, 0x39, 0x0e, 0x5d, 0xc6, 0x7f, 0x15, 0x78, 0x92, 0x67, 0xb3,
+ 0x8c, 0xc0, 0xe5, 0x7c, 0xe6, 0xfe, 0x34, 0xb0, 0xf8, 0xf6, 0x89, 0xcd, 0x30, 0xa0, 0x5c, 0x1a,
+ 0x2c, 0xa2, 0x63, 0xf8, 0x30, 0xd1, 0x13, 0x0b, 0x71, 0xe1, 0x8e, 0x10, 0xb3, 0xe3, 0xcf, 0x9c,
+ 0xec, 0x88, 0x43, 0x5e, 0xe2, 0x6e, 0x6b, 0x4c, 0x72, 0xc4, 0x04, 0xe7, 0x25, 0x55, 0xa9, 0x17,
+ 0xce, 0x4b, 0x6a, 0xb1, 0x5e, 0x32, 0xfe, 0x1d, 0x66, 0xb6, 0x7f, 0x34, 0xbb, 0xc0, 0xbe, 0xcf,
+ 0xb2, 0x72, 0x49, 0xa7, 0x2a, 0x8a, 0x6e, 0x71, 0xfe, 0x62, 0xc8, 0xd8, 0x8b, 0xac, 0x07, 0xe2,
+ 0x3a, 0x94, 0xbf, 0x9e, 0x62, 0x6f, 0x26, 0xe9, 0xbf, 0x68, 0x30, 0xde, 0x94, 0x76, 0xe1, 0x3e,
+ 0x80, 0x4a, 0x60, 0xe7, 0x84, 0x38, 0x14, 0x7b, 0x57, 0x43, 0xcb, 0xff, 0x92, 0xd0, 0xe1, 0x15,
+ 0x19, 0x8c, 0x2d, 0x3a, 0xf5, 0xf0, 0xa2, 0x2f, 0x40, 0x7f, 0x68, 0x05, 0xb4, 0x89, 0x7f, 0x1b,
+ 0x3f, 0x87, 0xdd, 0x7c, 0x55, 0x11, 0x0a, 0xf0, 0x79, 0x4a, 0x6c, 0xde, 0x04, 0xb6, 0x8f, 0x6f,
+ 0xa8, 0x67, 0xf5, 0xa4, 0xf1, 0xe1, 0xb4, 0x05, 0xc9, 0x9d, 0x7c, 0x5a, 0x85, 0xef, 0x39, 0x55,
+ 0x08, 0xce, 0x6c, 0xa3, 0x03, 0x4f, 0xf2, 0x34, 0x4a, 0x3b, 0xb7, 0x40, 0xf3, 0x03, 0xa1, 0x84,
+ 0xac, 0x48, 0xc0, 0x2f, 0x72, 0x32, 0x18, 0x63, 0xbb, 0x43, 0xf1, 0x0d, 0x95, 0x87, 0x02, 0x84,
+ 0xa8, 0x8d, 0x6f, 0xa8, 0xe1, 0x82, 0x7e, 0x8a, 0xe7, 0x17, 0x5f, 0x28, 0xe0, 0xd1, 0x53, 0x91,
+ 0xd8, 0xbe, 0x64, 0xd8, 0x5a, 0xe0, 0x90, 0x6f, 0xcc, 0x60, 0x33, 0x53, 0xa1, 0x74, 0x27, 0x11,
+ 0x0d, 0x25, 0x19, 0x8d, 0xa4, 0xaf, 0x85, 0x3b, 0x7c, 0x2d, 0xa6, 0x7c, 0x1d, 0x41, 0x23, 0x54,
+ 0x2d, 0x8f, 0xea, 0x32, 0x3d, 0x35, 0x61, 0x23, 0x43, 0xdd, 0xbb, 0xf8, 0xd9, 0x80, 0x95, 0x91,
+ 0x98, 0x20, 0xbd, 0x0c, 0x9a, 0x87, 0xff, 0xaf, 0x07, 0xc8, 0x74, 0x85, 0xbd, 0x6b, 0xd2, 0xc3,
+ 0xe8, 0xf7, 0x50, 0x9f, 0x2f, 0x73, 0xa2, 0x9d, 0x24, 0x05, 0x48, 0xd5, 0x62, 0xf5, 0xdd, 0xfc,
+ 0x01, 0xc2, 0x3e, 0x43, 0x7b, 0xfb, 0xf7, 0xbd, 0xb2, 0x5a, 0xd0, 0x95, 0x1f, 0xa3, 0x8b, 0x78,
+ 0x39, 0xa2, 0x91, 0x51, 0x70, 0x14, 0x6b, 0x6e, 0xe4, 0x96, 0x22, 0x63, 0x8b, 0x1d, 0x28, 0xe8,
+ 0x2b, 0x58, 0x4d, 0x16, 0xe4, 0xd0, 0x76, 0xd2, 0x9a, 0xb9, 0xca, 0xa0, 0xfe, 0x24, 0xaf, 0x3b,
+ 0x6b, 0xf5, 0x36, 0xd4, 0xe2, 0x35, 0x27, 0xb4, 0x19, 0x4d, 0x4e, 0x15, 0xef, 0xf4, 0xad, 0xec,
+ 0xce, 0x74, 0x08, 0x78, 0xd5, 0x32, 0xa3, 0xe6, 0x83, 0x9e, 0x25, 0x56, 0xc8, 0xa9, 0x5c, 0xe9,
+ 0xcf, 0xef, 0x18, 0x95, 0x56, 0xf8, 0x15, 0xac, 0x26, 0x4b, 0x0d, 0x51, 0x90, 0x32, 0xab, 0x23,
+ 0x51, 0x90, 0xb2, 0x2b, 0x14, 0xc9, 0x20, 0x5d, 0x80, 0x16, 0x56, 0x07, 0xa2, 0x1d, 0x9d, 0x2f,
+ 0x4a, 0x44, 0x3b, 0x9a, 0x2a, 0x25, 0x24, 0x97, 0xbb, 0x04, 0x88, 0xe8, 0x34, 0xda, 0x88, 0x3f,
+ 0xcc, 0x12, 0x55, 0x05, 0x5d, 0xcf, 0xea, 0x4a, 0x3b, 0xff, 0x1b, 0xa8, 0xc6, 0xfe, 0xaa, 0x40,
+ 0x7a, 0x72, 0xff, 0xe3, 0xff, 0x92, 0xe8, 0x9b, 0x99, 0x7d, 0x99, 0xf1, 0x4c, 0x3e, 0xed, 0xa2,
+ 0x78, 0x66, 0xbe, 0x1f, 0xa3, 0x78, 0x66, 0xbf, 0x08, 0x93, 0x01, 0xb8, 0x82, 0x6a, 0xec, 0x3d,
+ 0x81, 0x32, 0xdc, 0x4c, 0x1b, 0x9c, 0xf1, 0x00, 0x49, 0x2e, 0xfa, 0x3b, 0xf8, 0x68, 0x8e, 0xc1,
+ 0xa3, 0x27, 0xb9, 0xd4, 0x5e, 0x2c, 0xbe, 0x73, 0x07, 0xf5, 0x8f, 0x47, 0xe4, 0x1c, 0xd4, 0x80,
+ 0xf9, 0xa2, 0xc7, 0x21, 0xd0, 0x25, 0x29, 0xb8, 0xde, 0x48, 0x77, 0x64, 0x99, 0xda, 0x83, 0xb5,
+ 0x14, 0x3b, 0x45, 0x21, 0xc6, 0xe4, 0x11, 0x67, 0xfd, 0xe3, 0x5b, 0x46, 0xa4, 0x0d, 0xa6, 0xf0,
+ 0x28, 0x9b, 0xcc, 0xa1, 0xe7, 0x77, 0x91, 0x3d, 0xa1, 0xee, 0x93, 0x77, 0xe3, 0x84, 0x49, 0xd7,
+ 0xba, 0x01, 0xbc, 0x46, 0xf4, 0x66, 0x1e, 0x5e, 0x53, 0xdc, 0x6d, 0x1e, 0x5e, 0xd3, 0xcc, 0x28,
+ 0xa5, 0x63, 0xbe, 0xf4, 0x14, 0xe9, 0xc8, 0xa9, 0x7a, 0x45, 0x3a, 0xf2, 0xaa, 0x56, 0x49, 0x1d,
+ 0x63, 0x58, 0xcf, 0xaa, 0x12, 0xa1, 0xa7, 0x99, 0xcb, 0x24, 0x6b, 0x56, 0xfa, 0xb3, 0xdb, 0x07,
+ 0x65, 0xe9, 0xfb, 0x13, 0x34, 0xf2, 0x28, 0x16, 0xfa, 0x41, 0x94, 0x03, 0xb7, 0xf2, 0x3d, 0x7d,
+ 0xef, 0xee, 0x81, 0x29, 0xdd, 0x7b, 0xca, 0x81, 0xc2, 0xce, 0x4a, 0x36, 0x6d, 0x8a, 0xce, 0xca,
+ 0xad, 0x44, 0x2e, 0x3a, 0x2b, 0xb7, 0xb3, 0xaf, 0xa4, 0xcf, 0xaf, 0xe1, 0x41, 0x06, 0xb5, 0x41,
+ 0x46, 0x0c, 0x9a, 0x73, 0x88, 0x96, 0xfe, 0xf4, 0xd6, 0x31, 0x59, 0xca, 0x30, 0xac, 0xa5, 0xd8,
+ 0x45, 0x94, 0x73, 0x79, 0x3c, 0x27, 0xca, 0xb9, 0x5c, 0x6a, 0x92, 0x50, 0x73, 0x74, 0xf0, 0x5b,
+ 0x36, 0xc1, 0xb1, 0xba, 0xcd, 0x9e, 0x3b, 0xda, 0x17, 0x9f, 0x3f, 0x72, 0xbd, 0xc1, 0xbe, 0x58,
+ 0x46, 0xfc, 0xab, 0xbd, 0x3f, 0x70, 0x65, 0x7b, 0xd2, 0xed, 0x56, 0xb8, 0xe8, 0x27, 0xdf, 0x06,
+ 0x00, 0x00, 0xff, 0xff, 0x0f, 0xcf, 0xec, 0x70, 0x1c, 0x1f, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
diff --git a/ruby/proto/gitaly/commit_pb.rb b/ruby/proto/gitaly/commit_pb.rb
index 6cb34706f..31d68226b 100644
--- a/ruby/proto/gitaly/commit_pb.rb
+++ b/ruby/proto/gitaly/commit_pb.rb
@@ -167,6 +167,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
optional :name, :string, 1
optional :share, :float, 2
optional :color, :string, 3
+ optional :file_count, :uint32, 4
+ optional :bytes, :uint64, 5
end
add_message "gitaly.RawBlameRequest" do
optional :repository, :message, 1, "gitaly.Repository"